欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

一種基于多級特征的問題和答案句子相似度計算方法與流程

文檔序號:11627739閱讀:333來源:國知局
一種基于多級特征的問題和答案句子相似度計算方法與流程

本發(fā)明涉及自動問答技術領域,具體涉及一種計算問題句子和答案句子相似度的方法。



背景技術:

自動問答系統(tǒng)是一種輸入自然語言問句后能夠直接返回精確答案的系統(tǒng)。根據(jù)自動問答系統(tǒng)背后的數(shù)據(jù)源的類型可以將其分為兩類,分別是基于知識圖譜的自動問答系統(tǒng)和基于非結構化文檔的自動問答系統(tǒng)?;诜墙Y構化文檔的自動問答系統(tǒng)的數(shù)據(jù)源是大量非結構化的文本文檔,其檢索答案的過程主要包括以下幾個步驟:

(1)根據(jù)關鍵詞匹配算法,檢索出與問題相關的段落。

(2)將第一步檢索出的段落切分成句子,形成答案句子候選集。

(3)計算問題和候選答案句子相似度并排序。

(4)選擇最相似度最高的答案句子進行答案抽取,返回給用戶。

其中的第三步,計算問題和答案句子相似度是非常重要的一步。傳統(tǒng)的計算句子相似度的算法主要包括三種:

(1)基于詞的算法。該方法不對語句進行語法結構分析,只利用句子的表層信息,即組成句子的詞的詞頻、詞性等信息。該方法不能考慮句子的整體結構和語義相似性。

(2)基于句法的算法。該方法對語句進行句法分析,找出依存關系,并在依存關系分析結果的基礎上進行相似度計算。該方法能衡量句子的句法結構相似性,但是不能衡量句子的語義相似性。

(3)基于深度神經(jīng)網(wǎng)絡的算法。該方法將語句中每個詞的詞向量輸入到卷積神經(jīng)網(wǎng)絡或循環(huán)神經(jīng)網(wǎng)絡中,輸出為一個句子的向量表達。該方法能夠衡量句子的語義相似性,但是詞和句法的相似性并不能得到充分表達。

傳統(tǒng)的計算句子相似度的方法各有優(yōu)缺點,都不能全面的衡量兩個句子之間的相似性。



技術實現(xiàn)要素:

為了克服傳統(tǒng)的計算句子相似度算法的不足,本發(fā)明提供了一種基于多級特征的問題和答案句子相似度計算算法,該算法能夠全面衡量兩個句子之間的相似性。

該算法公式定義如下:

其中,q是給定的一個問題句子,s是給定的一個候選答案句子。定義衡量兩個句子相似度的函數(shù)為r(q,s),r(q,s)是一個線性函數(shù),是多個相似度得分函數(shù)的集成。這里的hk(s,q)代表第k個相關性函數(shù)。

本發(fā)明設計了五種特征來衡量兩個句子之間的相關性,這些特征包含了不同的級別,分別是單詞特征、短語特征、句子語義特征、句子結構特征、答案類型特征。

1.單詞特征

單詞級別的特征是從單詞出發(fā),計算兩個句子在單詞方面相似度。本發(fā)明使用了四種單詞級別的特征,分別如下:

(1)共同的單詞數(shù)特征,每個單詞共現(xiàn)次數(shù)都要乘以idf權重。定義為hwm(q,s)。

(2)單詞翻譯特征,直接使用成熟的翻譯模型giza++,以及問題和相關問題的語料庫來得到問題句子和答案句子之間的翻譯概率,以此作為兩個句子之間的相關性得分。定義為hwt(q,s)。

(3)詞向量平均特征,將每個句子中的單詞對應的詞向量相加求平均作為該句子的句子向量,然后求答案句子向量和問題句子向量之間的余弦距離。定義為hwv(q,s)。

(4)詞向量轉(zhuǎn)移距離(wmd)特征,采用wmd計算相似度的方法(該方法可參考:kusnermj,suny,kolkinni,etal.fromwordembeddingstodocumentdistances),將兩個句子去除停止詞,然后計算詞向量轉(zhuǎn)移的最小距離作為兩個句子之間的相關性。定義為hwmd(q,s)。

2.短語特征

