AI/NLP

· AI/NLP
단어 집합(vocabulary)단어 집합이란 서로 다른 단어들의 집합이다.book과 books와 같이 단어의 변형 형태도 다른 단어로 간주한다.텍스트의 모든 단어를 중복 허용하지 않고 모아놓은 것을 단어 집합이라고 한다. 원-핫 인코딩 (One-Hot Encoding)원-핫 인코딩은 단어 집합의 크기를 벡터 차원으로 하고, 원하는 단어의 인덱스 값을 1, 나머지를 0으로 처리한다.이렇게 표현된 벡터를 원-핫 벡터(One-Hot vector) 라고 한다. - 정수 인코딩: 각 단어에 고유한 정수 부여- 표현하고 싶은 단어의 고유한 정수를 인덱스로 간주, 해당 위치에 1, 나머지에 0 부여 우선 정수 인코딩을 진행한다.from konlpy.tag import Okt okt = Okt() tokens = ..
· AI/NLP
패딩앞서 정수 인코딩을 하는 과정에서 문장 토큰화 후 문장 별로 단어 토큰화를 했다.이 때 문장마다 단어의 개수가 다르므로 인코딩 후 각 리스트마다 길이가 다르다.'''[[1, 5], [1, 8, 5], [1, 3, 5], [8, 2], [2, 4, 3, 2], [3, 2], [1, 4, 6], [1, 4, 6], [1, 4, 2], [7, 7, 3, 2, 8, 1, 8], [1, 8, 3, 8]]''' 길이를 동일하게 맞추기 위해서는 가장 긴 문장을 기준으로 다른 문장들의 길이를 늘린다.가상의 단어 'PAD'가 있다고 가정하고 0번으로 정의해서 짧은 문장들을 채운다. for sentence in encoded: while len(sentence)  보편적으로 문장 뒤에 0을 채워 길이를 동일하게 ..
· AI/NLP
정수 인코딩컴퓨터는 텍스트보다 숫자를 더 잘 처리하기 때문에 자연어 처리 시 텍스트를 숫자로 바꾼다.각 단어를 고유한 정수에 매핑을 시키는데 보통 단어 등장 빈도수를 기준으로 정렬한 뒤 부여한다. Dictionaryfrom nltk.tokenize import sent_tokenizefrom nltk.tokenize import word_tokenizefrom nltk.corpus import stopwordsraw_text = "A barber is a person. a barber is good person. a barber is huge person. he Knew A Secret! The Secret He Kept is huge secret. Huge secret. His barber kept h..
· AI/NLP
불용어자주 등장할 수 있으나 분석하는 데에 도움이 되지 않는 단어들을 불용어라고 한다.예를 들면 I, my, on, in, 조사, 접미사 같은 것들이 있다. NLTKNLTK에서는 100개 이상의 영어 단어들을 불용어 패키지로 미리 정의하고 있다.stopwords.words('english')위 코드를 통해 NLTK에서 불용어로 정의한 단어들을 확인할 수 있다. from nltk.corpus import stopwordsfrom nltk.tokenize import word_tokenize from konlpy.tag import Oktexample = "Family is not an important thing. It's everything."stop_words = set(stopwords.words('..
· AI/NLP
표제어 추출표제어는 기본 사전형 단어라는 의미로 표제어 추출은 단어들로부터 표제어를 찾아가는 과정이다.am, are, is를 be로 나타낼 수 있는 것을 예로 들 수 있다. 표제어를 추출하는 방법은 형태학적 파싱을 하는 것이다.형태학: 형태소로부터 단어들을 만들어가는 학문 형태소는 어간과 접사가 존재한다.- 어간: 단어의 의미를 담고 있는 핵심 부분- 접사: 단어의 추가적인 의미를 주는 부분 (접미사, 접두사) 형태학적 파싱은 이 어간과 접사를 분리하는 작업이다.cats의 경우 cat이 어간 -s가 접사다. WordNetLemmatizer().lemmatize()from nltk.stem import WordNetLemmatizerlemmatizer = WordNetLemmatizer()words = [..
· AI/NLP
자연어 처리에서 데이터를 전처리하기 위해서 토큰화 - 정제 - 정규화 과정을 거친다. 토큰화토큰화: corpus에서 토큰이라 불리는 단위로 나누는 작업코퍼스(corpus): 특정한 목적을 가지고 특정 집단 내에서 사용하는 언어의 표본을 추출한 집합단어 토큰화토큰의 기준을 단어(단어구, 의미를 갖는 문자열)로 하는 경우다. 가장 기본적인 토큰화ex) 구두점을 제외하고 띄어쓰기를 기준으로 자르기 그러나 구두점이나 특수문자를 제거하면 토큰이 의미를 잃어버리는 경우가 발생하기도 한다. 토큰화 기준과 함수토큰화의 기준을 생각해봐야 하는 경우 -> 용도에 따라 영향이 없는 기준으로 선택한다. Don't와 Jane's의 경우 '에 대해서 어떻게 처리할 것인지에 대한 기준이 필요하다.토큰화 도구를 직접 설계할 수도 있..
abbiddo
'AI/NLP' 카테고리의 글 목록 (2 Page)