文本分类的神经网络

时间:2015-11-01 02:37:38

标签: python machine-learning neural-network text-mining

我正在尝试培训文本分类模型。我有一个大的标签数据集。我已经尝试过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,但仍然没有提高准确性。

数据的性质 文件是一组评论,关于事件的注释。标签是事件的高级别类别。正如预期的那样,评论和注释会出现人为错误,拼写错误。

1 个答案:

答案 0 :(得分:0)

您需要提高功能的质量。我建议你在处理分类器算法之前,就如何设计这个问题的特征形成一个新的问题。从使用一些方法报告的准确性差,以及应该是您首先解决的最薄弱点的描述。