Ich benutze den Korpus der nltk
Bibliothek, movie_reviews
der eine große Anzahl von Dokumenten enthält. Meine Aufgabe ist es, eine vorausschauende Leistung dieser Überprüfungen mit Vorverarbeitung der Daten und ohne Vorverarbeitung zu erzielen. Aber es gibt ein Problem in Listen documents
und documents2
ich habe die gleichen Dokumente und ich muss sie mischen, um die gleiche Reihenfolge in beiden Listen beizubehalten. Ich kann sie nicht separat mischen, da ich jedes Mal, wenn ich die Liste mische, andere Ergebnisse erhalte. Deshalb muss ich die auf einmal mit derselben Reihenfolge mischen, weil ich sie am Ende vergleichen muss (es hängt von der Reihenfolge ab). Ich benutze Python 2.7
Beispiel (in Wirklichkeit sind Zeichenfolgen mit Token versehen, aber nicht relativ):
documents = [(['plot : two teen couples go to a church party , '], 'neg'),
(['drink and then drive . '], 'pos'),
(['they get into an accident . '], 'neg'),
(['one of the guys dies'], 'neg')]
documents2 = [(['plot two teen couples church party'], 'neg'),
(['drink then drive . '], 'pos'),
(['they get accident . '], 'neg'),
(['one guys dies'], 'neg')]
Und ich muss dieses Ergebnis erhalten, nachdem ich beide Listen gemischt habe:
documents = [(['one of the guys dies'], 'neg'),
(['they get into an accident . '], 'neg'),
(['drink and then drive . '], 'pos'),
(['plot : two teen couples go to a church party , '], 'neg')]
documents2 = [(['one guys dies'], 'neg'),
(['they get accident . '], 'neg'),
(['drink then drive . '], 'pos'),
(['plot two teen couples church party'], 'neg')]
Ich habe diesen Code:
def cleanDoc(doc):
stopset = set(stopwords.words('english'))
stemmer = nltk.PorterStemmer()
clean = [token.lower() for token in doc if token.lower() not in stopset and len(token) > 2]
final = [stemmer.stem(word) for word in clean]
return final
documents = [(list(movie_reviews.words(fileid)), category)
for category in movie_reviews.categories()
for fileid in movie_reviews.fileids(category)]
documents2 = [(list(cleanDoc(movie_reviews.words(fileid))), category)
for category in movie_reviews.categories()
for fileid in movie_reviews.fileids(category)]
random.shuffle( and here shuffle documents and documents2 with same order) # or somehow