"避免实体在短文本分类中过度匹配的方法?"

2024-04-25 06:01:55 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在整理头条新闻。这些标题在1到7个单词之间,有时还包括创建它们的人的名字或位置。 我能够以81%的精度进行分类,但当我检查影响每个分类组的特征(单词)时,我注意到许多名字对特定组的分类最好,因为它们随机出现在一个组中

我认为有两种解决方案: 1.使用NER过滤实体 2.增加正则化(仍未成功)

处理这种过度装配的最佳方法是什么? 如果增加lambda值就是答案,那么sklearn LogisticRegressionCV是如何实现的呢

相关代码:

from sklearn.linear_model import LogisticRegressionCV
X_train_stem_u = vectorizer_stem_u.fit_transform(X_train)

X_prepeared_data_train = X_train_stem_u 
selected_vectorizer = vectorizer_stem_u 

clf =  LogisticRegressionCV(cv=5,max_iter=800).fit(X_prepeared_data_train, y_train)#solver='liblinear',penalty='l1',

X_prepeared_data_test = selected_vectorizer.transform(X_test) 



predicted = clf.predict(X_prepeared_data_test)
print(np.mean(predicted == y_test))

import eli5

eli5.show_weights(clf, vec=selected_vectorizer, top=1500,
                  target_names=["group1","group2"])

以及一些不适用的示例功能:

+7.323  peter
+6.143  ing
+6.033  enabl
+5.918  anand
+5.893  jose 

Tags: testimportdata分类trainsklearn名字单词