假設抽取的短語列表為pp={<si,ti,p(ti|si),p(si,ti)>},其中si是答案句子中的一個短語,ti是問題句子中的一個短語,p(ti|si)和p(si,ti)分別代表從si翻譯成ti和從ti翻譯成si的概率。

接著,定義基于短語的相似性得分函數(shù)如下:

其中,q,s分別是問題和答案句子,定義了連續(xù)的s中從sj到的連續(xù)的單詞或者短語序列。n定義的是最大的n元語法(n-gram)值,有如下的定義:

(1)如果

(2)否則如果有并且s∈q則

(3)否則,

簡單可以描述為,當答案句子中的短語直接出現(xiàn)在問題句子中時,該短語的得分就是1,如果該短語與問題句子中的某些短語出現(xiàn)在短語表中,意味著兩個短語是同義的短語或者相關短語時,該短語得分就是短語表中短語互相翻譯概率的乘積,是一個0,1之間的值。如果該短語不滿足以上兩種情況,那么該短語的得分就是0。計算答案句子中一到n元語法包含的所有短語與問題句子的相關性得分,最后對n求平均。

3.句子語義特征

該特征使用最新的基于深度學習的計算兩個句子相似度的模型來獲得語義相似度得分(可參考wans,lany,guoj,etal.adeeparchitectureforsemanticmatchingwithmultiplepositionalsentencerepresentations)。將該特征定義為hsem(s,q),該模型首先將問題句子和答案句子分別用bi-lstm(bidirectionallongshorttermmemory)計算兩個句子每個位置的向量表達,兩個句子的不同位置進行交互形成新的矩陣和張量,然后接k-max采樣層和多層感知機進行降維。最后輸出兩個句子的相似度。bi-lstm是將句子序列正向輸入一次lstm,然后再反向輸入一次lstm。這樣每個時刻都有兩個向量表達,分別是前向的和反向的最重要的是每一個時刻的向量表達都包含了整個句子的信息。bi-lstm中每個時刻的向量表達就是兩個lstm向量的拼接,即首先,將問題句子和答案句子輸入到bi-lstm中,得到每個時刻的向量表達。然后將兩個句子的各個時刻的向量進行交互,利用張量函數(shù)生成交互張量。張量函數(shù)是把兩個向量映射成一個向量,公式如下:

其中,u,v分別代表兩個向量,wi,i∈[1,…,c]是張量的一個切片。wuv和b是線性變換的參數(shù)。f是非線性函數(shù)。經(jīng)過張量函數(shù)變換后的結果是一個向量。

接來下利用k-max采樣從交互張量的每一個切片中選擇出k個最大的值,然后將所有切片的值拼接成一個向量。最后需要用多層感知機將高維的向量降到一維的標量,這個標量經(jīng)過線性變換后就是兩個句子的相似度得分。公式如下:

r=f(wrq+br)

s=wsr+bs

其中,wr和ws是參數(shù)矩陣,br和bs是相應的偏置向量。

最后,我們需要設計損失函數(shù)。本文的任務是排序,因此直接使用合頁損失函數(shù)(hingeloss)。給定一個三元組其中sx代表問題句子,代表正確的答案句子,代表錯誤的答案句子。損失函數(shù)可以定義為:

其中,是相應的相似度函數(shù)。

4.句子結構特征

本發(fā)明使用了兩種句子結構特征:

(1)依存樹根匹配

定義為hrm(s,q),這是一個取值為0,1,2的特征。如果問題句子和答案句子對應的依存關系擁有相同的根,則hrm(s,q)=2,否則如果答案句子包含問題句子的根或者問題句子包含答案句子的根,則hrm(s,q)=1。如果上面兩種情況都不存在則,hrm(s,q)=0。

(2)依存關系匹配。

定義為hdm(s,q)。首先找到兩個句子中共同的詞,這里稱為一對錨點。在兩個句子中可能會出現(xiàn)多對錨點。然后分別計算出兩個句子的依存關系。統(tǒng)計兩個依存樹從根出發(fā)到錨點的相同依存關系的數(shù)目,即得到hdm(s,q)。兩個句子依存樹的根并不一定相同,因此這里的相同的依存關系指的是關系,而忽略詞匯的差異。

