999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于Word2vec和句法規則的自動問答系統問句相似度研究

2021-03-16 13:29:06白尚旺陸望東黨偉超潘理虎
計算機應用與軟件 2021年3期
關鍵詞:句法分類分析

劉 杰 白尚旺 陸望東 黨偉超 潘理虎,3

1(太原科技大學計算機科學與技術學院 山西 太原 030024)

2(太原政通云科技有限公司 山西 太原 030000)

3(中國科學院地理科學與資源研究所 北京 100101)

0 引 言

自動問答系統的一般處理流程是對用戶提出的問題查詢FAQ (Frequently Asked Questions)問題庫并返回最為相似問題的答案。早期的自動問答系統主要依靠專家系統,如文獻[1]提到的LUNAR和文獻[2]提到的STUDENT專家系統,但是專家系統往往有局限性,其數據結構通常是結構化數據,問句之間相似度匹配往往是句中詞語的機械式匹配。張子憲等[3]從句子的關鍵詞相似度、關鍵詞距離以及相同關鍵詞在問題庫所占比例等方面進行了相似度計算分析,并提出一種基于句子規則的問句相似度計算方法。該方法雖然提高了句子相似度匹配精度,但是忽略了句子結構層面的分析。文獻[4]提出了一種基于改進后的TF-IDF的句子相似度計算方法,通過同義詞典統計關鍵詞詞頻信息,然后計算向量之間余弦相似度。雖然該方法慮到了關鍵詞的物理特征,但忽略了詞語在問句環境中的依存關系以及語義關系。

近年來,隨著大數據時代到來和云計算能力不斷地提高,深度學習得到了非常快速的發展,其具有很好的特征學習能力,尤其是在圖像和語音領域,這也激勵著大批學者將其具有應用自然語言處理的研究中[5-7]。2013年,Google公開獲取詞向量工具Word2vec[8-9],立即引起了學術界和工業界的關注,其獲取詞向量方法與One-hot[10]方法相比能夠更好地表達詞與詞之間的相似特征。2014年,Kim[11]提出了基于卷積神經網絡的文本分類方法——Text-CNN,該方法相比RNN[12]能夠取得更高的分類準確率,雖然對某些特殊復雜句式的分析比RNN差一些,但是Text-CNN的分類效率總體更高。

基于以上分析和自動問答系統存在的問題,本文提出一種基于Word2vec和句法規則的自動問答系統問句相似度計算方法。基于Word2vec模型訓練的詞向量能夠更好地分析詞與詞之間語義關系,將向量空間相似度轉換成語義相似度。基于句法規則的問句相似度計算方法能夠更好地分析問句中特殊句型關系、詞性關系以及依存關系。

1 自動問答系統問句相似度研究

圖1所示為本文方法主要的處理流程。首先將用戶提出的問題與FAQ庫中的問題進行基于Word2vec和句法規則的問句相似度計算分析,判斷其是否超過閾值。若超過閾值則將FAQ中超過閾值且相似度最高的問題的答案作為用戶提出問題的答案返回給用戶,否則系統記錄該問題并通知管理員在FAQ庫中添加該問題和相應的答案。

圖1 自動問答系統流程

1.1 Word2vec詞向量研究

在問句相似度計算過程中詞是計算的基本單位,而詞向量是詞的特征在空間結構中的映射也是詞的數字特征形式,所以詞向量構建是問句相似度計算的重要環節。文獻[8-9]提到訓練Word2vec有兩種非常重要的模型:跳字模型和連續詞袋模型。

1.1.1跳字模型

跳字模型(skip-gram)是依據中心詞來生成中心詞周圍的詞。該模型以圖2為例,假設存在文本序列“學校”“老師”“愛”“每一個”“學生”,設置其生成背景的窗口為2,在 skip-gram中,給定中心詞“愛”,生成2個詞的范圍內的背景詞“學校”“老師”“每一個”“同學”的條件概率為:

P(“學校”,“老師”,“每一個”,“學生”|“愛”)

(1)

