Natural Language Processing/딥 러닝을 이용한 자연어 처리 입문
-
한국어 전처리 패키지Natural Language Processing/딥 러닝을 이용한 자연어 처리 입문 2021. 5. 18. 16:32
https://wikidocs.net/92961 참고하여 공부한 내용 정리 10) 한국어 전처리 패키지 1. PyKoSpacing PyKoSpacing은 한국어 띄어쓰기 패키지, 띄어쓰기 딥러닝 모델 new_sent="김철수는극중두인격의사나이이광수역을맡았다.철수는한국유일의태권도전승자를가리는결전의날을앞두고10년간함께훈련한사형인유연재(김광수분)를찾으러속세로내려온인물이다." from pykospacing import spacing kospacing_sent=spacing(new_sent) print(kospacing_sent) 김철수는 극중 두 인격의 사나이 이광수 역을 맡았다. 철수는 한국 유일의 태권도 전승자를 가리는 결전의 날을 앞두고 10년간 함께 훈련한 사형인 유연재(김광수 분)를 찾으러 속세로 내려..
-
원-핫 인코딩 (One-hot Encoding)Natural Language Processing/딥 러닝을 이용한 자연어 처리 입문 2021. 5. 18. 14:18
https://wikidocs.net/22647 참고하여 공부한 내용 정리 08) 원-핫 인코딩 (One-hot Encoding) 단어 집합(vocabulary): 서로 다른 단어들의 집합, 여기에서 book과 books를 다른 단어로 간주함 원-핫 인코딩을 위해 먼저 해야하는 일은 단어 집합을 만드는 일. 그리고 단어 집합에 고유한 숫자를 부여하는 정수 인코딩을 진행함 1. 원-핫 인코딩(One-hot Encoding) 이란? 원-핫 인코딩은 단어 집합의 크기를 벡터의 차원으로 하고 표현하고 싶은 단어의 인덱스에 1 값을 부여하고 나머지 인덱스에 0을 부여하는 단어의 벡터 표현 방식임 원-핫 인코딩 과정 (1) 각 단어에 고유한 인덱스 부여(정수 인코딩) (2) 표현하고 싶은 단어의 인덱스 위치에 1 ..
-
패딩(Padding)Natural Language Processing/딥 러닝을 이용한 자연어 처리 입문 2021. 5. 18. 13:38
https://wikidocs.net/83544 참고하여 공부한 내용 정리 07) 패딩(Padding) 병렬 연산을 위해 여러 문장의 길이를 임의로 동일하게 맞춰주는 작업이 필요함 1. Numpy 로 패딩하기 import numpy as np from tensorflow.keras.preprocessing.text import Tokenizer 정수 인코딩 진행 tokenizer=Tokenizer() tokenizer.fit_on_texts(sentences) # sentences는 이전 데이터 사용 텍스트 시퀀스의 모든 단어들을 각 정수에 매핑 후 출력 encoded=tokenizer.texts_to_sequences(sentences) print(encoded) [[1, 5], [1, 8, 5], [..
-
정수 인코딩(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', ..
-
어간 추출(Stemming) & 표제어 추출(Lemmatization)Natural Language Processing/딥 러닝을 이용한 자연어 처리 입문 2021. 5. 17. 11:23
https://wikidocs.net/21707 참고하여 공부한 내용 정리 03) 어간 추출(Stemming) & 표제어 추출(Lemmatization) 어간 추출과 표제어 추출은 정규화 기법 중 코퍼스에 있는 단어의 개수를 줄일 수 있는 기법 1. 표제어 추출(Lemmatization) 표제어 추출은 단어로부터 표제어(Lemma)를 찾아가는 과정임. 표제어 추출은 단어가 다른 형태를 가지더라도 뿌리 단어를 찾아서 단어의 개수를 줄일 수 있는지 판단함. 예를 들어 am, are, is는 서로 다른 스펠링이지만 그 뿌리 단어는 be로 볼 수 있음. 이 때 단어들의 표제어는 be임 형태소는 '의미를 가진 가장 작은 단위'를 뜻함. 형태소는 어간(stem), 접사(affix) 두 가지 종류가 있..
-
정제(Cleaning) and 정규화(Normalization)Natural Language Processing/딥 러닝을 이용한 자연어 처리 입문 2021. 5. 15. 23:43
https://wikidocs.net/21693 참고하여 공부한 내용 정리 2) 정제(cleaning) & 정규화(Normalization) 토큰화 작업 전, 후에는 텍스트 데이터를 정제 & 정규화 해야 함 정제(cleaning): 코퍼스에서 노이즈 제거 정규화(Normalization): 표현 방법이 다른 단어들을 통합시켜 같은 단어로 만들어 줌 1. 규칙에 기반한 표기가 다른 단어들의 통함 표기가 다른 단어들을 하나의 단어로 정규화하는 방법 사용. USA와 US는 같은 의미를 가지므로 하나의 단어로 정규화할 수 있음 2. 대, 소문자 통합 단어의 개수를 줄이는 방법으로 대, 소문자를 소문자로 변환하는 방법이 있음. 그러나 모든 대문자를 소문자로 변환하는 것에는 문점이 있음. 예를 들어, US(미국)와..