NLP-新闻文本分类数据分析
发布时间
阅读量:
阅读量
NLP-新闻文本分类数据分析
读取数据并观察分布
train = pd.read_csv("train_set.csv", sep="\t")
train.head(5)

查看数据集信息:

从上述可以看出, 该数据集仅包含两个字段, 共有20万个样本点, 并且在处理过程中未发现任何缺失值.

标签的分布呈现长尾特征,在进行预测时可能会导致结果集中在少数类别上。进而提出解决样本不平衡的方法以提升模型性能。
特征构建
目前主要运用的是经典的机器学习算法,在计算过程中采用了tf-idf与词频分析这两种技术手段,并将所得数据作为模型训练特征。
from sklearn.feature_extraction.text import CountVectorizer
ngram_vectorizer = CountVectorizer(min_df=0.05,max_df=0.8,decode_error='replace')
from sklearn.feature_extraction.text import TfidfVectorizer
tfidf = TfidfVectorizer()
train = tfidf.fit_transform(train['text'])
test = tfidf.transform(test['text'])
模型选择
当前应用的是一种lightgbm模型。主要原因包括该算法具有高效的训练速度以及可能具备的其他优势。最初采用了该算法作为基础模型。
# 模型训练
from lightgbm import LGBMClassifier
gbm=LGBMClassifier(eval_metric='auc')
gbm.fit(train_x,train_y,eval_set=[(test_x,test_y)],verbose=True)
pre=gbm.predict(test_x)
f1_score(test_y,pre, average='macro')
线上分数
线上测试结果显示约92.5%的成功率,在整体效果上未达预期目标。未来工作重点将放在特征工程方面,并计划进一步挖掘潜在特征信息,并进行多维度的特征提取优化;针对模型架构的选择策略,则采用了深度学习框架进行深入研究。
全部评论 (0)
还没有任何评论哟~
