国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于領(lǐng)域詞典和Sentence-BERT的智能問答系統(tǒng)

2023-11-06 09:38李強偉王鑫陳浩民趙坤仝思凡
電腦知識與技術(shù) 2023年25期
關(guān)鍵詞:挖掘

李強偉,王鑫,陳浩民,趙坤,仝思凡

(西安工程大學,陜西西安 710600)

0 引言

問答系統(tǒng)是自然語言處理(Natural Language Processing,NLP)領(lǐng)域的重要分支,隨著自然語言處理技術(shù)的發(fā)展,對問答系統(tǒng)的研究也越來越多。通常認為最早的問答系統(tǒng)理論是由Alan Mathison Turing 提出的圖靈測試[1]。1966 年,由Joseph Weizenbaum 研發(fā)的Eliza 系統(tǒng),是通過模板特征實現(xiàn)的,即通過人工定義對話模板完成問答[2]。

問答系統(tǒng)通常要求以自然語言形式描述的問題為輸入,并輸出一個簡潔的答案或答案列表,而不是一堆相關(guān)的文檔。對于問答系統(tǒng),主要需要解決三個問題:首先,機器需要理解用戶輸入的問題是什么;其次,機器需要根據(jù)這些問題的關(guān)鍵點檢索并處理相關(guān)信息;最后,機器需要將答案返回給用戶。問答系統(tǒng)的關(guān)鍵在于提高問題檢索召回的精度和效率,如何合理利用現(xiàn)有模型和方法,達到檢索系統(tǒng)的整體優(yōu)化和性能提升[3]。目前最受關(guān)注的是基于知識圖譜的問答系統(tǒng),有多種方法可供選擇,包括基于模板、語義解析、向量和深度學習[4]。知識圖譜的問答系統(tǒng)有多種方法來回答問題[5]。其中,基于模板的方法使用預先設(shè)計的查詢模板來匹配問題并進行查詢,避免了語義解析的難題[6];基于語義解析的方法則通過分析問題的成分,構(gòu)建邏輯表達式,并將其轉(zhuǎn)換為知識圖譜的查詢語言進行查詢?;谙蛄康姆椒▌t利用表示方法將知識圖譜映射到低維向量空間,然后將問題中的實體和關(guān)系還原到相同的向量空間,并通過向量之間的距離或相似度來推理答案。最后,基于深度學習的方法則通過神經(jīng)網(wǎng)絡(luò)學習問句和知識圖譜中的語義信息,獲得字向量或詞向量,并使用深度學習模型計算向量之間的相似度并進行排序,以推理問句的答案[7]。Bert 句向量生成指的是通過Bert 生成文本的句向量[8],生成的句向量能準確表征句子的語義。采用生成式的掩碼語言模型(Masked Language Model,MLM),該模型是一種雙向Transformer結(jié)構(gòu)[9]。

原生的Bert 在下游任務(wù)中表現(xiàn)出色,但是將其用于句子相似度等任務(wù)時,生成的句子向量效果不佳。為了解決這個問題,本文采用了Reimers N 等人[10]在2019 年提出的句子向量計算模型Sentence-BERT 模型。該模型可以獲取句向量,并通過句子向量的Cosine 相似度來衡量文本相似度。此外,文本句子中的冗余部分對相似度計算有很大的影響,特別是在使用詞向量模型時[11]。

因此,本文根據(jù)領(lǐng)域知識庫創(chuàng)建了領(lǐng)域詞典[12],它是一種應(yīng)用于具體領(lǐng)域的信息化工具,能夠從大量語料中抽取出簡潔凝練的詞匯來傳遞某個特定領(lǐng)域的特征信息[13],以過濾冗余信息,支持特定領(lǐng)域的自然語言處理任務(wù)。最終,本文總結(jié)對句向量與去自然語言冗余的研究,提出了一種基于領(lǐng)域詞典和Sentence-BERT 的快速文本匹配方法,來更高效、更準確地解決問答任務(wù)。

1 領(lǐng)域詞典建立

