在使用机器学习做简单的文本分类时,突然有这个疑问。
使用词袋模型也就是CountVectorizer进行词表示(也就是特征提取啦),我只提取了一部分训练数据的特征去训练,然后测试数据单独进行词表示后进行预测,发现这准确率很低很低啊如代码所示
import pandas as pd
from sklearn.feature_extraction.text import CountVectorizer,TfidfVectorizer
from sklearn.metrics import f1_score
from sklearn.linear_model import RidgeClassifier
from sklearn.model_selection import train_test_split
df= pd.read_csv('data/train_set.csv',sep='\t',nrows=15000)
x = df['text']
y = df['label'].values
xtrain, xtest, ytrain, ytest = train_test_split(x,y,test_size=0.3, random_state=420)
cv = CountVectorizer(max_features=3000)
cv_fit = cv.fit_transform(xtrain)#可以转换为稀疏矩阵的元祖
clf = RidgeClassifier()
clf.fit(cv

本文探讨了在机器学习文本分类中,特征提取是否应包括测试数据的问题。通过对比只对训练数据进行特征提取和同时提取训练与测试数据的情况,发现后者能显著提高模型的准确率。文章介绍了one-hot编码、词袋模型、N-gram和TF-IDF等文本表示方法,并分析了它们在文本分类中的效果。TF-IDF虽然提升准确率但速度较慢,可能需要GPU加速。
最低0.47元/天 解锁文章
1万+

被折叠的 条评论
为什么被折叠?



