一、前言
需求很简单,就是有两个句子(大概一二百字左右不会太长),一个是正确答案一个是考生作答,我需要知道这个按照这个标准答案考生的作答应该给几分。
关键点是:NLP的方向、语义相似度的任务,中文的。
看我博客的应该都知道我是做CV方向的,最近有了这么个需求让我做,这明明是NLP方向的东西啊 (╯‵□′)╯︵┻━┻
首先花了大概4~5天的时间学习了一下NLP的基础知识:词向量,词袋模型,LSTM之类的东西。ε≡٩(๑>₃<)۶ 一心向学
根据CV的经验这件事一定是用深度学习做的,因为身边没有懂NLP的朋友,就只能硬着头皮上了,先去机器之心pro搜一下排行榜(类似于paperwithcode,奈何实在是打不开)
找到了一个mt-dnn花了两天时间在这上面,坑超级多。熬夜加班(/"≡ _ ≡)/~┴┴
然后就查资料,哟BERT很出名啊,然后就下了个BERT和它的权重,跑了GLUE数据集的9个任务,为了知道每个任务都是什么类型的,最简单的办法就是打开数据集看看~
当我看到STS-B的时候惊了,这不就是我想要的嘛。两个句子的相似度并不是简单的0或者1,只有相似或者不相似。STS-B是把两句话在【0-5】之间打了个分,比如0.05可以理解为基本没啥关系驴唇不对马嘴,精神!(((o(*゚▽゚*)o)))♡
尝试用BERT跑通STS-B的时候我发现,官方代码只能计算分类任务,就是【0,1,2,3】这类的离散变量,没有办法做连续值标签这种回归任务,关于STS-B根本就没写(╯‵□′)╯︵┻━┻
没写我就自己写呗&#