領(lǐng)域詞典構(gòu)建模型如圖1 所示。首先,進行問答文本的擴展;然后對擴展好的問答文本進行關(guān)鍵詞短語的去雜與提取,對標準類庫的問題進行處理得到標準短語并進行擴展,最后整合得到每個問題的相關(guān)領(lǐng)域短語。最后,加入原標準問題及對應(yīng)答案,完成領(lǐng)域詞典的建立。

1.1 問題擴展與關(guān)鍵詞提取

對爬取到的原始問題進一步擴展,按照自然語言問法進行數(shù)據(jù)標注,盡可能地覆蓋所有自然語言問法。并且由此生成后續(xù)訓練的問題文本數(shù)據(jù)集。

關(guān)鍵詞語提取是對一類問題(即一個標準問題與其對應(yīng)的擴展問題組成的問題集)篩選出能代表其問題核心的詞語。首先對所有問題文本進行分詞,使用停用詞表對詞堆進行第一輪篩選,過濾掉大部分詞頻高但是沒有計算意義的詞;其次,對過濾好的詞使用詞頻權(quán)重計算,即進行關(guān)鍵詞挖掘,最后進行排序,算法如下。

算法1:getkeywords算法

輸入:所有問題分詞形成的詞堆Row,一類問題分詞形成的詞堆W,停用詞表stopwords,計算TF 值模型tf_Cal;計算IDF值模型idf_Cal。

輸出:某類問題的關(guān)鍵詞與權(quán)重值的字典dict。

1.2 標準詞擴展

通過對標準問題庫的標準問題進行處理,同樣進行分詞和去除停用詞。標準庫中的問題十分精簡,需要對其關(guān)鍵詞語進行擴充,迎合自然語言的多樣性,增大領(lǐng)域詞典的處理一詞多義的能力。主要做法是使用哈爾濱工業(yè)大學社會計算與信息檢索研究中心研發(fā)的“語言技術(shù)平臺(LTP)”進行遠程同義詞獲取,再使用HuggingFace 提供的可直接使用的Sentence-Bert 預訓練模型對搜索到的同義詞與1.1.2 獲取的同類問題關(guān)鍵詞進行相似性比對,即保證所擴充的同義詞對本問題有意義。

經(jīng)人工篩選過濾掉抽取錯誤,選擇其中的200 個詞語作為測試語料。設(shè)置并比較12組過濾閾值后,最終確定閾值為0.75。在此閾值下,從實驗語料中,共識別出同義詞48組,同義詞識別準確率為50.24%,召回率為65.41%。實驗整體準確率不高、召回率高的原因歸結(jié)為詞向量的本質(zhì)是基于語料的訓練結(jié)果,預訓練模型在專業(yè)語義方面表現(xiàn)效果不是很好。因此先通過實驗確定閾值μ,然后將原始詞語進行自動識別同義詞,然后人工進行再次驗證并篩選出高質(zhì)量同義詞形成詞典。

表1 同義詞識別結(jié)果舉例

短語擴展算法如下

算法2:標準短語擴展。

輸入:同類標準問題詞語表S;語料庫D;關(guān)鍵詞詞堆;詞向量模型tf_Sim;閾值μ。

輸出:擴充詞語表E。

1.3 完善領(lǐng)域詞典

設(shè)計領(lǐng)域詞典的基本架構(gòu),本詞典的最小單元為一個標準問題,為這些標準問題加上問題編碼和分類編碼。將關(guān)鍵詞與擴展詞作為該問題下的相關(guān)領(lǐng)域短語集,并整合問題與答案,形成最終的領(lǐng)域詞典。

領(lǐng)域詞典基本信息如下

2 系統(tǒng)構(gòu)成及問題處理

如圖2 所示,使用領(lǐng)域詞典構(gòu)建階段產(chǎn)生的問題文本數(shù)據(jù)集進行模型訓練,得到最終識別問句的Sentence-Bert 詞向量模型。輸入用戶的問題后,先通過之前構(gòu)建好的領(lǐng)域詞典對其進行冗余過濾,過濾后的問句再放入模型中進行計算返回top1答案。

圖2 模型訓練

2.1 句向量訓練

