Génération de Ngrams (Unigrams, Bigrams etc) à partir d'un grand corpus de fichiers .txt et de leur fréquence

J'ai besoin d'écrire un programme dans NLTK qui casse un corpus (une grande collection de fichiers txt) dans unigrams, bigrams, trigrammes, fourgrams et fivegrams. J'ai déjà écrit le code pour entrer mes fichiers dans le programme.

L'entrée est de 300 .les fichiers txt écrit en anglais et je veux la sortie en forme de Ngrams et spécialement de la fréquence de comptage.

Je sais que NLTK a Bigram et Trigramme modules : http://www.nltk.org/_modules/nltk/model/ngram.html

mais je ne suis pas du tout avancé pour entrer dans mon programme.

d'entrée: fichiers txt PAS simple phrase

exemple de sortie:

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')]

Mon code jusqu'à maintenant est:

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():
generate(file, ngrams)

Toute aide à ce qui devrait être fait par la suite?

source d'informationauteur Arash