我正在尝试培训文本分类模型。我有一个大的标签数据集。我已经尝试过scikit分类器NaiveBayes,KNeighborsClassifier,RandomForest等。但我无法获得超过30%的准确度。我如何使用神经网络进行文本分类?这是我到目前为止使用的算法
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,但仍然没有提高准确性。
数据的性质 文件是一组评论,关于事件的注释。标签是事件的高级别类别。正如预期的那样,评论和注释会出现人为错误,拼写错误。
答案 0 :(得分:0)
您需要提高功能的质量。我建议你在处理分类器算法之前,就如何设计这个问题的特征形成一个新的问题。从使用一些方法报告的准确性差,以及应该是您首先解决的最薄弱点的描述。