智能問答系統(tǒng)實踐——答案選擇

問題描述

這個問題來自于SemEval-2015Task3: Answer Selection in Community Question Answering.

簡單的說就是從一堆問題和答案中找出他們之間的相關(guān)性。

這個Task包含兩個Subtasks:

1.給定一個問題和一些答案,將答案進行為3類:good/potential/bad。

2.給定一個判定問題(Yes/No/Unsure)和一些答案,判定該問題是Yes/No/Unsure。

這里主要討論subtask1。

詳見:http://alt.qcri.org/semeval2015/task3/

實現(xiàn)框架

整體實現(xiàn)框架如下圖所示:


整體框架圖

簡單來說,分為一下幾個步驟:

1.預(yù)處理:通過一些基本的“詞”級別的處理,為特征提取準備規(guī)范數(shù)據(jù)。

2.特征提?。和ㄟ^對原始數(shù)據(jù)和預(yù)處理后的數(shù)據(jù)進行分析,并基于一定的假設(shè),確定選取特征,提取特征。

3.模型構(gòu)建:根據(jù)問題描述,選擇學(xué)習(xí)模型,構(gòu)建訓(xùn)練集,訓(xùn)練模型。

4.實驗評估:構(gòu)建測試集,對比各模型效果。

具體實現(xiàn)框架如下圖所示:


實現(xiàn)框架圖

接下來詳細描述整個過程。

預(yù)處理

個人認為,特征選擇在實現(xiàn)上發(fā)生在預(yù)處理之后,但實則發(fā)生在預(yù)處理前后。

根據(jù)上述問題描述,和自己的先驗知識,先對該問題做了一定的假設(shè):

假設(shè)問題和答案是有相關(guān)性的。

假設(shè)問題和好的答案相關(guān)性更大,和不好的答案相關(guān)性更小。

假設(shè)問題和各種類別(good/potential/bad)的答案在“詞”的特征上,是有一定規(guī)律的。

假設(shè)問題和各種類別(good/potential/bad)的答案在語義上,是有一定規(guī)律的。

特征選擇

詞相似特征

1.Word cosine similarity:我們假設(shè)問題和好的答案詞相似,所以設(shè)計回答和問題的詞的相似度特征。構(gòu)建詞典,以詞典順序作為向順序,tfidf作為權(quán)重,統(tǒng)計每個回答和問題的空間向量,然后計算對應(yīng)的問題和回答之間的余弦相似度。

2.NE cosine similarity:關(guān)鍵詞通常是名詞實體,我們假設(shè)問題和好的回答的關(guān)鍵詞相近,所以我們構(gòu)建了問題與回答之間的名詞實體余弦。識別名詞實體,構(gòu)建名詞實體字典。以字典為順序,tfidf為權(quán)重,構(gòu)建每個問題和答案的名詞實體向量,并計算相應(yīng)的余弦值。

特殊詞特征

