자연어
-
Masking and padding with PytorchNatural Language Processing 2022. 2. 23. 00:25
아래 사이트를 참고하여 정리하는 글입니다. Reference https://www.tensorflow.org/guide/keras/masking_and_padding Introduction NLP 작업에서 텍스트는 모두 같은 길이가 아니므로 batch 처리를 위해 시퀀스의 길이를 같게 만들어야 한다. 컴퓨터는 행렬을 사용해 병렬 연산을 하므로 필수적인 작업이다. 너무 짧은 시퀀스의 경우 정해둔 최대 길이에 맞춰서 padding 처리를 해주고 너무 긴 시퀀스의 경우에는 최대 길이에 맞춰서 truncate 해줘야 한다. Padding은 최대 길이에 맞게 시퀀스의 앞부분 혹은 마지막을 0으로 채우는 방식이다. 이렇게 padding 처리를 한 시퀀스는 아무 의미 없는 0 데이터(더미 데이터)를 포함하게 된다...
-
[PyTorch] pack_padded_sequence, pad_packed_sequence 설명Deep Learning 2022. 2. 5. 20:24
Referece https://gist.github.com/HarshTrivedi/f4e7293e941b17d19058f6fb90ab0fec Minimal tutorial on packing (pack_padded_sequence) and unpacking (pad_packed_sequence) sequences in pytorch. Minimal tutorial on packing (pack_padded_sequence) and unpacking (pad_packed_sequence) sequences in pytorch. - pad_packed_demo.py gist.github.com https://simonjisu.github.io/nlp/2018/07/05/packedsequence.html P..
-
기계 번역에서 alignment 의미Natural Language Processing 2022. 1. 25. 18:07
* alignment 의미 기계 번역 관련 논문[1]을 읽는데 다음과 같은 내용이 나왔다. In MT, one can intuitively interpret this attention mechanism as inducing an alignment between source and target sentences, as first proposed by Bahdanau et al. (2015). "어텐션 메커니즘은 source 문장과 target 문장 간의 alignment를 유도하는 것으로 직관적으로 해석할 수 있다" 이런 의미이다. 여기에서 alignment 단어는 컴퓨터 비전 분야에서도 정말 많이 봤던 단어이다. 자연어 특히 기계 번역에서의 alignment의 의미가 궁금하여 찾아보니 다음과 같았다. S..
-
정수 인코딩(Integer Encoding)Natural Language Processing/딥 러닝을 이용한 자연어 처리 입문 2021. 5. 18. 11:42
https://wikidocs.net/31766 참고하여 공부한 내용 정리 06) 정수 인코딩(Integer Encoding) 텍스트를 숫자로 바꾸는 여러 기법들 중에서 각 단어를 고유한 정수에 매핑(mapping)시키는 전처리 작업 인덱스를 부여하는 방법은 랜덤으로 부여, 단어 빈도수 기준으로 정렬한 후 부여하는 방법이 있음 1. 정수 인코딩(Integer Encoding) 단어에 정수를 부여하는 방법 중 하나로 단어를 빈도수 순으로 정렬한 단어 집합을 만들고 빈도수가 높은 순서대로 인덱스를 낮은 숫자부터 정수를 부여하는 방법 1) dictionary 사용하기 text="A barber is a person. a barber is good person. a barber is huge person. he..
-
정규 표현식(Regular Expression)Natural Language Processing/딥 러닝을 이용한 자연어 처리 입문 2021. 5. 17. 15:50
https://wikidocs.net/21703 참고하여 공부한 내용 정리함 05) 정규 표현식(Regular Expression) 1. 정규 표현식 문법과 모듈 함수 re모듈을 사용하면 특정 규칙이 있는 텍스트 데이터를 빨흐게 정제할 수 있음 01) 정규 표현식 문법 02) 정규 표현식 모듈 함수 https://wikidocs.net/21703 사이트 참고 2. 정규 표현식 실습 1) .기호 .은 한 개의 임의의 문자를 나타냄 import re r=re.compile("a.c") r.search("kkk") 문자열에 a.c패턴이 존재하지 않아서 결과 출력x r.search("abc") abc 문자열에 a.c 패턴이 있으므로 결과 출력o 2) ?기호 ?는 ?앞에 문자가 존재할 수도 있고 안 할 수도 있는..
-
불용어(Stopwords)Natural Language Processing/딥 러닝을 이용한 자연어 처리 입문 2021. 5. 17. 14:14
https://wikidocs.net/22530 참고하여 공부한 내용 정리 04) 불용어(Stopwords) 데이터에서 유의미한 단어 토큰만을 선별하기 위해 큰 의미 없는 단어 토큰을 제거하는 작업이 필요함. 여기서 큰 의미가 없다라는 것은 자주 등장하지만 분석하기에 큰 도움이 되지 않는 단어를 말함. 예를 들어 I, my, me, over, 조사, 접미사 같은 단어들은 자주 등장하지만 분석에 기여하는 바가 없음. 이러한 단어들을 불용어(Stopwords)라고 함 1. NLTK에서 불용어 확인 from nltk.corpus import stopwords stopwords.words('english')[:10] ['i', 'me', 'my', ..
-
토큰화(Tokenization)Natural Language Processing/딥 러닝을 이용한 자연어 처리 입문 2021. 5. 14. 22:07
https://wikidocs.net/21698 참고하여 공부한 내용 정리 Chap2. 텍스트 전처리 1) 토큰화(Tokenization) 토큰화란 코퍼스(corpus)에서 토큰(token) 단위로 나누는 작업 1. 단어 토큰화(Word Tokenization) sent = 'Time is an illusion Lunchtime double so' print('토큰화 전: ', sent) print('토큰화 후: ', sent.split(' ')) 토큰화 전: Time is an illusion Lunchtime double so 토큰화 후: ['Time', 'is', 'an', 'illusion&..