Natural Language Processing

스킵그램 접근 방식 스킵그램 접근 방식에서는 주어진 입력 다넝에 기초해서 일정 범위 이내의 주변 단어들을 예측하도록 모형을 훈련한다. painted 주변 단어를 예측하는 예시이다. painted에 대해 신경망은 claude, monet, the, grand 라는 주변 단어 스킵그램을 출력한다. skip gram은 skip 말그대로 painted를 시작해 Monet과 the 토큰을 건너 뛰고 claude. Grand를 예측하는 것이다. 주변 단어들을 예측하는 신경망의 구조는 신경망의 구조와 비슷하다. 스킵그램을 위한 신경망의 구조는 입력층과 은닉층, 출력층으로 이루어진 다층 신경망이다. 은닉층은 n개의 뉴런으로 구성되어있으며 여기서 n은 단어하나를 표현하는 벡터의 차원 수이다. 입력층과 출력층은 각각 M개..
이전에 LSA나 LDiA같은 축소 기법으로 사라진 단어의 희미한 의미를 복구하는 방법이다. 이전 차원 축소 방법은 단어 주변의 문맥을 그냥 무시했다. 단어 모음(bag-of-words) 자료 구조는 그냥 한 문서의 단어들을 통계적 문서에 집어 넣은 것 뿐이다. Word2Vec은 문서나 문장의 모든 단어가 아니라 한 단어의 이웃 단어 몇 개만으로 작은 단어 모음을 만든다. 이떄 그런 단어 모음이 문장들의 경계를 넘지는 않게 한다. 인접한 문장의 단어들로 하나의 단어 모음을 만들지는 않는다. 단어 벡터 훈련 과정이 문서 전체가 아니라 서로 관련된 단어들에 집중하게 된다. 단어 벡터 훈련 과정이 전체가 아니라 서로 관련된 단어들에 집중한다. 이런식으로 만들어낸 새로운 단어 벡터를 이용하면 동의어나 반의어를 식..
전문 검색 특정 단어나 문구가 있는 문서를 검색하는 것을 전문 검색(full text search)이라고 한다. 검색 엔진이 하는 기능이다. 검색 엔진들은 문서를 여러 조각으로 나누고, 각 조각들이 문서에 있는지 역색인(inversed index)을 작성한다. 책 뒷면에 keyword를 정리해둔 페이지와 비슷한 역할이다. 의미 기반 검색(semantic search) 질의문을 구성하는 단어들의 의미를 고려해서 문서를 찾는다. LSA와 LDiA를 사용해 주제 벡터를 구하는 방법으로 찾는다. 이 기법이 BOW나 TF-IDF 벡터 같은 수치들의 '색인'을 이용한 의미 기반 검색을 가능하게 하는 방법이다. 그러나 BOW나 TF-IDF벡터와 달리 의미 벡터들의 테이블은 전통적인 역색인 기법들로 쉽게 이산화하고 색..
분류명이 붙은 문자 메세지들로 선형 판별 분석 모형을 훈련 LDA는 LSA와 비슷 한 고차원 공간에서 차원들(BOW, TF-IDF)의 최고의 일차 결합을 찾아내려면 분류명이나 기타 점수들이 미리 부여된 훈련된 자료가 필요하다. LSA - 새 벡터 공간에서 모든 벡터가 서로 최대한 떨어지게 부여 LDA - 분류들 사이의 거리 즉 한 분류에 속하는 벡터들의 무게 중심과 다른 부류에 속하는 벡터들의 무게중심 사이의 거리를 최대화 LDA를 수행하려면 LDA 알고리즘에 분류명이 붙은 견본들을 제공해서 우리가 모형화하고자하는 주제를 알려줘야한다. ( 스팸 1 / 비스팸 0 ) Data Load # data load import pandas as pd from nlpia.data.loaders import get_d..
LSA 주제 모형이 고차원 TF-IDF 벡터 모형과 어느 정도나 일치하는지를 유사도 점수를 이용해서 비교 LSA를 거친 모형(다차원을 축소)이 고차원 벡터들과 비슷한 성능을 낼 수 있다면 좋은 모형이라고 할 수 있다. 두 주제벡터 사이 거리와 각도에 따라 주제의 의미가 얼마나 비슷한지 알려준다. 좋은 주제 모형이라면 비슷한 주제의 문서들에 대한 벡터 공간 안에서 서로 가까이 있어야한다. LSA는 벡터들 사이의 큰 거리를 유지하지만, 가까운 거리를 항상 유지하지는 않는다. 그말은 LSA는 문서들 사이의 관계에 대한 성분이 소실 될 수있다. LSA의 SVD 알고리즘은 새 주제 벡터 공간에서 모든 문서의 분산을 최대화하는 것에 초점을 두었기 때문이다. 특징 벡터 사이의 거리는 NLP 파이프라인의 성과에 큰 영..
nlp.seas.harvard.edu/2018/04/01/attention.html#position-wise-feed-forward-networks The Annotated Transformer The recent Transformer architecture from “Attention is All You Need” @ NIPS 2017 has been instantly impactful as a new method for machine translation. It also offers a new general architecture for many NLP tasks. The paper itself is very clearly writte nlp.seas.harvard.edu class MultiHead..
LDiA 대부분 주제 모형화나 의미 검색, 내용 기반 추천 엔진에서 가장 먼저 선택해야 할 기법은 LSA이다. 내용 기반 영화추천 알고리즘에 의하면 LSA가 LDiA 보다 약 두배로 정확하다. LSA에 깔린 수학은 간단하고 효율적이다. NLP의 맥락에서 LDiA는 LSA처럼 하나의 주제 모형을 산출한다. LDiA는 이번 장 도입부에서 했던 사고 실험과 비슷한 방식으로 의미 벡터 공간(주제 벡터들의 공간)을 산출한다. LDiA가 LSA와 다른 점은 단어 빈도들이 디리클레 분포를 따른다고 가정한다. LSA의 모형보다 LDiA의 디리클레 분포가 단어 빈도들의 분포를 잘 표현한다. LDiA는 의미 벡터 공간을 산출한다. 사고 실험에서 특정 단어들이 같은 문서에 함께 등장하는 횟수에 기초해서 단어들을 주제들에 직..
# 전처리 함수 생성 후 적용 def preprocessing(data,stopword): rm = re.compile('[:;\\'\\"\\[\\]\\(\\)\\.,@]') rm_data = data.astype(str).apply(lambda x: re.sub(rm, '', x)) word_token = [word_tokenize(x) for x in rm_data] remove_stopwords_tokens = [] for sentence in word_token: temp = [] for word in sentence: if word not in stopword: temp.append(word) remove_stopwords_tokens.append(temp) return remove_stopwo..
다했다
'Natural Language Processing' 카테고리의 글 목록 (5 Page)