작은 텍스트 파일에 word2vec 적용


11

나는 word2vec에 완전히 새로운 그래서 pls는 나와 함께 견딜. 각각 1000-3000 사이의 트윗 세트를 포함하는 텍스트 파일 세트가 있습니다. 공통 키워드 ( "kw1")를 선택했으며 word2vec를 사용하여 "kw1"에 대한 의미 적으로 관련있는 용어를 찾고 싶습니다. 예를 들어 키워드가 "apple"인 경우 입력 파일을 기준으로 "ipad" "os" "mac"...와 같은 관련 용어가 표시됩니다. 따라서 "kw1"에 대한이 관련 용어 집합은 word2vec가 개별 파일 (예 : 5 개의 입력 파일, 각 파일에서 word2vec를 5 회 실행)에 대해 학습되므로 각 입력 파일마다 다릅니다.

나의 목표는 다른 목적으로 사용될 공통 키워드 ( "kw1")가 주어진 각 입력 파일에 대한 관련 용어 세트를 찾는 것입니다.

내 질문 / 의심은 다음과 같습니다

  • 이와 같은 작업에 word2vec를 사용하는 것이 합리적입니까? 입력 파일의 작은 크기를 고려하여 기술적으로 사용하는 것이 옳습니까?

code.google.com ( https://code.google.com/p/word2vec/) 에서 코드를 다운로드했으며 다음과 같이 드라 이런을 제공했습니다.

 time ./word2vec -train $file -output vectors.bin -cbow 1 -size 200 -window 10 -negative 25 -hs 1 -sample 1e-3 -threads 12 -binary 1 -iter 50

./distance vectors.bin 
  • 내 결과에서 나는 '거리'도구를 사용하여 관련 용어를 "kw1"로 가져올 때 많은 시끄러운 용어 (stopwords)를 얻는 것을 보았다. 그래서 나는 스톱 워드와 사용자 언급과 같은 다른 시끄러운 용어를 제거했습니다. 그러나 word2vec가 깨끗한 입력 데이터를 필요로한다는 것을 보지 못했습니다 ...?

  • 올바른 매개 변수를 어떻게 선택합니까? '창', '-iter'와 같은 매개 변수를 변경하면 결과 (거리 도구를 실행 한 결과)가 크게 다릅니다. 매개 변수의 올바른 값을 찾기 위해 어떤 기술을 사용해야합니까? (데이터 세트를 확장 할 때 수동 시험 및 오류는 불가능합니다).

답변:


9

이러한 크기의 데이터 집합에는 Word2Vec이 적합하지 않습니다. 내가 본 연구에서, 적어도 2 백만 단어를 먹으면 힘이 발휘됩니다. 간결한 단어 유사성에는 3k 트윗만으로는 충분하지 않습니다.


데이터 사전 처리 단계에서 스톱 워드를 제거해야합니까?
samsamara

2
아니요, word2vec 접근 방식에서는 알고리즘 자체가 단어의 유사성을 찾기 위해 광범위한 컨텍스트에 의존하므로 중지 단어 (대부분 전치사, 대명사 등)는 알고리즘의 중요한 부분입니다. .
chewpakabra

그러나 거리 도구를 사용하여 주어진 단어와 가장 유사한 단어를 찾을 때 스톱 워드가 제거 된 버전은없는 버전보다 합리적인 단어를 제공했습니다. 이게 무슨 뜻인지 알 겠어?
samsamara

아마도, 당신은 너무 좁은 맥락을 사용하고있을 것입니다 : 만약 당신의 모델이 두 단어를 앞뒤로 살펴보면, 문맥 상 최대 2 개의 스톱 워드를 가질 것이고 더 나쁜 결과를 낼 수 있습니다. 문맥을 넓히면 (모델이 커지고 훈련 시간이 길어질 수 있음) 정지 어 모델이 더 나은 결과를 제공 할 것이라고 가정합니다.
chewpakabra

입력 주셔서 감사합니다, 지금 더 의미가 있습니다. 또한 word2vec는 문장으로 입력 문장을 처리하기 때문에 입력 문서에서 문장을 섞으면 어떻게됩니까? 출력 벡터를 완전히 바꿔야합니까? 또한 send로 보낸 처리를 고려할 때 word2vec는 doc2vec와 어떻게 다릅니 까? 다시 감사합니다.
samsamara
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.