如果生成概率是相互獨立的,則式(1)可以改寫為:

P(“學校”|“愛”)·P(“老師”|“愛”)·P(“每一個”|“愛”)·P(“同學”|“愛”)

(2)

圖2 跳字模型

假設存在一個索引集合為{0,1,…,n}的詞典和一個中心詞wc和背景詞wo,且wc對應One-hot詞向量為vc,wo對應One-hot詞向量為uo,那么,在skip-gram中,給定中心詞wc生成背景詞wo的概率為:

(3)

式中:i、o、c表示為詞典中索引的位置。

假設,存在一個長度為T的文本序列,那么,給定任一中心詞w(t)生成w(t+j)背景詞的概率為:

(4)

式中:t為時間步;m為生成背景詞的窗口大小。

由式(4)可以得到最小化損失函數:

(5)

在訓練過程中,采用隨機梯度下降隨機取一個子序列來訓練更新模型參數,把式(3)代入式(5)通過微分可得到中心詞向量vc的梯度:

(6)

訓練結束后得到Word2vec詞向量。

1.1.2連續詞袋型(CBOW)

與跳字模型相比,連續詞袋模型在生成結構上略有不同,該模型是給定周圍背景詞去生成中心詞。以圖3為例,假設存在文本序列“學校”“老師”“愛”“每一個”“學生”,在CBOW中,給定“學校”“老師”“每一個”“學生”作為背景詞,生成中心詞“愛”的條件概率為:

P(“愛”|“學校”,“老師”,“每一個”,“學生”)

(7)

圖3 連續詞袋模型

假設存在一個索引集合為{0,1,…,n}的詞典和一個中心詞wc、一個背景詞集合{wo1,wo2…,wo2m},且wc對應One-hot詞向量為uc,{wo1,wo2…,wo2m}對應的背景One-hot詞向量集合為{vo1,vo2…,vo2m},那么,在CBOW中,給定背景詞集合{wo1,wo2…,wo2m}生成中心詞wc的概率為:

(8)

那么式(8)改寫為:

(9)

假設存在一個長度為T的文本序列,那么給定背景詞w(t-m),…,w(t-1),w(t+1),…,w(t+m),生成中心詞w(t)的概率為:

(10)

式中:t為時間步;m為生成背景詞的窗口大小。

由式(10)可以得到最小化損失函數:

(11)

在訓練過程中,同樣采用隨機梯度下降隨機取一個子序列來訓練更新模型參數,把式(9)代入式(11)通過微分可得到任一背景詞向量vok(k=1,2,…,2m)的梯度:

(12)

訓練結束后得到Word2vec詞向量。

1.2 基于句法規則的相似度分析

本文提出的句法規則主要分為問句分類規則、問句特殊句型規則、問句動名詞規則、問句依存關系規則。

1.2.1基于問句分類規則的相似度分析

通過大量分析問句語料庫發現,相似度較高的兩個問題可以分為一類,因此在計算兩個問句是否相似時候,可以把類的特征作為一個考量因素。如表1所示,第一組中的問句都屬于“詩詞”一類,第二組都屬于“地理”分類。文獻[4]方法沒有把問句分類作為相似度計算的一個特征因素,其計算結果很低。

當問句分類結果作為一個相似度計算因素時,構造的問句分類模型必須要有較高的分類準確率。

表1 問句相似度分析一

卷積神經網絡(Convolutional Neural Networks, CNN)最先被應用在圖像識別方面,并且取得了長足的進步。其識別圖像過程是通過模仿人類視覺層感知圖像的過程。首先通過眼睛攝取圖像的像素;然后大腦皮層細胞找到圖像的形狀邊緣和形狀方向并且抽象地確定該圖像的形狀;最后,進一步地抽象判定。

文獻[11]提出文本數據也可以看作是一維圖像,將文本映射成一維圖像可以利用卷積神經網絡提取詞與詞之間的特征 ,其網絡結構為“單層卷積+池化”的簡易 CNN 模型——Text-CNN,如圖4所示。

圖4 Text-CNN網絡結構

