问答系统实践——判定问题

作者声明:

        SemEval-2015 Task3任务是由我和Index_gz共同合作完成,他写了SemEval-2015 Task3的任务一,我来写SemEval-2015 Task3的任务二。

问题描述

        这个问题来自于SemEval-2015 Task3: Answer Selection in Community Question Answering.

        简单的说就是从一堆问题和答案中找出他们之间的相关性。

        这个Task包含两个Subtasks:

Subtask1.给定一个问题和一些答案,将答案进行为3类:good/potential/bad。

Subtask2.给定一个判定问题(Yes/No/Unsure)和一些答案,判定该问题是Yes/No/Unsure。

         这里主要讨论Subtask2。

详见:http://alt.qcri.org/semeval2015/task3/

实现框架

整体实现框架如下图所示:

简单来说,分为一下几个步骤:

1.预处理:通过一些基本的“词”级别的处理,为特征提取准备规范数据。

2.特征提取:通过对原始数据和预处理后的数据进行分析,并基于一定的假设,确定选取特征,提取特征。

3.模型构建:根据问题描述,选择学习模型,构建训练集,训练模型。

4.实验评估:构建测试集,对比各模型效果。

5.实验结果分析

接下来详细描述整个过程。

预处理

       预处理阶段我们做了词性标注,词干还原和去停词。详情可见Index_gz写的《问答系统实战——答案选择》的预处理。http://blog.csdn.net/Index_gz/article/details/69524747

特征提取

       为了方便理解yes_no_unsure问题的训练关键,我们先来举一个中文的例子:

Question :QID=Q7,QUSERID=U22 ,QTYPE=YES_NO ,QGOLD_YN=Yes:

             惠新西街北口地铁站附近有没有银行?

         Comment1:CID=Q7_C1, CUSERID=U23,CGOLD_YN=Unsure

             你问的是哪个出口呢,不确定呀?

         Comment2:CID=Q7_C2, CUSERID=U24,CGOLD_YN=Yes

              yes,在A口附近有一个交通银行。

         Comment3:CID=Q7_C3, CUSERID=U22,CGOLD_YN=Not Applicable

              请问A口出来过天桥吗?

         Comment4:CID=Q7_C4, CUSERID=U24,CGOLD_YN=Yes

              不用过天桥,地铁站A口出来向右走50米就到银行了。

         Comment5:CID=Q7_C5, CUSERID=U25,CGOLD_YN=Yes

              yesssssssss,那附近还有一个建设银行呢。

         对于判决yes_no_unsure的人或者机器来说,他并不容易通过其他知识来判断,它最终的依然是根据回答者的回答,来判断这个问题到底是yes ,no 还是unsure。

        有了这个认识,我们就要设计特征了。第一,comment起码要和question说的是同一件事,所以,能表示comment和question相关性的特征是我们想要的。第二,确定每一条comment是yes倾向,no倾向,还是unsure倾向。大家结合起来判断question是yes倾向,no倾向,还是unsure倾向。所以我们设计了以下特征:

(一)表示comment和question说的是同一件事的特征,相似性特征:

词相似特征

1.Word cosine similarity: 我们假设问题和好的答案词相似,所以设计回答和问题的词的相似度特征。构建词典,以词典顺序作为向顺序,tfidf 作为权重 ,统计每个回答和问题的空间向量,然后计算对应的问题和回答之间的余弦相似度。

2.NE cosine similarity:关键词通常是名词实体,我们假设问题和好的回答的关键词相近,所以我们构建了问题与回答之间的名词实体余弦。识别名词实体,构建名词实体字典。以字典为顺序,tfidf为权重,构建每个问题和答案的名词实体向量,并计算相应的余弦值。

特殊符号特征:

经过统计发现,comment中有一些强特征符号:'??', ':-', '???'。这些符号出现,comment和question的判定往往是不同的。因此我们设计了这一维特征,出现定义为1,未出现定义为0。

主题相似度特征

1.Topic feature: 我们假设question的主题和comment的主题是相似的,所以这维特征计算question和comment的主题相似度分数。我们借助 gensim工具的 LDA 模型来训练主题模型。我们训练  10 个主题的主题模型,然后拿到每条comment和question的主题向量(每条记录属于每个主题的分数)。拿到每条记录(comment和question)的主题向量之后,计算对应的comment和question的余弦相似度。从而得到comment和question的主题相似度特征。

gensim 的LDA方法详见:https://radimrehurek.com/gensim/models/ldamodel.html

语义相似度特征

