从大量文本语料库中获取Ngram频率。文件夹

2024-04-20 05:45:12 发布

您现在位置:Python中文网/ 问答频道 /正文

我需要开发一个代码来计算Ngram(1,2,3,4,5,6)频率在大型文本语料库使用NLTK。我有两个问题: 1: 我有以下代码可以批量导入文件:

from nltk.corpus import PlaintextCorpusReader

Corpus_root = 'C/x/x/Myfolder'
files = PlaintextCorpusReader(corpus_root, '.*')
files.fileids()

给我一个被读入NLTK的所有文件的输出。在

我的第一个问题是如何将语料库读取器连接到即将到来的代码中以计算ngram?在

下一步我要解决的问题是,我应该使用哪种代码模块来计算二元、三元组和四、五元图以及它们的频率,它们的效率和速度是多少?在

我有300个txt文件,想用它们来获得ngram频率。在


Tags: 文件代码from文本rootcorpusfiles批量
1条回答
网友
1楼 · 发布于 2024-04-20 05:45:12

新语料库的使用方法与内置nltk语料库相同,如Brown或Reuters语料库:根据需要调用方法words()或{}。这两个方法都接受一个filename参数;如果使用,您将只获得该文件的单词。我建议使用它一次处理一个文件,否则一些ngram将在一个文件中开始,在另一个文件中结束。(你想要跨越句子界限的ngrams吗?您必须做出决定并相应地进行)。在

NLTK book有函数nltk.bigramsnltk.trigrams,和{}(它接受第二个参数n,指定ngram大小)。在

for fname in files.fileids():
    lots_of_bigrams = nltk.bigrams(files.words(fname))
    # count them however you want

NLTK书籍的Chapter 2展示了如何使用words()和{},甚至还有一节关于ngram。好好看看。在

相关问题 更多 >