智能问答系统实践——答案选择

问题描述

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

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

这个Task包含两个Subtasks:

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

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

这里主要讨论subtask1。

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

实现框架

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


整体框架图

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

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

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

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

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

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


智能问答系统实践——答案选择_第1张图片
实现框架图

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

预处理

个人认为,特征选择在实现上发生在预处理之后,但实则发生在预处理前后。

根据上述问题描述,和自己的先验知识,先对该问题做了一定的假设:

假设问题和答案是有相关性的。

假设问题和好的答案相关性更大,和不好的答案相关性更小。

假设问题和各种类别(good/potential/bad)的答案在“词”的特征上,是有一定规律的。

假设问题和各种类别(good/potential/bad)的答案在语义上,是有一定规律的。

特征选择

词相似特征

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

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

特殊词特征

1.Special symbol feature:我们将训练数据各个类别的答案所出现的符号经过统计分析发现,有些特殊符号比如“>..<,!:(,:(,:-(”只出现在了bad类别的答案中,而“>,<”只出现在good类别的答案中,因此我们将此作为一维特征。定义:3表示出现good类符号;2表示不出现good和bad类符号;1表示出现bad类符号。

2.Bad words feature:我们假设某些词倾向出现在坏的答案里或者好的答案里,根据经验,这样的特征对识别坏的词有帮助。所以我们统计仅出现在bad的回答的词。问题中若是出现bad的词,则这维特征记为1,否则记为0.

主题特征

1.Topic feature:我们假设问题的主题和回答的主题是相似的,所以这维特征计算问题和答案的主题相似度分数。我们借助gensim工具的LDA模型来训练主题模型。

我们训练10个主题的主题模型,然后拿到每条答案或者问题的主题向量(每条记录属于每个主题的分数)。拿到每条记录的主题向量之后,计算对应的问题和答案的余弦相似度。从而得到问题与答案的主题相似度特征。

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

语义特征

1.Word alignment feature:这一维特征是通过Meteor工具来计算得到的,Meteor工具是用来评估两句话在翻译层面上的相似度。我们假定问题和对应的好的答案之间应该具有更高的相似度。因此我们将Meteor工具计算出来的问题与答案之间的score做为一维特征。

Meteor详见:http://www.cs.cmu.edu/~alavie/METEOR/

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

智能问答系统实践——答案选择_第2张图片


其中wi是问题的第1个词,wj是回答的第j个词。n是问题的词的个数,m是回答的词的个数。gensim的word2vec方法详见:https://radimrehurek.com/gensim/models/word2vec.html

非文本特征

1.QA author feature:通过分析训练数据发现,如果答案和问题来自同一个用户,在很多情况下不是一个好的答案,因此我们将此作为一维特征。定义:0表示答案和问题来自不同用户;1表示答案和问题来自同一用户。

2.User posts feature:这个特征和知乎的大V原理有点类似,我们认为,一个用户回答的问题越多,他(她)的答案越有可能是一个好的答案。因此我们将用户提问和回答问题的数量作为一维特征。

模型训练

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

1.SVM

2.朴素贝叶斯

3.决策树

效果评估

训练集:train,测试集:dev


智能问答系统实践——答案选择_第3张图片

训练集:train,测试集:test


智能问答系统实践——答案选择_第4张图片

训练集:train+dev,测试集:test


智能问答系统实践——答案选择_第5张图片


效果一般,正在进行后续调参改进,敬请期待文章更新。

数据分布

TRAINING:

QUESTIONS:

TOTAL: 2,600

GENERAL: 2,376 (91.38%)

YES_NO: 224 (8.62%)

COMMENTS:

TOTAL: 16,541

MIN: 1

MAX: 143

AVG: 6.36

CGOLD VALUES:

Good: 8,069 (48.78%)

Bad: 2,981 (18.02%)

Potential: 1,659 (10.03%)

Dialogue: 3,755 (22.70%)

Not English: 74 ( 0.45%)

Other: 3 ( 0.02%)

CGOLD_YN COMMENT VALUES (excluding"Not Applicable"):

yes: 346 (43.52%)

no: 236 (29.69%)

unsure: 213 (26.79%)

QGOLD_YN VALUES (excluding "NotApplicable"):

yes: 87 (38.84%)

no: 47 (20.98%)

unsure: 90 (40.18%)

DEVELOPMENT:

QUESTIONS:

TOTAL: 300

GENERAL: 266 (88.67%)

YES_NO:  34 (11.33%)

COMMENTS:

TOTAL: 1645

MIN: 1

MAX: 32

AVG: 5.48

CGOLD VALUES:

Good: 875 (53.19%)

Bad: 269 (16.35%)

Potential: 187 (11.37%)

Dialogue: 312 (18.97%)

Not English: 2 ( 0.12%)

Other: 0 ( 0.00%)

CGOLD_YN COMMENT VALUES (excluding"Not Applicable"):

yes: 62 (53.91%)

no: 32 (27.83%)

unsure: 21 (18.26%)

QGOLD_YN VALUES (excluding "NotApplicable"):

yes: 16 (47.06%)

no: 8 (23.53%)

unsure: 10 (29.41%)

test

QUESTIONS:

TOTAL: 329

GENERAL: 300(91.19%)

YES_NO:29(8.81%)

COMMENTS:

TOTAL: 1976

MIN: 1

MAX: 66

AVG: 6.01

CGOLDVALUES:

TOTAL: 1976

Good: 997(50.46%)

Bad: 362(18.32%)

Potential: 167(8.45%)

Not English: 15(0.76%)

Other: 0(0.00%)

QGOLD_YNVALUES:

yes: 18(62.07%)

no: 4(13.79%)

unsure: 7(24.14%)

参考文献

[1]毛先领,李晓明.问答系统研究综述[J].计算机科学与探索, 2012, 6(3):193-207.

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

[3]Quan H T, Tran V, Tu V, et al. JAIST: Combining multiple features for AnswerSelection in Community Question Answering[C] International Workshop on SemanticEvaluation. 2015:215-219.

[4]Matthew Hoffman, David M Blei, Francis Bach.Advancesin Neural Information Processing Systems.2010/1/2:856-864.

[5]MikolovT, Chen K, Corrado G, et al. Efficient Estimation of Word Representations inVector Space[J]. Computer Science, 2013.

[6]Goldberg Y, Levy O. word2vec Explained: deriving Mikolov et al.'s

negative-sampling word-embedding method[J]. Eprint Arxiv, 2014.

你可能感兴趣的:(智能问答系统实践——答案选择)