这个仓库包含了一个基于自然语言处理(NLP)的项目,主要探索了如何对关于新闻素材的问题(较为复杂语义二值判断(yes/no)问题)能够进行正确判断。项目的初始想法是通过句子嵌入实现语义相似度计算,但最后演变成训练和评估多个BERT模型以比较它们的性能。
本项目包含两个主要部分:
- 句子嵌入与相似度计算:使用整句编码技术,将文本句子转化为向量表示,并通过向量相似度对比实现语义相似性分析。
- BERT模型训练与评估:训练和测试四种不同的BERT模型(BERT、MiniLM、mpnet、Roberta),并比较它们在特定任务上的性能。
- 文件:
corpus_embedding.py
- 功能:
- 使用整句编码技术将文本句子转化为固定长度的向量表示。
- 通过计算向量之间的相似度,评估句子之间的语义相似性。
- 支持多种预训练模型作为嵌入生成器。
- 文件:
train_and_eval.py
- 功能:
- 支持四种BERT模型:BERT、MiniLM、mpnet、Roberta。
- 提供训练和测试的完整流程,包括数据加载、模型初始化、训练循环和评估指标计算。
- 输出模型性能指标。
- Python 3.7+
- PyTorch 1.7+
- Transformers 4.0+
- NumPy
- Pandas
- Scikit-learn