Python NLTK - 从语料库制作 'Dictionary' 并保存数字标签

Python NLTK - Making a 'Dictionary' from a Corpus and Saving the Number Tags

我对 Python 不是很有经验,但我想用语料库做一些数据分析,所以我在 NLTK Python.

中做这部分

我想遍历整个语料库并制作一个包含语料库数据集中出现的每个单词的字典。然后我希望能够在这本词典中搜索一个词,并找到这个词作为词性(标签)出现的次数。因此,例如,如果我要搜索 'dog',我可能会找到 100 个名词标签和 5 个动词标签等。

最终目标是将此文件在外部保存为.txt 或其他文件,并将其加载到另一个程序中以检查单词是哪个标签的概率..

我会用 Counter 和 ngram 来做吗?

因为你只需要松散词的 POS,你不需要 ngram,你需要一个带标签的语料库。假设你的语料库已经被标记,你可以这样做。

>>> from nltk.corpus import brown
>>> wordcounts = nltk.ConditionalFreqDist(brown.tagged_words())
>>> wordcounts["set"].tabulate(10)
VBN   VB   NN  VBD VBN-HL NN-HL 
159   88   86   71    2    2 

A ConditionalFreqDist 基本上是 Counter 对象的字典,还有一些额外的东西。在 NLTK 文档中查找它。

PS。如果你想在计数之前对你的单词进行大小写标准化,请使用

wordcounts = nltk.ConditionalFreqDist((w.lower(), t) for w, t in brown.tagged_words())