Text-CNN與CNN模型結構略有不同的是 Text-CNN網絡模型結構首先定義了一維卷積核,其作用是對輸入的特征進行卷積運算,卷積核的寬度不同則捕捉的詞與詞之間的相關性也可能不同,卷積運算之后再執行最大池化處理并將池化的輸出值作為向量連接,最后通過全連接層將每個類別進行輸出。圖4中,輸入層由5×5的詞向量組成,詞向量的維度是5,總共5個詞向量,卷積層有3種尺寸不相同的卷積核,分別是2×5、3×5、4×5, 每種尺寸有兩個卷積核。卷積核分別于上一層輸入層進行卷積運算,其卷積后的結果再使用激活函數進行激活。每個卷積操作都會得到一個相應的特征圖,池化層采用最大池化操作過濾出每個特征圖最大值然后進行鏈接,輸出層運用Softmax對卷積層連接好的向量進行分類。

1.2.2基于特殊句型的相似度分析

在帶有否定詞的問句句型中,否定詞的影響可以忽略。如表2所示,在問句環境中兩個問句描述的是一個意思,在計算問句相似度時可以去除問句中的否定詞“不”,其相似度不變。

表2 問句相似度分析二

1.2.3基于問句中動詞和名詞的相似度分析

分析發現相似度較高的問句中,其相似度主要取決于句中名詞與名詞以及動詞與動詞之間的相似性。如表3所示,如果能提高第一組名詞“計算機”與“電腦”,“屏幕”與“顯示器”及動詞“打”和“閃”之間的語義理解,那么其計算的相似度結果會更高。而基于Word2vec訓練的詞向量恰好解決了詞語之間語義相似度計算的問題。

表3 問句相似度分析三

1.2.4基于問句依存關系相似度分析

一個詞在問句的不同位置表達出來的意思可能完全不一樣,如表4所示,問句1、2和問句3、4的包含和對比依存關系完全不一樣,文獻[4]并沒有分析問句的依存關系,相似度計算的結果都較高。

表4 問句相似度分析四

2 基于Word2vec和句法規則的問句相似度計算方法

基于第1節的分析,本文提出一種基于Word2vec和句法規則的自動問答系統問句相似度計算方法,問句示例如下:

“杭州屬于哪個省?”

J1

“杭州歸于哪里?”

J2

其相似度計算式為:

SimJ(J1,J2)=a·SameCateSim(J1,J2)

β·cos(sim(J1n,J2n))+r·cos(sim(J1v,J2v))+

(13)

(1)SimJ(J1,J2)表示為問句J1和問句J2相似度值,值越接越近1表示問句J1和問句J2越相似,值越接近0表示問句J1和問句J2越不相似。

(2)sim(A,B)表示為詞向量A和詞向量B的余弦相似度,即:

(14)

為了方便比較,本文把余弦相似度都統一歸一化到[0,1]區間內,歸一化后的余弦相似度為:

cos(sim(A,B))=0.5+0.5×sim(A,B)

(15)

(3) (J1,J2)表示J1和J2是否同類,如果是同類,SameCateSim=1;否則SameCateSim=0。

(16)

(4) 用LTP[13]對問句中的動詞(v)和名詞(n)進行詞性標注,J1n表示為問句J1中的所有名詞Word2vec詞向量累加和,J2n同理;J1v表示為問句J1中得所有動詞Word2vec詞向量累加和,J2v同理。

表5 句法依存關系表

例如,問句J1與問句J2的相同依存關系為“SBV”“HED”“VOB”“RAD”,那么集合C={“SBV”,“HED”,“VOB”,“RAD”},C的大小為4,k=4。假設,問句J1中的“SBV”的Word2vec詞向量為y1,“HED”的Word2vec詞向量為y2,…,“RAD” 的Word2vec詞向量為y4。 問句J2中的“SBV”的Word2vec詞向量為x1,“HED”的Word2vec詞向量為x2,…,“RAD”的Word2vec詞向量為x4,那么:

(16)