1.Special symbol feature:我們將訓(xùn)練數(shù)據(jù)各個類別的答案所出現(xiàn)的符號經(jīng)過統(tǒng)計分析發(fā)現(xiàn),有些特殊符號比如“>..<,!:(,:(,:-(”只出現(xiàn)在了bad類別的答案中,而“>,<”只出現(xiàn)在good類別的答案中,因此我們將此作為一維特征。定義:3表示出現(xiàn)good類符號;2表示不出現(xiàn)good和bad類符號;1表示出現(xiàn)bad類符號。

2.Bad words feature:我們假設(shè)某些詞傾向出現(xiàn)在壞的答案里或者好的答案里,根據(jù)經(jīng)驗,這樣的特征對識別壞的詞有幫助。所以我們統(tǒng)計僅出現(xiàn)在bad的回答的詞。問題中若是出現(xiàn)bad的詞,則這維特征記為1,否則記為0.

主題特征

1.Topic feature:我們假設(shè)問題的主題和回答的主題是相似的,所以這維特征計算問題和答案的主題相似度分數(shù)。我們借助gensim工具的LDA模型來訓(xùn)練主題模型。

我們訓(xùn)練10個主題的主題模型,然后拿到每條答案或者問題的主題向量(每條記錄屬于每個主題的分數(shù))。拿到每條記錄的主題向量之后,計算對應(yīng)的問題和答案的余弦相似度。從而得到問題與答案的主題相似度特征。

gensim的LDA方法詳見:https://radimrehurek.com/gensim/models/ldamodel.html

語義特征

1.Word alignment feature:這一維特征是通過Meteor工具來計算得到的,Meteor工具是用來評估兩句話在翻譯層面上的相似度。我們假定問題和對應(yīng)的好的答案之間應(yīng)該具有更高的相似度。因此我們將Meteor工具計算出來的問題與答案之間的score做為一維特征。

Meteor詳見:http://www.cs.cmu.edu/~alavie/METEOR/

2.word2vector?feature:我們假設(shè)問題和回答所用的詞在語義上是相似的,與問題的詞越是相似的越有可能是好的回答。我們借助gensim具來訓(xùn)練word2vec特征。這樣我們就得到每個詞的詞向量。然后借助以下公式拿到對應(yīng)問題與答案的詞向相似度得分。


其中wi是問題的第1個詞,wj是回答的第j個詞。n是問題的詞的個數(shù),m是回答的詞的個數(shù)。gensim的word2vec方法詳見:https://radimrehurek.com/gensim/models/word2vec.html

非文本特征

1.QA author feature:通過分析訓(xùn)練數(shù)據(jù)發(fā)現(xiàn),如果答案和問題來自同一個用戶,在很多情況下不是一個好的答案,因此我們將此作為一維特征。定義:0表示答案和問題來自不同用戶;1表示答案和問題來自同一用戶。

2.User posts feature:這個特征和知乎的大V原理有點類似,我們認為,一個用戶回答的問題越多,他(她)的答案越有可能是一個好的答案。因此我們將用戶提問和回答問題的數(shù)量作為一維特征。

模型訓(xùn)練

我們采用了一下三種模型,均采用sklearn工具包的默認方法,未設(shè)置任何超參數(shù)。

1.SVM

2.樸素貝葉斯

3.決策樹

效果評估

訓(xùn)練集:train,測試集:dev


訓(xùn)練集:train,測試集:test


訓(xùn)練集:train+dev,測試集:test



效果一般,正在進行后續(xù)調(diào)參改進,敬請期待文章更新。

數(shù)據(jù)分布

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]毛先領(lǐng),李曉明.問答系統(tǒng)研究綜述[J].計算機科學(xué)與探索, 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.

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 作者聲明: SemEval-2015 Task3任務(wù)是由我和Index_gz共同合作完成,他寫了SemEval-2...
    chrisitina閱讀 1,386評論 1 3
  • 如約而至!今天看啦吳小波的文章跟視頻,聊到40、60、80年代人的創(chuàng)業(yè):40后艱苦、60后知進退、80后感興趣。文...
    馬瑞紅閱讀 1,975評論 1 0
  • 斷斷續(xù)續(xù)地讀完杜拉斯的《情人》,在讀的過程中,始終不覺得為什么這本書,或者說這個故事,足以成為傳說中的經(jīng)典。但是,...
    花開半夏R閱讀 478評論 0 0
  • 在流逝的歲月中摸索,我總是會疏忽些什么東西,亦或是一些些人。我想說,一直以來,我都深深的感受到你們的存在,你們的真...
    暖桐華閱讀 263評論 0 0
  • 我匍匐與灰色的塵土中,我的頭上是鎖鏈,我的脖子戴著鐐銬。我長發(fā)及地,指甲青長,我眼紅如血,嘴唇烏黑。我的口水滴滴答...
    李離閱讀 414評論 0 0

友情鏈接更多精彩內(nèi)容