我在DataWhale学习NLP入门

 参加了DataWhale的夏令营学习活动,本文是根据讯飞平台数据,基于论文摘要的文本分类与关键词抽取挑战赛:2023 iFLYTEK A.I.开发者大赛-讯飞开放平台

本次夏令营使用三种方法对文本标签进行预测:

    1.文本特征提取+机器学习方法

    2.深度学习BERT模型 

    3.使用大模型方法Topline

本文是用第一种方法即文本特征提取+机器学习方法,使用baseline跑通数据集。适合新手上手。

import pandas as pd
from sklearn.feature_extraction.text import CountVectorizer
from sklearn.linear_model import LogisticRegression

# 过滤警告信息
from warnings import simplefilter
from sklearn.exceptions import ConvergenceWarning
simplefilter("ignore", category=ConvergenceWarning)


#读取数据集
train = pd.read_csv('F:/nlp学习/初学/train.csv')
train

 

# 监测是否有缺失值
train[train['title'].isna()]  #没有有缺失值的行
# 填补缺失值
train['title'] = train['title'].fillna('')
train['abstract'] = train['abstract'].fillna('')

#读取测试集
test = pd.read_csv('F:/nlp学习/初学/testB.csv')
test

 可以测试集是不含有label变量,即标签的。也没有Keywords变量,即关键词。

# 填补缺失值
test['title'] = test['title'].fillna('')
test['abstract'] = test['abstract'].fillna('')

# 提取文本特征,生成训练集与测试集
# 拼接字符串
train['text'] = train['title'].fillna('')+' '+train['author'].fillna('')+' '+train['abstract'].fillna('')+' '+train['Keywords'].fillna('')
test['text'] = test['title'].fillna('')+' '+test['author'].fillna('')+' '+test['abstract'].fillna('')  
# test的‘text’没有拼接keywords

# 向量化
vector = CountVectorizer().fit(train['text'])
train_vector = vector.transform(train['text'])
test_vector = vector.transform(test['text'])

#引入模型--logistics回归
model = LogisticRegression()

#开始训练
model.fit(train_vector, train['label'])

#利用模型对测试集【预测】
test['label'] = model.predict(test_vector)

# 保存最终提交的文件
test['Keywords'] = test['title'].fillna('') #?
test[['uuid','Keywords','label']].to_csv('submit_task1.csv', index=None)

 本文仅使用了词袋法结合Logistic回归。使用F1-score评判模型优劣,最终测试集的分数表现为0.67116。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值