對詞典構(gòu)建階段擴展的問題數(shù)據(jù)集進行處理,劃分為正負樣本作為輸入,使用HuggingFace 提供的Sentence_transformers 進行數(shù)據(jù)處理,即將單個問題轉(zhuǎn)化成Bert可識別的InputExmple,并打上正負樣本的標簽,再隨機打亂,按照8∶1 的比例劃分訓練集和測試集。并且以huggingfac 提供的Sentence-BERT 中文預訓練模型uer/sbert-base-chinese-nli為基礎(chǔ)進行訓練。

如圖2所示,把正負樣本喂給預訓練的Sentence-BERT模型,然后獲得每個標記的向量表示,用兩個一樣的BERT模型。把句子1喂給第一個BERT模型,把句子2 喂給第二個BERT 模型,然后計算模型輸出的標記表示的均值(池化)。u,v分別表示輸入的2個句子的向量表示,|u-v|表示取兩個向量的絕對值,(u,v,|u-v|)表示將三個向量在-1 維度進行拼接,因此得到向量的維度為3×d,d表示隱層維度。

令u代表句子1的表示,v代表句子2的表示。然后通過余弦相似計算這兩個向量表示的相似度:Similarity=cos(u,v)。

2.2 系統(tǒng)構(gòu)成

本系統(tǒng)由領(lǐng)域詞典、句向量模型、問題處理器三部分組成,如圖3所示。領(lǐng)域詞典用于過濾冗余詞、匹配關(guān)鍵詞、提供標準問句與回答;句向量模型用于計算去冗余句子的句向量以及該句向量與標準句子的文本相似度;問題處理器用于接受用戶問題并進行文本預處理,調(diào)用領(lǐng)域詞典去冗余、調(diào)用句向量模型計算文本相似度。

圖3 模型訓練及用戶問題匹配過程

2.3 用戶問題處理

如圖3所示,用戶輸入問題后,先進行分詞,去掉停用詞,剩余的每個詞再與之前構(gòu)建的領(lǐng)域詞典的每個詞進行文本相似性比對,相似結(jié)果大于閾值υ 才可被認定為是有效詞,再將剩余詞拼接起來,使用訓練好的Sentence-BERT 模型將其與標準庫中的標準問題進行文本相似計算,同樣設(shè)置閾值a,返回相似度大于a的top1問題,并對應(yīng)的答案。具體算法如下:

算法3:QueryDealing

輸入:用戶問題Query,領(lǐng)域詞典短語庫W,領(lǐng)域詞典問題答案對DicQAs,詞語相似度閾值e,句向量相似度閾值a,句向量模型Sbert,停用詞表stopwords。

輸出:相似度top1的答案A。

3 實驗及結(jié)果分析

本文使用的數(shù)據(jù),是通過爬蟲爬取的某文旅網(wǎng)站的游客最關(guān)心的92個標準問題,例如幾點開門,能否提前預訂門票等。經(jīng)過對這些問題進行同類擴展和相似問題爬取,盡可能地覆蓋自然語言問法。最終得到2 027 個問答對的訓練數(shù)據(jù)集和包含207 個問答對的測試數(shù)據(jù)集。

3.1 微調(diào)Sentence-BERT模型參數(shù)

train_loss:該損失函數(shù)是將余弦相似度轉(zhuǎn)化為距離,然后計算誤差,并使用這種差異來更新模型的權(quán)重,從而使得模型能夠更好地學習到句子向量之間的相似性關(guān)系。

max_grad_norm:用于確保梯度在量級上不會變得太大。1的值確保梯度不超過某個閾值。

weight_decay:權(quán)重衰減項,小樣本訓練模型復雜度較低,應(yīng)設(shè)置為較小的值,如0.01,可以在一定程度上避免過擬合。

batch_size:在官方文檔中,提到了在使用sentence_transformer 進行訓練時,建議使用較大的batch size,例如可以使用batch_size=32 或更大。然而由于實驗設(shè)備沒有太高的顯存,這里設(shè)置為32。

3.2 評估指標

對于短語二分類問題,本文使用準確率P、召回率R 評估模型分類效果。根據(jù)真實類別與預測類別可以分為真正類(TP)、真負類(TN)、假正類(FP)、假負類(FN)。準確率、召回率的計算公式如下:

