找到动词的最佳介词

Finding the best preposition for a verb

我有完成句子的任务,我有主语、动词、副词或主语,我只需要中间适当的介词。是否有任何 NLP 工具可以分配可以与动词搭配的介词?

最佳

我听说 NLTK 很有用,但我相信如果您搜索,您可以找到很多 public Github 存储库。出现的一些结果是 TextBlob、Standard Core NLP、spaCy、genism。

以下是获取 Brown 语料库中所有动词-介词对的频率计数,然后查找动词 "go" 的方法。首先是计数:

import nltk
from nltk.corpus import brown
prepchoices = nltk.ConditionalFreqDist((v[0], p[0]) 
    for (v, p) in nltk.bigrams(brown.tagged_words(tagset="universal")) 
        if v[1] == "VERB" and p[1] == "ADP") 

"ADP"代表"adposition",即介词或post位。现在让我们看看我们得到了什么:

>>> prepchoices["go"]
FreqDist({'to': 96, 'with': 20, 'into': 18, 'through': 8, 'on': 8, 'for': 7, 
'in': 5, 'out': 4, 'around': 4, 'from': 4, ...})

您可以获得最热门的选择,按频率降序排列,most_common():

>>> print(prepchoices["go"].most_common(5))
[('to', 96), ('with', 20), ('into', 18), ('through', 8), ('on', 8)]

我没有对动词进行任何词干提取("goes" 和 "went" 被算作单独的词),甚至没有进行大小写折叠。您可以添加它们,但上面的内容应该已经为您提供了一个不错的分布图。