단어 A와 단어 B가 있는데 A의 의미를 암시하는 힌트로 B를 사용한다고 가정 해 보겠습니다. 예를 들어 A = 저음, B = 음악,이 단어가 주어지면 쌍으로, 인간으로서 우리는 단어 A가 무엇을 의미하는지 즉시 알 수 있습니다.단어 쌍에 대한 단어 의미 모호성
문장을 처리하는 알고리즘이 많이 있다는 것을 알고 있습니다. 나는 한 쌍의 단어에 대해서만 WSD를 수행하기 위해 개발 된 알고리즘이 있는지 궁금합니다.
단어 A와 단어 B가 있는데 A의 의미를 암시하는 힌트로 B를 사용한다고 가정 해 보겠습니다. 예를 들어 A = 저음, B = 음악,이 단어가 주어지면 쌍으로, 인간으로서 우리는 단어 A가 무엇을 의미하는지 즉시 알 수 있습니다.단어 쌍에 대한 단어 의미 모호성
문장을 처리하는 알고리즘이 많이 있다는 것을 알고 있습니다. 나는 한 쌍의 단어에 대해서만 WSD를 수행하기 위해 개발 된 알고리즘이 있는지 궁금합니다.
WSD (Word Sense Disambiguation)는 컨텍스트 문장/문서에서 단어의 모호성을 제거하는 작업입니다. 이 경우 두 토큰 문구 중 컨텍스트는 기본적으로 다른 토큰입니다.
현재 다른 WSD 소프트웨어를 시도 할 수는 목록입니다 : Anyone know of some good Word Sense Disambiguation software?
난 당신이 사용하는 예제 pywsd
(https://github.com/alvations/pywsd)주지 :, 또는
$ wget https://github.com/alvations/pywsd/archive/master.zip
$ unzip master.zip
$ cd pywsd-master
$ python
Python 2.7.5+ (default, Feb 27 2014, 19:37:08)
[GCC 4.8.1] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> from lesk import simple_lesk
# disambiguating the word 'bass' given the context 'bass music'
>>> simple_lesk('bass music', 'bass')
Synset('bass.n.07')
>>> disambiguated = simple_lesk('bass music', 'bass')
>>> disambiguated.definition
<bound method Synset.definition of Synset('bass.n.07')>
>>> disambiguated.definition()
u'the member with the lowest range of a family of musical instruments
을 당신이 새 모듈을 사용할 수 있습니다 NLTK
(https://github.com/nltk/nltk/blob/develop/nltk/wsd.py), 주어진 당신은 최첨단 버전이 있는지 :
from nltk.wsd import lesk
disambiguated = lesk(context_sentence="bass music", ambiguous_word="bass")
print disambiguated.definition()
을 (부인 : pywsd
과 lesk
모듈을 모두 NLTK
에 작성했습니다.
고맙습니다! 나는 많은 알고리즘을 목록에서 보았다! 어떤 알고리즘이 내 작업에 가장 적합한 알고리즘이라고 생각하십니까? 가장 적절하게는 정확도가 높고 알고리즘/공간 복잡성이 낮을 수도 있습니다. –
나는별로 없어. 2 개의 주요 알고리즘, 즉 레크 (lesk) 및 유사성 최대화 만 있습니다. 나머지는 진행 중입니다. 내가 레크 알고리즘 중 하나를 기준으로 만 사용하는 것이 좋습니다. 나는 자유로울 때 나머지 코드를 완성하려고 노력할 것이다. – alvas
필자는 adapt__lesk을 레크 (lesk) 변종과 유사성 ("오랜 시간이 걸린다")에 대해 "가장 강한"것으로 제안하지만 경로 유사성은 잘 작동합니다. – alvas