Nlp 从名词中提取动词名词

Nlp 从名词中提取动词名词,nlp,nltk,text-processing,linguistics,Nlp,Nltk,Text Processing,Linguistics,动词名词是由动词构成的或与动词相对应的名词 我想写一个算法,当给定一个名词时,返回相应的动词(如果输入的名词是动词名词)。 我最初的想法是对名词使用词干分析器,然后在动词列表中搜索具有相同词干的动词。 在此之前,我创建了一个小的测试数据集。 这表明,有时这种方法不起作用: 例如: “解释”和“解释”没有相同的词干。 “决定”和“决定”没有相同的词干 from nltk.stem.snowball import SnowballStemmer stemmer = SnowballStemmer('

动词名词是由动词构成的或与动词相对应的名词

我想写一个算法,当给定一个名词时,返回相应的动词(如果输入的名词是动词名词)。
我最初的想法是对名词使用词干分析器,然后在动词列表中搜索具有相同词干的动词。
在此之前,我创建了一个小的测试数据集。
这表明,有时这种方法不起作用:
例如:
“解释”和“解释”没有相同的词干。
“决定”和“决定”没有相同的词干

from nltk.stem.snowball import SnowballStemmer
stemmer = SnowballStemmer('english')

l=[('to increase', 'increase'),
('to inhibit', 'inhibition'),
('to activate', 'activation'),
  ('to explain', 'explanation'),
  ('to correlate', 'correlation'),
  ('to decide', 'decision'),
   ('to insert', 'insertion')
  ]

for p in l:
    print(stemmer.stem(p[0]), ' <-> ', stemmer.stem(p[1]))

#to increas  <->  increas
#to inhibit  <->  inhibit
#to activ  <->  activ
#to explain  <->  explan
#to correl  <->  correl
#to decid  <->  decis
#to insert  <->  insert

从nltk.stem.snowball导入Snowballstember
词干分析器=雪球词干分析器(“英语”)
l=[(‘增加’、‘增加’),
(“抑制”、“抑制”),
(“激活”、“激活”),
(“解释”、“解释”),
(“关联”、“关联”),
(“决定”、“决定”),
(“插入”、“插入”)
]
对于l中的p:
打印(stemmer.stem(p[0]),“”,stemmer.stem(p[1]))
#增加
#抑制
#行动
#解释
#圈养
#决定
#插入

有人知道有一种方法可以在派生名词没有相同词干的情况下使用吗?

没有一种方法可以在所有情况下使用,因为您无法确定所有情况。在英语中,任何名词都可以被“逐字逐句”,从而形成一种无限集合。 你可以做的是将你的标记元素化,然后使用nltk的引理。派生相关的形式()函数,以获得所有派生自动词的名词。搜索相应的数据结构将得到正确的结果。为了减少搜索每个名词所需的动词数量,您可以使用最大的通用前缀,例如

看看这个:


引理。衍生相关形式()对你有用吗?很好的方法和有用的链接。非常感谢。