Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/image-processing/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python NLTK-制作一个';字典';来自语料库并保存数字标记_Python_Nlp_Nltk_Corpus_Tagged Corpus - Fatal编程技术网

Python NLTK-制作一个';字典';来自语料库并保存数字标记

Python NLTK-制作一个';字典';来自语料库并保存数字标记,python,nlp,nltk,corpus,tagged-corpus,Python,Nlp,Nltk,Corpus,Tagged Corpus,我对Python不是很有经验,但我想用语料库做一些数据分析,所以我在NLTK Python中做这部分 我想浏览整个语料库,制作一本包含语料库数据集中出现的每个单词的词典。我希望能够在这本词典中搜索一个单词,并找到这个单词作为什么词性出现的次数(tag)。例如,如果我搜索“dog”,我可能会找到100个名词标记和5个动词标记,等等 最终的目标是在外部将该文件保存为.txt或其他文件,并将其加载到另一个程序中,以检查某个单词成为哪个标记的可能性 我可以用Counter和ngrams来做这个吗?因为你

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

我想浏览整个语料库,制作一本包含语料库数据集中出现的每个单词的词典。我希望能够在这本词典中搜索一个单词,并找到这个单词作为什么词性出现的次数(tag)。例如,如果我搜索“dog”,我可能会找到100个名词标记和5个动词标记,等等

最终的目标是在外部将该文件保存为.txt或其他文件,并将其加载到另一个程序中,以检查某个单词成为哪个标记的可能性


我可以用Counter和ngrams来做这个吗?

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

>>> 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 
ConditionalFreqDist
基本上是一个包含
计数器
对象的字典,其中包含一些额外的内容。在NLTK文档中查找它

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

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

好的,这看起来很有效!谢谢我可以使用json将wordcounts的内容打印到文本文件中吗?json.dump(wordcounts,open(“corpus_dict.txt”,“w”)输出一个无意义的文本文件。我想这是因为它是一个物体的目录?我不知道。如果json不处理嵌套字典,我会非常惊讶,这就是它们的全部;我试过了,看起来完全合法。尝试
dump=json.dumps(wordcounts)
,然后打印
dump[:100]
有趣的是,我可以将dump[:100]打印到一个txt文件中,它会给出一些“{\“fawn\”:{\“NN\”:1},\“Ranavan\”……但是当我打印整个转储文件时,它看起来像是在文本之上写的文本