보이지 않는 단어를 식별하고 이미 훈련 된 데이터와 연관시키기 위해 word2vec를 사용하는 방법


11

나는 word2vec gensim 모델을 작업하고 있었고 정말 흥미 롭습니다. 모델을 확인할 때 알 수없는 / 보이지 않는 단어가 훈련 된 모델에서 유사한 용어를 얻을 수있는 방법을 찾는 데 흥미가 있습니다.

이게 가능해? word2vec를 조정할 수 있습니까? 또는 훈련 말뭉치에는 내가 비슷한 것을 찾고 싶은 모든 단어가 있어야합니다.

답변:


9

텍스트 데이터를 다루는 모든 알고리즘에는 어휘가 있습니다. 단어 2vec의 경우, 어휘는 입력 코퍼스의 모든 단어 또는 최소 주파수 임계 값 이상의 단어로 구성됩니다.

알고리즘은 어휘 밖의 단어를 무시하는 경향이 있습니다. 그러나 본질적으로 단어 외의 단어가 없도록 문제를 재구성하는 방법이 있습니다.

단어는 word2vec에서 단순히 "토큰"입니다. 그들은 ngram이거나 문자 일 수 있습니다. 어휘를 정의하는 한 가지 방법은 최소한 X 번 발생하는 모든 단어가 어휘에 있다고 말하는 것입니다. 그런 다음 가장 일반적인 "음절"(ngrams of characters)이 어휘에 추가됩니다. 그런 다음 어휘에 개별 글자를 추가합니다.

이런 식으로 모든 단어를 다음과 같이 정의 할 수 있습니다

  1. 당신의 어휘에있는 단어
  2. 어휘에있는 음절 세트
  3. 어휘에 결합 된 글자와 음절 세트

3

word2vec는 단어를 원자로 취급합니다. 알 수없는 단어에 대한 의미있는 벡터를 얻으려면

  • 이 원자가 무엇인지 변경하십시오 (예 : jamesmf의 답변에서와 같이 문자 n- 그램으로 전환)
  • https://github.com/Leonard-Xu/CWE 의 CWE 모델 은 사용하기 쉽습니다.

1
github.com/facebookresearch/fastText 는 잘 작동하는 것 같습니다
Joachim Wagner

예, 시도했지만 형태 학적 세분화와 같은 작업에서는 제대로 작동하지 않습니다.
gaurus


0

단어가 어휘에 없으면 word2Vec 및 FastText가 실패합니다. 오류가 발생합니다. 관련 단어에 대한 점수 목록을 제공하지만 보이지 않는 단어는 어휘에 포함되지 않습니까? 그래서 보이지 않는 단어 문제를 어떻게 해결합니까?

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.