단어의 의미 적 유사성을 어떻게 측정 할 수 있습니까?


20

단어의 의미 적 유사성을 알아내는 가장 좋은 방법은 무엇입니까? Word2Vec은 괜찮지 만 이상적이지는 않습니다.

# Using the 840B word Common Crawl GloVe vectors with gensim:

# 'hot' is closer to 'cold' than 'warm'
In [7]: model.similarity('hot', 'cold')
Out[7]: 0.59720456121072973

In [8]: model.similarity('hot', 'warm')
Out[8]: 0.56784095376659627

# Cold is much closer to 'hot' than 'popular'
In [9]: model.similarity('hot', 'popular')
Out[9]: 0.33708479049537632

NLTK의 Wordnet 방법은 단지 포기하는 것처럼 보입니다.

In [25]: print wn.synset('hot.a.01').path_similarity(wn.synset('warm.a.01'))
None

다른 옵션은 무엇입니까?


1
왜 word2vec가 이상적이지 않은지 알 수 있습니까? Word2vec는 단어의 의미 상 유사성을 포착하도록 설계되었는데 왜 이상적이지 않습니까?
SHASHANK GUPTA

3
그렇기 때문에 질문에 예제를 제공했습니다. 다시 말하면 : 'hot'과 'cold'는 반의어이지만 동의어에 훨씬 가까운 'hot'과 'warm'보다 유사합니다 (word2vec에 따름). '핫'은 '인기'(예 : "핫 아이템")를 의미 할 수 있지만 "핫"및 "콜드"는 "핫 및"인기 "보다 서로 더 가깝습니다. (의미 적으로 반대되는) 동의어 (의미 적으로 동일 함)와 유사
Thomas Johnson

보다 적절한 임베딩 방법을 사용하십시오 : 반의어-동의어 구별을위한 단어 임베딩에 배포 어휘 대조를 통합
Emre

답변:


11

Word2vec는 반의어 및 동의어를 기반으로 유사성을 캡처하지 않습니다. 두 단어가 비슷한 맥락을 가지고 있다면 Word2vec는 더 높은 유사성을 제공합니다. 예 : 캘리포니아의 날씨는 _____였습니다. 블랭크는 고온 및 저온으로 채워질 수 있으므로 유사성이 더 높아질 것이다. 이 개념을 패러다임 관계라고합니다.

hypernyms, hyponyms, 동의어, 반의어와 같은 관계를 포착하려면 wordnet 기반 유사성 측정법을 사용해야합니다. wordnet을 기반으로 한 많은 유사성 측정법이 있습니다. 이 링크를 확인할 수 있습니다 http://ws4jdemo.appspot.com/


7

에서 의미 론적 유사성에 대한 텍스트 분석 도구 , 그들은 두 문장 사이의 유사성을 발견하기 위해 알고리즘을 개발했다. 그러나 자세히 읽으면 행렬에서 단어의 유사성을 발견하고 문장의 유사성을 찾기 위해 합칩니다. 따라서 단어의 유사성을 확인하는 것이 좋습니다.

또한에 SimLex-999 (정품) 유사성 평가와 시맨틱 모델을 평가 , 그들은 차이를 설명 사이 associationsimilarity아마 당신의 관찰에 대한 이유이다뿐만 아니라. 예를 들어, 커피와 컵. 그것들은 비슷하지 않지만 연관되어 있습니다. 따라서 유사성을 고려하면 다른 결과를 얻을 수 있습니다. 저자는이를 평가하기 위해 다양한 모델을 제안합니다.


깨진 링크, "의미 적 유사성을위한 텍스트 분석 도구".
xtian

2

Word2vec는 대부분의 시나리오에서 좋은 출발점입니다. 그것은 않습니다 CBOW 방법을 사용하여 예측의 방법으로 캡처 의미를. 그것은 번역을 허용합니다 (가장 반복 된 예제로 여기에 다시 넣을 수 있습니다), V (King)-V (Queen) ~~ V (men)-V (women) 등.

그래서 무엇이 문제입니까? 문제는 단어 의미 모호성에 있습니다. 단어 자체가 두 개의 다른 문맥에서 두 가지 다른 의미를 가질 때마다, 단어 벡터는 실제로 어느 한 문맥에서 멀어지는 경향이 있습니다. Python ~ Boa (뱀 둘 다) 및 Python-Java (둘 다 프로그래밍 언어) ..

대안이 있습니까?

Wordnet 을 원한다면 "동의어"의 매우 특정한 목적을 위해 이상적인 장소가 될 것입니다. 사용법과 발생에 따라 내재 된 관계가 아닌 두 단어의 명시적인 관계를 캡처합니다.

Wordnet은 주로 사전으로 만들어집니다. word2vec는 사용법으로 채굴됩니다.


0

문맥 자유 문법에서는 단어의 친밀감을 결정하는 것이 실제로 불가능하다고 생각합니다. 당신이 할 수있는 것은 어휘 벡터를 사용하고 단어가 두 어휘 사이의 값에 가깝다면 그 값은 가까워 야합니다.

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