Ich habe einen Klassifikator erstellt, indem ich Lehrbücher und Papiere aufgerufen habe, also würde ich gerne sehen, ob er tatsächlich gut klassifiziert werden kann. In einem solchen Fall ist es meines Erachtens einfach, Bewertungsdaten mit dem von NLTK bereitgestellten Korpus zu erstellen. Für die Daten zur Dokumentklassifizierung wird ein Korpus für Filmkritiken bereitgestellt. Eine Filmkritik mit der Bezeichnung "pos'or'neg" wird in eine einfache {0, 1} Identität umgewandelt, die angibt, ob sie ein Wort enthält oder nicht.
import nltk
from nltk.corpus import movie_reviews
def document_features(document, word_features):
document_words = set(document)
features = {}
for word in word_features:
if word in document_words:
features[word] = 1
else: features[word] = 0
return features
def dataset():
d = []
freqdist = nltk.FreqDist()
for category in movie_reviews.categories():
for fileid in movie_reviews.fileids(category):
for word in movie_reviews.words(fileid): freqdist.inc(word.lower())
word_features = freqdist.keys()
for category in movie_reviews.categories():
for fileid in movie_reviews.fileids(category):
fv = document_features(movie_reviews.words(fileid), word_features)
x_i = [v for k, v in sorted(fv.items(), key=lambda f: f[0])]
if category == 'pos':
y_i = 1
elif category == 'neg':
y_i = -1
d.append((y_i, x_i))
return d
Recommended Posts