NLTK 单字词性标注

Lel*_*don 2 nltk part-of-speech

考虑到不同的单词可能有同音异义词,有没有办法使用 NLTK 来获取单个字母字符串的一组可能的词性?

例如:report -> {Noun, Verb} , kind -> {Adjective, Noun}

我一直无法找到一个 POS-tokenizer 来标记完整句子上下文之外的词的词性。这似乎是 NLTK 的一个非常基本的要求,所以我很困惑为什么我很难找到它。

ale*_*xis 5

是的。最简单的方法不是使用标注器,而是简单地加载一个或多个语料库并收集您感兴趣的单词的所有标签的集合。如果您对多个单词感兴趣,最简单的方法是收集标签对于语料库中的所有单词,然后查找您想要的任何内容。我会添加频率计数,因为我可以。例如,使用 Brown 语料库和简单的“通用”标签集:

>>> wordtags = nltk.ConditionalFreqDist((w.lower(), t) 
        for w, t in nltk.corpus.brown.tagged_words(tagset="universal"))
>>> wordtags["report"]
FreqDist({'NOUN': 135, 'VERB': 39})
>>> list(wordtags["kind"])
['ADJ', 'NOUN']
Run Code Online (Sandbox Code Playgroud)