编程语言
首页 > 编程语言> > 如何使用Python NLTK在WordNet同义词集中仅打印单词本身?

如何使用Python NLTK在WordNet同义词集中仅打印单词本身?

作者:互联网

Python 2.7中,有没有一种方法可以使用NLTK来获取单词,而不获取包括“ synset”,括号和“ n.01”等的额外格式?

例如,如果我这样做

        wn.synsets('dog')

我的结果如下所示:

[Synset('dog.n.01'), Synset('frump.n.01'), Synset('dog.n.03'), Synset('cad.n.01'), Synset('frank.n.02'), Synset('pawl.n.01'), Synset('andiron.n.01'), Synset('chase.v.01')]

我该如何获取这样的列表?

dog
frump
cad
frank
pawl
andiron
chase

有没有办法使用NLTK做到这一点,或者我必须使用正则表达式?我可以在python脚本中使用正则表达式吗?

解决方法:

如果要在不使用正则表达式的情况下执行此操作,则可以使用列表推导.

[synset.name.split('.')[0] for synset in wn.synsets('dog') ]

您在这里的意思是,对于每个同义集,返回句点之前的第一个单词.

标签:wordnet,python,regex,nltk
来源: https://codeday.me/bug/20191010/1888369.html