小编Ara*_*ash的帖子

从大量.txt文件及其频率生成Ngrams(Unigrams,Bigrams等)

我需要在NLTK中编写一个程序,将一个语料库(大量的txt文件)分成unigrams,bigrams,trigrams,fourgrams和fivegrams.我已经编写了代码将我的文件输入到程序中.

输入是用英文写的300 .txt文件,我希望以Ngrams的形式输出,特别是频率计数.

我知道NLTK有Bigram和Trigram模块:http://www.nltk.org/_modules/nltk/model/ngram.html

但我不是那么先进,他们进入我的计划.

输入:txt文件不是单句

输出示例:

Bigram [('Hi', 'How'), ('How', 'are'), ('are', 'you'), ('you', '?'), ('?', 'i'), ('i', 'am'), ('am', 'fine'), ('fine', 'and'), ('and', 'you')] 

Trigram: [('Hi', 'How', 'are'), ('How', 'are', 'you'), ('are', 'you', '?'), ('you', '?', 'i'), ('?', 'i', 'am'), ('i', 'am', 'fine'), ('am', 'fine', 'and'), ('fine', 'and', 'you')]
Run Code Online (Sandbox Code Playgroud)

我的代码到目前为止:

from nltk.corpus import PlaintextCorpusReader
corpus = 'C:/Users/jack3/My folder'
files = PlaintextCorpusReader(corpus, '.*')
ngrams=2

def generate(file, ngrams):
    for gram in range(0, ngrams):
    print((file[0:-4]+"_"+str(ngrams)+"_grams.txt").replace("/","_"))


for file in files.fileids(): …
Run Code Online (Sandbox Code Playgroud)

python nltk

18
推荐指数
2
解决办法
4万
查看次数

标签 统计

nltk ×1

python ×1