python单词sense disamamain(WSD)技术的实现:
Lesk算法
最大化相似性(另请参见Pedersen等人(2003))
注意:PYWSD仅支持Python 3 Now( pywsd>=1.2.0 )。如果您使用的是Python 2,则最后一个可能的版本是pywsd==1.1.7 。
pip install -U nltk
python -m nltk.downloader 'popular'
pip install -U pywsd
$ python
> >> from pywsd . lesk import simple_lesk
> >> sent = 'I went to the bank to deposit my money'
> >> ambiguous = 'bank'
> >> answer = simple_lesk ( sent , ambiguous , pos = 'n' )
> >> print answer
Synset ( 'depository_financial_institution.n.01' )
> >> print answer . definition ()
'a financial institution that accepts deposits and channels the money into lending activities'对于WSD,请尝试:
> >> from pywsd import disambiguate
> >> from pywsd . similarity import max_similarity as maxsim
> >> disambiguate ( 'I went to the bank to deposit my money' )
[( 'I' , None ), ( 'went' , Synset ( 'run_low.v.01' )), ( 'to' , None ), ( 'the' , None ), ( 'bank' , Synset ( 'depository_financial_institution.n.01' )), ( 'to' , None ), ( 'deposit' , Synset ( 'deposit.v.02' )), ( 'my' , None ), ( 'money' , Synset ( 'money.n.03' ))]
> >> disambiguate ( 'I went to the bank to deposit my money' , algorithm = maxsim , similarity_option = 'wup' , keepLemmas = True )
[( 'I' , 'i' , None ), ( 'went' , u'go' , Synset ( 'sound.v.02' )), ( 'to' , 'to' , None ), ( 'the' , 'the' , None ), ( 'bank' , 'bank' , Synset ( 'bank.n.06' )), ( 'to' , 'to' , None ), ( 'deposit' , 'deposit' , Synset ( 'deposit.v.02' )), ( 'my' , 'my' , None ), ( 'money' , 'money' , Synset ( 'money.n.01' ))]要读取每个综合的预计签名:
> >> from pywsd . lesk import cached_signatures
> >> cached_signatures [ 'dog.n.01' ][ 'simple' ]
set ([ u'canid' , u'belgian_griffon' , u'breed' , u'barker' , ... , u'genus' , u'newfoundland' ])
> >> cached_signatures [ 'dog.n.01' ][ 'adapted' ]
set ([ u'canid' , u'belgian_griffon' , u'breed' , u'leonberg' , ... , u'newfoundland' , u'pack' ])
> >> from nltk . corpus import wordnet as wn
> >> wn . synsets ( 'dog' )[ 0 ]
Synset ( 'dog.n.01' )
> >> dog = wn . synsets ( 'dog' )[ 0 ]
> >> dog . name ()
u'dog.n.01'
> >> cached_signatures [ dog . name ()][ 'simple' ]
set ([ u'canid' , u'belgian_griffon' , u'breed' , u'barker' , ... , u'genus' , u'newfoundland' ])引用pywsd :
ling棕褐色。 2014年。PYWSD:python Word Sense Disampuation(WSD)技术的实现[软件]。取自https://github.com/alvations/pywsd
在bibtex中:
@misc{pywsd14,
author = {Liling Tan},
title = {Pywsd: Python Implementations of Word Sense Disambiguation (WSD) Technologies [software]},
howpublished = {https://github.com/alvations/pywsd},
year = {2014}
}
迈克尔·莱斯克(Michael Lesk)。 1986年。使用机器可读词典自动歧义歧义:如何从冰淇淋锥中告诉松锥。在第5届国际系统文档国际会议(Sigdoc '86)的会议录中,弗吉尼亚Debuys(ed。)。 ACM,纽约,纽约,美国,24-26。 doi = 10.1145/318723.318728 http://doi.acm.org/10.1145/318723.318728
Satanjeev Banerjee和Ted Pedersen。 2002。一种适用于WordNet的适用于单词sense歧义的Lesk算法。在第三届计算语言学和智能文本处理国际会议论文集(Cicling '02),Alexander F. Gelbukh(编辑)。英国伦敦,伦敦,施普林格弗洛格,136-145。
Satanjeev Banerjee和Ted Pedersen。 2003。扩展的光重叠作为语义相关性的量度。在第十八届国际人工智能会议论文集,第805-810页,阿卡普尔科。
杰伊·江和大卫·W·康拉特。 1997。基于语料库统计和词汇分类法的语义相似性。在台湾国际计算语言学研究会议论文集。
克劳迪娅·莱考克(Claudia Leacock)和马丁·乔多洛(Martin Chodorow)。 1998。将局部上下文和WordNet相似性结合在一起,以进行单词感知识别。在Fellbaum,1998年,第265-283页。
Lee,Yoong Keok,Hwee Tou Ng和Tee Kiah Chia。 “有监督的单词感官歧义,用支持向量机和多个知识源。” Senseval-3:第三次国际研讨会有关文本语义分析系统评估的国际研讨会。 2004。
德孔林。 1998年。相似性的信息理论定义。在威斯康星州麦迪逊市第15届国际机器学习会议论文集。
Linlin Li,Benjamin Roth和Caroline Sporleder。 2010年。单词感官歧义和基于令牌的成语检测的主题模型。计算语言学协会(ACL)的第48届年会。乌普萨拉,瑞典。
Andrea Moro,Roberto Navigli,Francesco Maria Tucci和Rebecca J. Passonneau。 2014。用babelnet注释MASC语料库。在第九届国际语言资源与评估会议论文集(LREC'14)。雷克雅未克,冰岛。
Zhi Zhong和Hwee tou ng。 2010年。这是有道理的:一个宽覆盖的单词Sense Sense dismand歧义系统。在ACL 2010系统示范论文集(ACLEMOS '10)。计算语言学协会,美国宾夕法尼亚州斯特劳兹堡,78-83。
史蒂文·伯德(Steven Bird),伊万(Ewan Klein)和爱德华·洛珀(Edward Loper)。 2009。与Python(第一版)的自然语言处理。 O'Reilly Media,Inc。
Eneko Agirre和Aitor Soroa。 2009年。个性化词语的人物歧义歧义。计算语言学协会欧洲分会第12届会议论文集(EACL-2009)。雅典,希腊。