『行远见大』短文本相似度计算 baseline 78.416%
项目简介
文本相似度作业 baseline,各位同学可在此基础上调优。
向开源致敬!
大家好,我是行远见大。欢迎你与我一同建设飞桨开源社区,知识分享是一种美德,让我们向开源致敬!
2021年7日打卡营大作业
大家好,这里是2021年7日打卡营大作业,本次作业内容为实现文本相似度任务,通过课上所学知识,实现文本相似度任务的代码。目前已经给出了基于SimilarityNet的相似度任务的实现代码,同学们可以基于本代码进行修改或者重写,实现更高的准确率,其中数据集已经上传,如果有误操,可以联系qq群助教,获得数据集。
【作业内容】
按照本项目给出的模块完成代码并跑通。
【作业提交】
我们会给出一个数据集压缩包,包含baidu_train.tsv
,baidu_dev.tsv
,vocab.txt
和test_forstu.tsv
。其中baidu_train.tsv
,baidu_dev.tsv
,vocab.txt
用来训练模型。最后大家根据test_forstu.tsv
测试数据输出预测结果。命名为result.tsv
的文件并提交。
note:遇到问题请及时向qq群的助教反馈。
【评分标准】
优秀学员:
条件:
- 完成每天的课后作业;
- 大作业代码运行成功且有结果;
- 准确率排名前26名。
奖品设置:
等级 | 奖品 | 名额 |
---|
一等奖 | 小度在家 | 1 |
二等奖 | 耳机 | 5 |
三等奖 | 书 | 10 |
四等奖 | 健身包 | 10 |
鼓励奖 | 招财熊 | 170 |
1. 任务介绍
1.1 任务内容
文本语义匹配是自然语言处理中一个重要的基础问题,NLP领域的很多任务都可以抽象为文本匹配任务。例如,信息检索可以归结为查询项和文档的匹配,问答系统可以归结为问题和候选答案的匹配,对话系统可以归结为对话和回复的匹配。语义匹配在搜索优化、推荐系统、快速检索排序、智能客服上都有广泛的应用。如何提升文本匹配的准确度,是自然语言处理领域的一个重要挑战。
- 信息检索:在信息检索领域的很多应用中,都需要根据原文本来检索与其相似的其他文本,使用场景非常普遍。
- 新闻推荐:通过用户刚刚浏览过的新闻标题,自动检索出其他的相似新闻,个性化地为用户做推荐,从而增强用户粘性,提升产品体验。
- 智能客服:用户输入一个问题后,自动为用户检索出相似的问题和答案,节约人工客服的成本,提高效率。
1.2 什么是文本匹配?
让我们来看一个简单的例子,比较各候选句子哪句和原句语义更相近
原句:“车头如何放置车牌”
- 比较句1:“前牌照怎么装”
- 比较句2:“如何办理北京车牌”
- 比较句3:“后牌照怎么装”
(1)比较句1与原句,虽然句式和语序等存在较大差异,但是所表述的含义几乎相同
(2)比较句2与原句,虽然存在“如何” 、“车牌”等共现词,但是所表述的含义完全不同
(3)比较句3与原句,二者讨论的都是如何放置车牌的问题,只不过一个是前牌照,另一个是后牌照。二者间存在一定的语义相关性。
所以语义相关性,句1大于句3,句3大于句2.这就是语义匹配。
1.3 短文本语义匹配网络
短文本语义匹配(SimilarityNet, SimNet)是一个计算短文本相似度的框架,可以根据用户输入的两个文本,计算出相似度得分。主要包括BOW、CNN、RNN、MMDNN等核心网络结构形式,提供语义相似度计算训练和预测框架,适用于信息检索、新闻推荐、智能客服等多个应用场景,帮助企业解决语义匹配问题。
SimNet模型结构如图所示,包括输入层、表示层以及匹配层。
examples = preprocess_prediction_data(data1, tokenizer)
results = predict(model,examples,label_map=label_map,batch_size=batch_size,pad_token_id=vocab.token_to_idx.get('[PAD]', 0))for idx, text in enumerate(data1):print('Data: {} \t Label: {}'.format(text, results[idx]))
data2 = []
for i in range(len(data1)):data2.extend(results[i])
data['label'] = data2
print(data.shape)
2.8 存储数据
data.to_csv('result.csv',sep='\t')
data_watch = pd.read_csv('result.csv', sep='\t', header=0)
v', sep='\t', header=0)
data_watch
3. 项目总结
本项目是《零基础实践深度学习七日打卡营》比赛基线,在经过多次实践,纯调参的极限在78%,要想达到更高的准确度必须上预训练模型。ENRIE is all you need!
作者简介
- 作者:行远见大
- 经历:一枚学 AI 刚满三个月的零基础编程小白
- 我的口号:向开源致敬,一同建设飞桨开源社区
- 常住地址:常年混迹在 AI Studio 平台和各类 PaddlePaddle 群
- QQ:1206313185 添加时请备注添加原因和 AI Studio 的 ID
- 感谢小伙伴们一键三连(喜欢♡、fork〧、关注+)支持,点 ♡ 数越多,更新越快~