N-Gramm mit Python berechnen

Ich musste die Unigramme, BiGramme und Trigramme für eine Textdatei mit folgendem Text berechnen:

"Mukoviszidose betrifft allein in den USA 30.000 Kinder und junge Erwachsene Das Einatmen von Salzwasser kann den Eiter und die Infektion verringern, die die Atemwege von Mukoviszidose-Patienten füllen, obwohl die Nebenwirkungen einen bösen Hustenanfall und einen harten Geschmack umfassen. Das ist die Schlussfolgerung von zwei Studien, die in dieser Woche im New England Journal of Medicine veröffentlicht wurden. "

Ich habe in Python angefangen und den folgenden Code verwendet:

#!/usr/bin/env python
# File: n-gram.py
def N_Gram(N,text):
NList = []                      # start with an empty list
if N> 1:
    space = " " * (N-1)         # add N - 1 spaces
    text = space + text + space # add both in front and back
# append the slices [i:i+N] to NList
for i in range( len(text) - (N - 1) ):
    NList.append(text[i:i+N])
return NList                    # return the list
# test code
for i in range(5):
print N_Gram(i+1,"text")
# more test code
nList = N_Gram(7,"Here is a lot of text to print")
for ngram in iter(nList):
print '"' + ngram + '"'

http://www.daniweb.com/software-development/python/threads/39109/generating-n-grams-from-a-word

Aber es funktioniert für alle n-Gramme innerhalb eines Wortes, wenn ich es zwischen Wörtern wie CYSTIC und FIBROSIS oder CYSTIC FIBROSIS haben möchte. Kann mir jemand helfen, wie ich das hinbekomme?

Antworten auf die Frage(8)

Ihre Antwort auf die Frage