3

我想找到一个带有 API 的字典,它允许我查找与通配符和特定词性(名词/动词/形容词...)匹配的单词,例如,给我一个以结尾的动词列表“化”。

我一直在看 Wordnet,但看起来它不支持通配符查找。

谢谢。

4

1 回答 1

2

您可以通过两个步骤来实现:

  1. 从一个大的单词列表(英语词典,例如Peter Norvig 的单词列表)中,您可以仅对那些与您的通配符匹配的单词进行子集化。
  2. 对于那些匹配的单词,测试它们的词性,看看它们是否匹配你的目标(动词、名词等)

在我的示例中,我使用了一个非常小的单词列表:(Python)

import nltk
import re

#replace with English dictionary
#Using a small list of words for illustration
lst = ['swim', 'while', 'greet', 'prize', 'jeopardize', 'quartz', 'zebra']

def subset_words_by_wildcard(wordlist, pattern):
    matchingwords = []
    for w in wordlist:
        if re.search(pattern, w):
            matchingwords.append(w)
    return matchingwords

def subset_words_by_pos(words, pos):
    wpos = nltk.pos_tag(words)
    for w,p in wpos:
        if p == pos:
            print w,p


if __name__ == '__main__':

    pattern = r'ize$'
    #target_pos = "NN" 
    target_pos = "VBP"

    mlist = subset_words_by_wildcard(lst, pattern)
    subset_words_by_pos(mlist, target_pos)

运行它会产生:

>>> jeopardize VBP

希望这可以帮助。

于 2013-01-06T03:28:38.507 回答