其中,正樣本表示被分類為正類別的樣本,負樣本則表示被分類為負類別的樣本。在二分類問題中,準確率指的是分類器正確分類的樣本數(shù)占總樣本數(shù)的比例,而召回率則是正類別樣本被正確分類的比例。

由表3可以看出,采用Sentence-BERT+領(lǐng)域詞典方法,其精確度比BERT模型+領(lǐng)域詞典增加了6.9%、比Sentence-BERT 模型增加了2.2%,而召回率比BERT模型+領(lǐng)域詞典提高了8.3%、比Sentence-BERT模型提升了7.1%。總體效果比單獨采用Sentence-BERT模型和BERT模型+領(lǐng)域詞典有所提升。

表3 分類模型性能比較

本文構(gòu)建的Sentence-BERT+領(lǐng)域詞典的訓練集準確度為93.2%,預測集準確度為91.0%,通過比較BERT+領(lǐng)域字典、Sentence-BERT、Sentence-BERT+領(lǐng)域詞典三種不同的模型,與實驗結(jié)果的對比,可以得出以下結(jié)論:

1) 當使用領(lǐng)域詞典進行模型擴展時,Sentence-BERT+領(lǐng)域詞典模型可以更好地將特定領(lǐng)域的語法和詞匯考慮到嵌入空間中,從而提高了模型性能。還可以在不同的句子之間建立更準確的相似度關(guān)系。相比之下,BERT 模型可能會受到數(shù)據(jù)稀疏和詞匯多樣性的限制,而且對于基于句子的任務(wù),其表現(xiàn)可能不如Sentence-BERT 模型。因此,Sentence-BERT+領(lǐng)域詞典比BERT 模型+領(lǐng)域詞典更適合處理基于句子的特定領(lǐng)域任務(wù),具有更好的性能。

2)而Sentence-BERT+領(lǐng)域詞典方法,該模型結(jié)合了Sentence-BERT 模型和BERT+領(lǐng)域詞典的優(yōu)點。通過使用帶有Sentence-BERT 的領(lǐng)域特定字典,可以在特定領(lǐng)域主題中以更高的準確度捕獲句子的語義。相比之下,單獨使用Sentence-BERT 模型因為沒有對這些專業(yè)自然語言問題語句的冗余部分進行處理,在實驗結(jié)果上顯然遜色于有領(lǐng)域詞典的實驗組。因此,使用Sentence-BERT+領(lǐng)域詞典的方法在處理自然語言與專業(yè)文本時更有優(yōu)勢。

3) 總體來說,與傳統(tǒng)的BERT 模型相比,使用Sentence-BERT模型的優(yōu)點包括更好的句子級語義理解,而使用特定領(lǐng)域的字典可以提高Sentence-BERT模型在特定領(lǐng)域上下文中的準確性。

4 總結(jié)

本文提出了一種基于領(lǐng)域詞典和Sentence-BERT的智能問答系統(tǒng)。通過實驗證明,本方法在進行問答自然語言匹配的效果非常好。但是仍在實驗中發(fā)現(xiàn),當兩個不同問題語義非常相近時,領(lǐng)域詞典去問句冗余之后計算的兩個句子仍然十分相近。未來將會嘗試進一步研究通過增添語義的方式更高準確地識別問句。

猜你喜歡
挖掘
初中英語老師如何充分挖掘?qū)W生學習英語的興趣
挖掘“文本”空白,讀悟表達補白
挖掘檔案文化資源推進檔案文化建設(shè)
關(guān)注數(shù)學思考 提升數(shù)學本質(zhì)
清水县| 应城市| 汕尾市| 钟祥市| 鹰潭市| 鹤庆县| 漠河县| 陕西省| 通河县| 中牟县| 互助| 汶上县| 兴文县| 吉林省| 修武县| 余干县| 渑池县| 金川县| 天柱县| 麻江县| 惠州市| 霍山县| 盖州市| 岢岚县| 湟源县| 雅江县| 尉氏县| 华安县| 广宗县| 清镇市| 山阴县| 上思县| 辽阳县| 罗山县| 岑溪市| 香格里拉县| 衢州市| 莱西市| 丹阳市| 长治县| 二连浩特市|