5.答案類型特征

首先對問題進行分析,根據(jù)問題的疑問詞來判斷問題類型。同時根據(jù)事先定義好的分類目錄表來找到所需的答案類型。本發(fā)明定義了答案類型匹配特征ham(s,q)。算法步驟如下:

(1)首先,分析問題,推理出所需答案類型。

(2)對答案句子進行命名實體識別和詞性標注。

(3)判斷答案句子中命名實體是否包含問題所需答案類型,如果包含則,ham(s,q)=1,如果不包含,ham(s,q)=0。對于有比較明確的答案類型,比如“money,number,person”等,可以根據(jù)命名實體識別來識別,對于“nnp”詞性的答案,可以根據(jù)詞性標注進行識別。最后,對于命名實體識別和詞性標注都無法確定的答案類型,比如“reason”或者“manner”等默認ham(s,q)=1。

將上述五種級別中所有特征的相似度得分進行加權求和得到總體的相似度得分;即得到兩個句子之間的相似度。

綜上,本方法的主要優(yōu)點在于,該方法使用多級特征全面衡量兩個句子之間的相似性,克服了傳統(tǒng)方法中計算句子相似度時過于片面的缺點。

附圖說明

圖1是本發(fā)明計算句子相似度的整體架構圖;

圖2是本發(fā)明所述句子語義特征模型示意圖;

圖3是本發(fā)明所述句子結構特征依存關系示意圖。

具體實施方式

下面將結合附圖和實例對本發(fā)明作進一步的詳細說明。

如圖1所示,本發(fā)明提出的衡量問題和答案句子相似度的方法共包括五種特征函數(shù),每種特征函數(shù)分別用來衡量兩個句子之間不同角度的相似性。其中,單詞級別的特征是從單詞出發(fā),計算兩個句子在單詞方面相似程度。短語級別的特征能夠處理局部上下文依賴問題,能夠很好的匹配到習語和常用詞的搭配。句子語義特征能夠衡量兩個句子在含義方面的相似性。句子結構特征能夠衡量兩個句子在語法和句法方面的相似性。答案類型特征能夠衡量答案句子中是否包含問題所需答案類型。最后,通過線性函數(shù)將這五種特征函數(shù)進行加權求和,形成基于多級特征的問題和答案句子相似度算法。該算法能夠全方面衡量問題句子和答案句子之間的相似性。

關于數(shù)據(jù)集

本發(fā)明用于衡量英語問題和答案句子之間的相似度,選用squad數(shù)據(jù)集對模型進行訓練。squad數(shù)據(jù)集包含了536篇維基百科中的文章,共23215個段落,每個段落都人工提問不超過5個問題??偣驳膯栴}數(shù)超過十萬。原數(shù)據(jù)集只公開了訓練集和驗證集。為了完成模型的評價,本文將原有的訓練集和驗證集進行合并,重新按照8:1:1的比例劃分訓練集,驗證集和測試集。劃分過程中每個段落和這個段落的所有問題是一個基本的劃分單元。

將段落切分成句子,將每個段落切分成答案句子候選集,這樣每個問題只需要對所屬段落中的句子進行排序來找到答案句子,候選集規(guī)模比較小。雖然數(shù)據(jù)集中并沒有給出問題所對應的答案句子。但是給出了每個問題答案的起始位置,我們根據(jù)答案的起始位置可以設計算法定位該問題所對應的句子。本發(fā)明直接使用corenlp對段落進行句子的切分。

使用corenlp對段落中的句子以及該段落的問題進行分詞、詞性標注、命名實體識別、句法分析樹和依存關系分析。本文使用java語言調(diào)用公開的corenlp工具包。

本實例從單詞特征、短語特征、句子語義特征、句子結構特征、答案類型特征共五級特征來衡量兩個句子之間的相關性,分別是:

1.單詞特征實施方式

首先對于單詞特征函數(shù)hwt(q,s),本發(fā)明使用giza++來訓練一個有11.6m個問題和相關問題的平行語料庫,該語料庫是從wikianswers網(wǎng)站上爬取的。對于hwv(q,s)函數(shù),本發(fā)明直接使用word2vec模型訓練維基百科語料庫。

