首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何使用SpaCy或NLTK从英语中的词根或词条生成所有派生术语?

如何使用SpaCy或NLTK从英语中的词根或词条生成所有派生术语?
EN

Stack Overflow用户
提问于 2021-05-01 10:47:42
回答 1查看 74关注 0票数 1

在NLTK或SpaCy中有没有一个函数可以提供所有可能的术语,这些术语可以从给定的引理单词中派生出来?例如:如果引理是“呼吸”,我需要“呼吸”的所有派生术语,如“呼吸”,“呼吸”等。如果词根是“吃”,我需要术语“吃”,“吃”,“吃”等等。

SpaCy中的.lemma_属性和NLTK中的WordNetLemmatizer()函数可以用来确定一个词的引理,但是我如何做相反的任务,即确定给定引理词中的所有派生项?

EN

回答 1

Stack Overflow用户

发布于 2021-05-01 17:03:51

您可以使用可用作spacy扩展的pyinflect。你需要先用pip install pyinflect安装它。使用它的示例:

代码语言:javascript
运行
复制
import spacy
import pyinflect

nlp = spacy.load("en_core_web_sm")

verbs = "eating goes touch felt hit sleeping"
doc = nlp(verbs)
for token in doc:
    base = token._.inflect("VB")
    gerund = token._.inflect("VBG")
    past_tense = token._.inflect("VBD")
    past_participle = token._.inflect("VBN")
    print(token.text, "-", base, "-", gerund, "-", past_tense, "-", past_participle)

# Output:
# eating - eat - eating - ate - eaten
# goes - go - going - went - gone
# touch - touch - touching - touched - touched
# felt - feel - feeling - felt - felt
# hit - hit - hitting - hit - hit
# sleeping - sleep - sleeping - slept - slept

编辑:要获得带有简短描述的整个标签列表,请运行以下代码:

代码语言:javascript
运行
复制
nlp = spacy.load('en_core_web_sm')
for label in nlp.get_pipe("tagger").labels:
    print(label, " -- ", spacy.explain(label))
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67342461

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档