import nltk
from nltk import word_tokenize

# Dieses Programm liest eine Textdatei ein und
# lässt einen Tokenizer und einen Stemmer darüberlaufen.
# Mit den Funktionen check_lemmatizer und check_stemmer kann man sich alle Fälle anzeigen lassen,
# in denen das gestemmte oder das gelammatizte Token von dem ursprünglichen Token abweicht.
# Die Funktionen helfen Stärken und Schwächen der Lemmatizer und Stemmer zu erkennen.

filename = input('Textdatei: ')
infile = open(filename,"r",encoding="utf8")
textstring = infile.read()
infile.close()

tokens = word_tokenize(textstring)
text = nltk.Text(tokens)

porter = nltk.PorterStemmer()
stemmed = [porter.stem(t) for t in tokens]

wnl = nltk.WordNetLemmatizer()
lemmatized = [wnl.lemmatize(t) for t in tokens]

def check_lemmatizer():
    for i in range(1000):
        if tokens[i] != lemmatized[i]:
            print (tokens[i] , lemmatized[i])


def check_stemmer():
    for i in range(1000):
        if tokens[i] != stemmed[i]:
            print (tokens[i] , stemmed[i])