2.短語特征實施方式

對于短語特征函數(shù)hpp(s,q),本發(fā)明直接使用moses來訓練squad數(shù)據(jù)集。squad數(shù)據(jù)集先經(jīng)過預處理步驟,然后將訓練集中的每個問題和對應的答案句子放在一起形成一個問題到答案的平行語料庫,共有81345對句子。然后輸入到moses中訓練得到短語表。

3.句子語義特征實施方式

如圖2所示,問題句子和答案句子輸入到bi-lstm中,得到每個時刻的向量表達。然后將兩個句子的各個時刻的向量進行交互,形成交互張量。接來下利用k-max采樣從每一個切片中選擇出k個最大的值,然后將所有切片的值拼接成一個向量。最后需要用多層感知機將高維的向量降到一維的標量,這個標量經(jīng)過線性變換后就是兩個句子的相似度得分。

對于句子語義特征函數(shù)hs(s,q),本發(fā)明首先構建正負樣本的集合。對于一個問題,其對應的正確句子為正樣本,對應段落中的其他句子作為負樣本。訓練集中每個問題有一個正樣本,同時隨機采樣兩個負樣本。這樣每個問題對應了三個訓練樣本,共244035個樣本。驗證集和測試集采取同樣的方式,分別有30144和30864個樣本。我們使用基于theano的keras實現(xiàn)雙向的lstm模型。訓練過程中批的大小為128,優(yōu)化器選擇adagrad。模型訓練的終止條件是驗證集上的錯誤率不再下降。

4.句子結構特征實施方式

圖3是問題句子和答案句子的依存關系示意圖。圖中的箭頭代表依存關系,箭頭的發(fā)出單詞是支配詞,箭頭的接受端是被支配詞。在實際的問答當中,問題句子和答案句子的依存關系往往存在相似性,比如對于問題句子“wherewasobamaborn?”和答案句子“obamawasborninhonolulu.”??梢钥闯鰞删湓挼囊来骊P系基本一樣?!皐here”和“honolulu”剛好對應,都是“born”的修飾詞。

首先找到兩個句子中共同的詞,這里稱為一對錨點。在兩個句子中可能會出現(xiàn)多對錨點。然后分別計算出兩個句子的依存關系。統(tǒng)計兩個依存樹從根出發(fā)到錨點的相同依存關系的數(shù)目。兩個句子依存樹的根并不一定相同,因此這里的相同的依存關系指的是關系,而忽略詞匯的差異。以圖3中的問題和答案句子為例,兩個句子的擁有相同的根,因此hrm(s,q)=2,兩個句子除根外有兩個共同單詞,而且根到這兩對錨點的依存關系相同,因此hdm(s,q)=2。

5.答案類型特征實施方式

數(shù)據(jù)集預處理之后,每個句子都進行了命名實體識別,問題句子在問題處理模塊中也有相應的答案類型。根據(jù)簡單的匹配就可以計算出來。

以上是所有特征函數(shù)的實現(xiàn)細節(jié),在所有特征函數(shù)訓練和計算完成后,我們需要把這些特征函數(shù)進行線性加權融合。線性模型的參數(shù)為每個特征函數(shù)的權重值。線性模型的目標函數(shù)公式為:

其中sx代表問題句子,代表正確的答案句子,代表錯誤的答案句子。是相應的相似度函數(shù)。訓練集是將驗證集中所有的問題的一個正樣本,并隨機采樣兩個負樣本,共30144個正負樣本。訓練完成后即可得到每個特征的權重。

當前第1頁1 2 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
罗平县| 丹寨县| 富平县| 云龙县| 石城县| 萨嘎县| 金堂县| 阿图什市| 甘南县| 应城市| 聂荣县| 阆中市| 常山县| 改则县| 建瓯市| 金华市| 东海县| 尉氏县| 高阳县| 楚雄市| 株洲县| 泾川县| 阳谷县| 盘锦市| 垣曲县| 启东市| 晋中市| 翁牛特旗| 赤壁市| 会泽县| 宁陵县| 新乡县| 山东省| 永新县| 辽宁省| 越西县| 高淳县| 雅安市| 新丰县| 石棉县| 慈溪市|