Kel*_*Lee 1 nlp artificial-intelligence word-sense-disambiguation
假设我有一个单词A和一个单词B,其中我使用B作为提示意味着A的意思.例如,A = bass,B =音乐,给定这个单词对,作为人类,我们可以立即知道什么A这个词是什么意思.
我知道有很多算法适用于句子.我想知道是否已经开发出仅针对一对单词进行WSD的算法.
Word Sense Disambiguation(WSD)是在给定上下文句子/文档的情况下消除歧义的任务.在两个令牌短语的情况下,上下文基本上是另一个令牌.
您可以尝试不同的WSD软件,这里有一个列表:任何人都知道一些好的Word Sense消歧软件?
我将使用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
Run Code Online (Sandbox Code Playgroud)
或者,您可以在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()
Run Code Online (Sandbox Code Playgroud)
(免责声明:我写了两个pywsd和lesk模块NLTK)
| 归档时间: |
|
| 查看次数: |
1142 次 |
| 最近记录: |