(5)a、β、r、z為相似度權重因子,a+β+r+z=1,經過200個問句相似度計算測試,將a、β、r、z分別設置為0.2、0.2、0.2、0.4。

為了更加詳細說明本文方法計算問句相似度的過程,將問句J1和問句J2計算過程進行分析,如表6所示。由于詞向量維數為400維,超出表格部分由省略號代替。

表6 計算過程分析

3 實 驗

3.1 實驗環境以及流程

本次實驗運行環境為Ubuntu 16.04,CPU為Intel i7 9700,編譯環境為Anconda 3,Python 3,選用jieba分詞器分詞,選用Tensorflow 1.0 訓練Text-CNN問句分類模型,選用Gensim訓練中文維基 Word2vec詞向量。

實驗具體流程如下:(1) 數據預處理;(2) 訓練構造Word2vec詞向量模型;(3) 訓練構造Text-CNN問句分類模型;(4) 用式(13)計算兩個問句相似度;(5) 計算自動問答系統準率(P)和召回率(R)以及F值;(6) 對比實驗結果進行分析。

3.2 實驗設計

訓練Text-CNN問句分類模型,設置詞向量embedding_dim為128,過濾器filter_sizes大小分別為3、4、5,每層網絡卷積核num_filters個數為128, DropOut概率為0.5,正則懲罰項為0.2,batch_size為64,epochs為100。訓練數據采用搜狗公開問句數據集進行訓練,人工把問句數據集分為“人物”“地理”“醫療”“歷史”“動物”“詩詞”“歌曲”“科學” 八種類型,共2 000個問句,其中1 500句作為訓練集,500句作為驗證集。

訓練Word2vec詞向量模型,設置詞向量維數size為400,使用CBOW模型訓練,訓練Window大小為5,每批單詞數量batch_words為1 000。訓練數據采用中文維基百科數據,大約91萬條,并將其xml格式的繁體數據轉換成txt格式簡體數據集,然后用jieba分詞處理。

使用準確率(P)、召回率(R)和F-measure(F)對自動問答系統實驗結果進行分析,計算如下:

(17)

(18)

(19)

3.3 實驗結果分析

3.3.1Text-CNN問句分類結果

在模型訓練迭代到12 000步時,驗證集分類準確率達到91%,在12 000到16 000步時準確率趨于平穩,驗證了Text-CNN問句分類的可行性,如圖5所示。

圖5 Text-CNN模型問句分類準確率

3.3.2問句相似度結果分析

選取5組不同類型的問句作為問句相似度分析,其結果如表7所示。

表7 問句相似度實驗結果

可以看出,相比文獻[4]方法,本文方法在計算問句之間相似度有著顯著提高。

1) 本文方法將問句分類特征作為相似度計算的一個因素,將問句共性特征轉換為問句相似的特征。表7中第一組問句都屬于“詩詞”一類,文獻[4]并沒有考慮問句分類的特征,所以相似度非常低。

2) 文獻[4]并沒有對問句中否定詞的特殊性進行分析,而本文方法消除了問句中無用否定詞。如表7 中 “太原不屬于山西嗎?”從問句角度的理解,去掉其中的否定詞“不”并不改變其問句的意思。顯然,文獻[4]將其視為一個詞處理,反而相似度不會很高,本文方法從問句的特殊句型角度出發提升了問句相似度計算結果。

3) 本文基于Word2vec模型訓練的詞向量更加精確地反映出了詞語之間的語義關系,從語言含義角度提升了計算的精確度。如表7第4組問句中,在 “電腦”和“計算機”以及“屏幕”和“顯示器”之間語義的理解,本文方法更為準確。

4) 本文方法加入了問句依存關系的分析,一個詞在問句的不同位置可能表達出來的意思不一樣,如表7第5組中,“質子包括原子嗎?”與“原子包括質子嗎?”包含的依存關系完全不一樣,相似度也不會很高,而文獻[4]沒有分析問句的依存關系。

3.3.3自動問答系統實驗結果分析

