Я пытаюсь подготовить модель по классификации текста. У меня большой помеченный набор данных. Я пробовал классификаторы scikit NaiveBayes, KNeighborsClassifier, RandomForest и т. Д. Но я не могу получить точность выше 30%. Как я могу использовать Neural Networks для классификации текста? Вот алго я использовал до сих порНейронные сети для текстовой классификации
df = read_csv(filename, sep="|", na_values=[" "]).fillna(" ")
le = preprocessing.LabelEncoder()
target = le.fit_transform(df['label'])
vectorizer = TfidfVectorizer(sublinear_tf=True,
max_df=0.3,
min_df=100,
lowercase=True,
stop_words='english',
max_features=20000,
tokenizer=tokenize,
ngram_range=(1,4)
)
train = vectorizer.fit_transform(df['data'])
X_train, X_test, y_train , y_test = cross_validation.train_test_split(train, target, test_size=5000, random_state=0)
clf = MultinomialNB(alpha=.1)
clf.fit(X_train, y_train)
pred = clf.predict(X_test)
Мой набор данных содержит около 300k документов и векторизатор может производить ДО 50k особенностей. Я даже попробовал chisquare, чтобы уменьшить количество функций до 5k, но точность не сильно улучшилась.
Характер данных Документы представляют собой множество комментариев, примечаний к инциденту. Этикетки представляют собой категории высокого уровня для инцидентов. Как и ожидалось, комментарии и заметки подвергаются человеческим ошибкам, орфографическим ошибкам.
http://stats.stackexchange.com может быть более актуальным для этого вопроса. – jeff
Вам необходимо предоставить дополнительную информацию, например, образцы документов ... – fireant
В документах есть множество комментариев, примечаний к инциденту. Этикетки представляют собой категории высокого уровня для инцидентов. Как и ожидалось, комментарии и заметки подвергаются человеческим ошибкам, орфографическим ошибкам. –