2017-12-04 42 views
1

비슷한 문장을 찾기 위해 word2vec/doc2vec를 적용하려고합니다. 먼저 단어 유사성에 대한 word2vec를 고려하십시오. 내가 이해하는 바는 CBOW를 사용하면 컨텍스트에서 가장 적합한 단어를 찾을 수 있지만 Skip-gram은 주어진 단어의 컨텍스트를 찾는 데 사용되므로 두 경우 모두 자주 발생하는 단어를 얻게됩니다. 그러나 유사한 단어를 찾는 것은 어떻게 작동합니까? 나의 직관은 유사한 문맥에서 비슷한 단어가 나오는 경향이 있기 때문에 문맥 유사성은 문맥 적/공동 발생 단어 사이의 유사성으로부터 실제로 측정됩니다. 신경망에서 숨겨진 레이어의 일부 단어에 대한 벡터 표현이 출력 레이어로 전달되면 동시 발생 단어의 가능성을 출력합니다. 따라서 공동 발생 단어는 일부 단어의 벡터에 영향을 미치며 유사한 단어는 유사한 단어 집합을 갖기 때문에 벡터 표현도 유사합니다. 유사성을 찾으려면 각 단어에 대한 숨겨진 계층 가중치 (또는 벡터)를 추출하여 유사성을 측정해야합니다. 나는 그것을 정확하게 이해합니까?단어 유사성을 위해 단어 삽입이 어떻게 작동합니까?

마지막으로, word2vec/doc2vec를 사용하여 트윗 텍스트 (전체 문장) 유사성을 찾는 좋은 방법은 무엇입니까? 나는이 스택 오버플로에 대한 질문이지만, 여기에 응답에서 내 시도를가는 확실하지 않다

+1

[DataScience.SE] (https://datascience.stackexchange.com/) – smci

답변

0

... 당신이에 성공의 정의를 혼합하고 있지만

당신은 바로 기본 개념을 가지고 구현시 신경망을 언급 할 때 CBOW 및 skip-gram에 대한 단어 임베딩을 수행하는 다른 방법이 있습니다.

단어 임베딩을 전송할 수 있습니다 (일반적으로 NLP에서 전송 학습이라고합니다. 첫 번째 레이어로 사용하는 표준 연습 인 임베디드 레이어라고 함). 다른 레이어에 고정되거나 더 고정 된 상태로 유지됩니다. 복잡한 NLP의 손 작업, 그래서 ... 당신의 마지막 질문에 대해서는

, 정말 당신이 짹짹 거리를 사용하고있는 작업

  1. 의 특성에 따라 달라집니다?
  2. 감독 또는 감독하지 않습니까?
  3. 출력 공간이란 무엇입니까?

나는 좋은 내기가 wmd (나는 그 gensim 구현 생각 autoencoders (Hinton's dimensionality reduction paper 참조) 언어 모델을 시도 (마지막 숨겨진 벡터를 복용)하는 것입니다 주제에 대한 클러스터링 같은 뭔가 doc2vec의 자율 학습에 대한 생각) 및 많은 다른 사람 (단어 끼워 넣기를 전혀 사용하지 않는 다른 BOW 방법도 있습니다.)

+0

대답. 나는 두 번째 부분에 대한 나의 질문을 업데이트 할 것이다. 요약하면, 구현이 무엇이든 단어에 대한 학습 된 벡터는 컨텍스트를 캡처하고 컨텍스트 큐에 따라 유사성을 찾기 위해 추출되고 사용된다는 것입니까? – Rakib

+0

유명한 언어 학자 (J.R.Firth)의 말에 따르면 "회사에서 보유한 단어를 알고 있어야합니다"라는 문맥을 예측함으로써 벡터를 구축합니다. 단어의 의미와 문맥은 문맥을 예측하는 부산물이 의미를 가질 정도로 매우 관련이 있다고 간주됩니다. –

+0

예를 들어 특정 언어의 예측에서 단어의 성별을 알아야하는 경우 표현 벡터 공간에 언어의 성별 구조가 포함 된 일부 하위 공간이 포함될 것입니다. 그리고 이것은 단어 성별이 일반적으로 가까운 단어의 성별 (형용사, 동사 (일부 언어) 등) –