在自動問答系統測試過程中,隨機從搜狗公開問答數據集中抽取200個數據進行測試,系統閾值設置為0.50,加入文獻[4]方法對比分析,結果如表8所示。

表8 不同方法的對比實驗結果

可以看出,相比文獻[4]方法,本文提出的方法在準確率、召回率以及F值三項對比中有明顯的提升,召回率有顯著提升的原因主要是本文方法在問句理解的廣度上更為深刻。

4 結 語

本文提出的基于Word2vec和句法規則的自動問答系統問句相似度計算方法,更加準確地分析了問句的分類關系、特殊句型關系、依存關系以及語義關系,有效地提高了為自動問答系統返回答案的準確率。但是該方法對問句中一些專業詞語的深層語義辨析上存在著一定的缺陷,下一步工作將對專業詞匯的深層語義辨析做研究。

猜你喜歡
句法分類分析
句法與句意(外一篇)
中華詩詞(2021年3期)2021-12-31 08:07:22
述謂結構與英語句法配置
分類算一算
隱蔽失效適航要求符合性驗證分析
分類討論求坐標
電力系統不平衡分析
電子制作(2018年18期)2018-11-14 01:48:24
句法二題
中華詩詞(2018年3期)2018-08-01 06:40:40
數據分析中的分類討論
詩詞聯句句法梳理
中華詩詞(2018年11期)2018-03-26 06:41:32
教你一招:數的分類
主站蜘蛛池模板: 无码免费视频| 香蕉伊思人视频| 亚洲成肉网| 日本免费精品| 亚洲中文字幕23页在线| 免费在线不卡视频| 成人福利一区二区视频在线| 精品国产电影久久九九| 国产欧美日韩专区发布| 亚洲综合日韩精品| 国产欧美另类| 日韩在线1| 日韩在线播放中文字幕| 亚洲Va中文字幕久久一区| 热99re99首页精品亚洲五月天| 先锋资源久久| 在线无码av一区二区三区| 欧美日韩中文字幕在线| 伊人色天堂| 日韩中文字幕免费在线观看| 色综合五月婷婷| 亚洲精品在线观看91| 在线观看91精品国产剧情免费| 亚洲无码高清一区| 免费观看精品视频999| 国产欧美日韩va| 一级福利视频| 久久五月视频| 999精品在线视频| 天堂岛国av无码免费无禁网站| 国产精品 欧美激情 在线播放| 国产福利在线免费观看| 夜夜高潮夜夜爽国产伦精品| 99热国产这里只有精品9九| 亚洲欧美色中文字幕| 婷婷午夜天| 欧美精品成人一区二区视频一| 四虎综合网| 久久不卡国产精品无码| av天堂最新版在线| 国产福利影院在线观看| 亚洲手机在线| 一本大道AV人久久综合| 欧美激情福利| 中日韩一区二区三区中文免费视频| 在线国产欧美| a级毛片免费网站| 国产伦精品一区二区三区视频优播| 免费欧美一级| 热久久综合这里只有精品电影| 亚洲男人天堂2020| 欧美翘臀一区二区三区| 国产丰满成熟女性性满足视频| 亚洲女人在线| 亚洲一级毛片在线观| 亚洲欧美不卡中文字幕| 国产在线观看成人91| 国产chinese男男gay视频网| 成人午夜视频免费看欧美| 国产天天射| 女人一级毛片| 午夜不卡视频| 亚洲欧美自拍中文| 亚洲中文在线看视频一区| 国产成人三级在线观看视频| 91最新精品视频发布页| 日韩一区二区三免费高清| 国产在线高清一级毛片| 亚洲成人网在线播放| 日韩成人免费网站| 国产精品亚洲一区二区在线观看| 国产国拍精品视频免费看| 无码精品一区二区久久久| 在线观看亚洲精品福利片 | 制服无码网站| 日本免费福利视频| 亚洲中久无码永久在线观看软件| 午夜丁香婷婷| 伊人久久婷婷| 成人精品午夜福利在线播放| 欧美精品亚洲日韩a| 欧美精品影院|