2017-10-30 11 views
0

gensim word2vec를 사용하여 Named-Entity-recognition 문제에서 단어를 벡터로 표현하기 위해 여러 소송 파일이있는 CBOW 모델을 만들었지 만 평가 방법을 알고 싶습니다. 내 말의 표현. wordsim353 (NLTK) 또는 Google의 다른 온라인 데이터 세트와 같은 다른 데이터 세트를 사용하는 경우 파일의 내 도메인 데이터 세트와 관련된 모델을 작성했기 때문에 작동하지 않습니다. word2vec의 단어 벡터 표현을 평가하려면 어떻게해야합니까? 유사한 문맥에 속한 단어를 벡터 공간에서 더 가깝게 배치하고 싶습니다. 어떻게하면 빌드 모델이이를 수행하는지 확인할 수 있습니까?특정 컨텍스트 파일에서 word2vec 빌드를 평가하는 방법

에 대해 홀수 중 하나라는 기술을 사용하여 시작했습니다. 예를 들면 :

model.wv.doesnt_match("breakfast cereal dinner lunch".split()) --> 'cereal' 

나는 context.But에게 밖으로의 정확성을 유사한 상황과 이상한 단어의 세 단어를 복용 평가 word2vec .Started의 훈련에있는 단어를 사용하여 (검증에 대한) 내 자신의 데이터 집합을 생성 내 모델은 30 %에 불과합니다.

위의 방법은 실제로 내 w2v 모델을 평가하는 데 도움이됩니까? 아니면 더 좋은 방법이 있습니까?

word_similarity 측정 값을 사용하고 싶지만 내 모델을 평가하기 위해 참조 점수 (Human assessed)가 필요하거나이를 수행 할 수있는 기술이 있습니까? 제발, 아이디어 나 기술을 제안 해주세요.

답변

0

궁극적으로 이는 단어 - 벡터에 대한 의도에 따라 달라 지므로 가능한 한 최종 평가를 모방해야합니다.

"홀수 한 아웃"방식이 적당 할 수 있습니다. 외부 지식/분류를 통해 (최종 용도에 중요한 측면에서) 관련이있는 것으로 알려진 단어 2 개만으로 끝난 다음 3 번째 단어를 무작위로 선택합니다.

귀하의 수작업으로 만들어진 평가 세트가 귀하의 목적에 적합하지만 귀하의 단어 벡터가 잘 작동하지 않는다고 생각하는 경우, 귀하의 교육에 다른 문제가있을 수 있습니다 : 전처리 오류, 잘못 선택된 메타 매개 변수 등이 있습니다.

다음에 개선 할 사항을 선택하려면 개별 실패 사례를 자세히 조사해야합니다. 예를 들어 홀수 한 테스트 중 하나에서 실패하더라도 가장 유사한 단어 목록이 포함 된 각 단어에 대해 안구 테스트에서 표면적으로 여전히 의미가 있습니까? 더 많은 데이터 또는 더 많은 교육 반복을 사용하면 평가 점수가 크게 향상됩니까?

교육 및 평가/배포 중 흔히 저지르는 실수는 '더 많은 정보가 더 우수해야 함'이라는 직관에 지나치게 많은 희귀 한 단어를 유지하는 것입니다. 사실 몇 번 밖에 나오지 않는 단어는 매우 높은 품질의 벡터를 얻을 수 없습니다. 자주 사용되는 단어와 비교할 때 최종 벡터는 무작위 원래 초기화와 가장 일반적인 의미보다는 사용 가능한 몇 가지 특징의 특이성에 더 크게 영향을받습니다. 또한이 둘의 존재는 개선을 방해하는 경향이 있습니다 근처의 다른 자주 단어들. 그런 다음, 평가에서 약한 벡터의 '긴 꼬리'를 포함 시키면 강력한 벡터로 일반적인 단어보다 순위에 임의적으로 침입하는 경향이있어 평가 질문에 대한 '올바른'답변이 숨겨집니다.

또한, 당신은 단지 당신의 진정한 최종 목표에 대한 올바른 방향으로에 다른 최적화 포인트 뭔가를 찾고 있기 때문에 평가 점수의 절대 값이 중요하지 않을 수 있습니다. 정확한 평가 질문에서 조금 더 나은 단어 벡터는 다른 정보 검색 환경에서 여전히 잘 작동 할 수 있습니다.