1.word2vector feature: 我们假设question和comment所用的词在语义上是相似的,comment与question的词越是相似的越有可能是靠谱的comment。我们借助 gensim具来训练 word2vec 特征。这样我们就得到每个词的词向量。然后借助以下公式拿到对应comment与question的词向相似度得分。


其中Wi是问题的第1个词,wj'是回答的第j个词。n是问题的词的个数,m是回答的词的个数。

gensim 的word2vec方法详见:https://radimrehurek.com/gensim/models/word2vec.html

(二)判断每条comment的yes_no_unsure倾向的特征:

特殊词特征:

       经过统计yes no unsure的comment的用词,我们发现一些强特征词,为此我们设计了19维特征词特征:in_yes,in_no,in_unsure,nop_num,nooo_num,yes_num,yea_num,yesss_num,unsure_num,sure_num,have_prob_num,have_discus_num,have_harm_num,have_quest_num,have_argu_num,have_asum_num,have_cheat_num,have_joke_num,have_clear_num。

语义倾向特征:

        判断comment的yes,no,unsure的倾向需要特殊词词频的特征,也需要语义特征。对全语料训练word2vec。使用以下公式拿到每条comment与yes ,no ,unsure的相似度,共三维:

        其中label可取(yes,no,unsure),WV(wi)表示comment的第i个词的词向量,当label取yes时,WV(label)表示yes的词向量。

模型训练

        我们采用了一下三种模型,均采用sklearn工具包的默认方法,未设置任何超参数

1.SVM

2.朴素贝叶斯

3.决策树

效果评估

(以下实验均未使用devel集)

第一次尝试实验结果:

第二次尝试实验结果:

第三次尝试(comment分类器效果,train数据集中,600做训练集,195做测试集)

各个模型错分各类样本个数:

svm:

nb:

DT:

结果分析:

        第一次尝试训练时,我们使用了yes_no问题的全部comment,共1528条,其中有733条是Not Applicable。训练集噪音过大导致训练效果非常差。

        第二次尝试训练时,首先去掉了Not Applicable的数据,然后我们面临了第二个问题:我们使用question的CGOLD_YN当作label,但是每个comment都有一个向量,所以我们决定对一个question的所有comment的向量取平均,合成一个向量去学习。决策树的效果相对比较好F1值达到54.575%,在官方的分数中可以达到第三名的效果,但是SVM和NB的效果依然步乐观,我们又进行了第三次尝试。

        第三次尝试训练,我们使用comment 的CGOLD_YN当作label。训练使comment的向量预测label与真实label缩短差距,得到comment的yes_no_unsure模型。用这个模型取测试test集合的comment。然后使用comment加权投票决定每个question的yes_no_unsure值。

        但是,当我们把comment分类器训练出来后发现,效果很一般,经过近一步分析发现,SVM对于Yes的错分样本个数居然为0,再分析得出,SVM把所有样本都分到Yes类中去了。究其原因,我们猜想是我们提的特征中反映comment的yes类的特征太强了,而另外两类的特征太弱,加上训练集分布上yes数量最多,再加上没有对每个问题的每类特征进行加和平均操作,放大了强的特征的影响而缩小的弱的特征的影响,最终使的SVM分类失败。

        总而言之,拿到问题,需要深入了解问题的根本和数据分布,从而挖掘出什么特征能影响分类效果。

参考文献

[1] Denkowski M, Lavie A. Meteor 1.3: automatic metric for reliable optimization and evaluation of machine translation systems[C]// The Workshop on Statistical Machine Translation. Association for Computational Linguistics, 2011:85-91.

[2] Quan H T, Tran V, Tu V, et al. JAIST: Combining multiple features for Answer Selection in Community Question Answering[C] International Workshop on Semantic Evaluation. 2015:215-219.

[3] Mikolov T, Chen K, Corrado G, et al. Efficient Estimation of Word Representations in Vector Space[J]. Computer Science, 2013.

[4]Goldberg Y, Levy O. word2vec Explained: deriving Mikolov et al.'s negative-sampling word-embedding method[J]. Eprint Arxiv, 2014.

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 215,634评论 6 497
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,951评论 3 391
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 161,427评论 0 351
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,770评论 1 290
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,835评论 6 388
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,799评论 1 294
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,768评论 3 416
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,544评论 0 271
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,979评论 1 308
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,271评论 2 331
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,427评论 1 345
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,121评论 5 340
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,756评论 3 324
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,375评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,579评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,410评论 2 368
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,315评论 2 352

推荐阅读更多精彩内容