到目前为止,复旦的不倒翁问答系统只能回答事实类问题,不具备闲聊功能,为了真正做到“不倒问答”,我使用 fasttext
做了一个问句类型分类器,用来判断是事实类问题还是闲聊问题,效果好的出奇。
数据集
闲聊部分的数据集使用的是青云数据集,这个数据集很脏(里面有很多不文明的话),大概长这样:
|
|
前面是问题,后面是答案,这里我们只需要问题。
事实类问题是从学长们的遗留代码中找到的,也不知道是哪来的(咱也不敢问),大概长这样:
|
|
好了,接下来要把数据处理成 fasttext
想要的样子,这里我用0表示闲聊,1表示事实类问题:
|
|
代码如下:
|
|
分类器
这里使用的是 fasttext
进行文本分类,代码如下:
|
|
训练的速度出奇的快,基本上都在半分钟以内,而且准确度和召回率都在98%以上。
唯一的缺点是保存下来的模型很大。