wordnet引理频率对其他语言可靠吗?

时间:2017-06-26 09:46:20

标签: python nltk wordnet word-frequency

我有一个使用nltk.wordnet和引理频率的小python脚本。然而结果似乎很奇怪。 即使对于规范的例子,“狗”也是如此。对于大多数同义词,我得到0。 在中文里,几乎所有东西似乎都记为零:

dog
 {'dog': 2, 'domestic_dog': 0, 'Canis_familiaris': 0, 'frump': 0, 'cad': 0, 'bounder': 0, 'blackguard': 0, 'hound': 1, 'heel': 0, 'frank': 0, 'frankfurter': 0, 'hotdog': 0, 'hot_dog': 0, 'wiener': 0, 'wienerwurst': 0, 'weenie': 0, 'pawl': 0, 'detent': 0, 'click': 0, 'andiron': 0, 'firedog': 0, 'dog-iron': 0, 'chase': 10, 'chase_after': 0, 'trail': 3, 'tail': 0, 'tag': 0, 'give_chase': 0, 'go_after': 7, 'track': 1}

狗 
{'犬': 0, '狗': 0}

其他中文词语:

{'大学': 0, '学院': 0}
{'列为': 0, '比': 0, '比较': 0, '相比': 0}
{'你好': 0, '再见': 0, '喂': 0, '欢迎': 0}
{}
{   '交付': 0,
    '交托': 0,
    '交给': 0,
    '付出': 0,
    '供给': 0,
    '信托': 0,
    '托运': 0,
    '移交': 0,
    '给': 0,
    '给予': 0,
    '运送': 0,
    '递': 0}
{'腹泻': 0}

我会认为这是我的代码,但我偶尔会得到一个非零数字。

from nltk.corpus import wordnet as wn

def check(word, lang='cmn'):
    """get synonyms and freq"""
    syns = wn.synsets(word, lang=lang)
    counts = {}
    for syn in syns:
        for lem in syn.lemmas(lang=lang):
            name = lem.name()
            freq = lem.count()
            counts[name] = freq
    return counts

1 个答案:

答案 0 :(得分:0)

请参阅this question的答案。 Wordnet中的频率计数没有用,即使对于英语也没有用。您可以找到许多语言here的频率计数。