基于论文摘要的文本分类与关键词抽取(二)
基于 Datawhale × 科大讯飞 暑期夏令营项目制作
环境:Windows 11 ×64,Anaconda,python=3.10→百度AI Studio
Class 2 Baseline实践与Bert结构提高
注:1.在程序运行过程中可能会遇到大量警告,可使用以下代码进行忽略
import warnings
warnings.filterwarnings("ignore")
2.Bert程序可能需求配置较高,推荐采用云服务器
一、对Bert的初步认识
一种由Google提出的新的自编码语言模型,一般用于学习输入文本的表示向量,进而利用该向量进行微调用于各项下游任务,包括:文本分类、词性标注等。训练方法多采用:预测下一个句子的关系。

二、 任务一:文献领域分类
初版Baseline选择使用BOW将文本转换为向量表示,选择逻辑回归模型来完成训练和评估。因为在直接使用TF-IDF(词频-逆文档频率)或BOW(词袋模型)方法的效果已经足够好。
如果使用预训练的BERT模型解决文本分类问题,需要完成以下步骤:
1. 导入前置依赖:包括pandas,torch,transformers等
2. 设置全局配置:包括文本最大长度、训练次数、学习率、步长、文件路径等
3. 进行数据读取与数据预处理
4. 构建训练所需的dataloader与dataset
5. 构造dataloader
6. 定义预测模型
7. 定义出损失函数和优化器
8. 定义验证方法
9. 模型训练
10. 输出结果
三、 任务二:关键词提取
初版Baseline选择使用nltk的分词器,然后对测试集提取关键词。选择使用BERT创建自己的关键词提取模型,我们需要完成以下步骤:
1. 导入前置依赖:包括pandas,sklearn,BOW词袋模型和Bert模型等
2. 读取数据集并处理:其中停用词stop.txt社区已给出
Bert预训练模型方面,使用了distiluse-base-multilingual-cased,因为它在相似性任务中表现出了很好的性能。但由于transformer模型有token长度限制,所以在输入大型文档时,我们可以考虑将文档分割成几个小的段落,并对其产生的向量进行平均池化(mean pooling ,要取平均值)。
3. 提取关键词:采用TF-IDF算法获取候选关键词
4. 输出结果
推荐所有程序都分段在jupyter notebook中运行,整合成一个大程序可能需要大面积改错。