一种自然语言处理

时间:2013-03-20 20:34:11

标签: python nlp nltk

我有一句话可以说“赛车”。

我想知道它的所有格式名词,形容词动词等。例如。赛车比赛等。

是否有一个python库可以帮助我解决这个问题?

2 个答案:

答案 0 :(得分:4)

如果您对匹配这些字符串感兴趣,我建议您查看fuzzywuzzy。它允许您在特定容差范围内轻松地对字符串进行标记并基于令牌等效进行匹配。

例如'Race'和'Racer'会有很高的匹配百分比,可以认为匹配。

就推断一个单词的不同形式而言,我恐怕我从未见过罐装的东西,虽然这可以很好地帮助你实现目标,也许可以为你提供合适的起点来自己编写。

我希望这会有所帮助

答案 1 :(得分:1)

我发现了类似的问题Convert words between verb/noun/adjective forms

在其中一个答案中,用户@PBelzile建议在线服务Idilia:http://www.idilia.com/demos/language-graph-browser/?node=code%2FV3

看起来它可以做你想要的。

你也可以尝试使用wordnet nLtk:

import nltk
nltk.download("wordnet")

from nltk.corpus import wordnet as wn

for lemma in wn.lemmas("race"):
    for form in lemma.derivationally_related_forms():
        print lemma, form

输出:

Lemma('race.n.01.race') Lemma('race.v.02.race')
Lemma('race.n.02.race') Lemma('race.v.02.race')
Lemma('race.n.02.race') Lemma('racy.s.04.racy')
Lemma('race.n.03.race') Lemma('racial.a.01.racial')
Lemma('race.v.02.race') Lemma('racing.n.01.racing')
Lemma('race.v.02.race') Lemma('race.n.02.race')
Lemma('race.v.02.race') Lemma('racer.n.03.racer')
Lemma('race.v.02.race') Lemma('racer.n.02.racer')
Lemma('race.v.02.race') Lemma('race.n.01.race')
Lemma('race.v.04.race') Lemma('racer.n.01.racer')
相关问题