王學(xué)軍,何文杰,趙宇
(200093 上海市 上海理工大學(xué) 機(jī)械工程學(xué)院)
齒輪傳動(dòng)是一種瞬時(shí)傳動(dòng)比恒定、傳動(dòng)效率高、傳動(dòng)壽命長(zhǎng)的傳動(dòng)方式[1]。然而齒輪傳動(dòng)設(shè)計(jì)過(guò)程中知識(shí)點(diǎn)多且復(fù)雜,公式和檢索手冊(cè)更是讓人眼花繚亂,因此,構(gòu)建一種基于新型數(shù)據(jù)結(jié)構(gòu)的齒輪傳動(dòng)設(shè)計(jì)問(wèn)答系統(tǒng),簡(jiǎn)化齒輪傳動(dòng)設(shè)計(jì)流程,非常有研究?jī)r(jià)值。
自2012 年被Google 成功應(yīng)用到搜索引擎方面后,知識(shí)圖譜作為一種新型的數(shù)據(jù)結(jié)構(gòu)受到了研究者們的廣泛關(guān)注。黃登奎[2]提出基于自頂向下和自底向上相結(jié)合的知識(shí)圖譜建模方法,人工定義構(gòu)建工程機(jī)械維修保養(yǎng)知識(shí)圖譜的頂層數(shù)據(jù)模式;趙倩[3]采用基于模式的數(shù)據(jù)映射機(jī)制,將關(guān)系型數(shù)據(jù)庫(kù)(RDB)數(shù)據(jù)轉(zhuǎn)化為資源描述框架(RDF)四元組進(jìn)行存儲(chǔ),提出了數(shù)據(jù)驅(qū)動(dòng)的增量式本體構(gòu)建技術(shù)建立數(shù)控設(shè)備故障本體模型;凡天娣[4]根據(jù)人工獲取的實(shí)體及其語(yǔ)義關(guān)系構(gòu)建焊接工藝知識(shí)圖譜,提出了一種基于本體的船舶焊接工藝知識(shí)圖譜構(gòu)建方法。
目前的研究工作中以知識(shí)圖譜形式構(gòu)建問(wèn)答系統(tǒng)的技術(shù)大都很成熟,但是基本都采用了人工方式去篩選實(shí)體及實(shí)體間關(guān)系。齒輪傳動(dòng)設(shè)計(jì)領(lǐng)域中有大量專(zhuān)有名詞和命名實(shí)體需要識(shí)別,人工工作量巨大。對(duì)此,本文提出一種優(yōu)化后的Att-BiLSTM-CRF 模型,大大提升了命名實(shí)體的識(shí)別效率。通過(guò)Python 連接Neo4j 平臺(tái)自動(dòng)構(gòu)建知識(shí)圖譜,并采用基于余弦距離的相似度算法和維特比(Viterbi)最優(yōu)路徑算法來(lái)進(jìn)行關(guān)鍵詞的搜索匹配。測(cè)試結(jié)果表明,系統(tǒng)回答的內(nèi)容準(zhǔn)確率高且能返回部分關(guān)聯(lián)的實(shí)體信息,有效提升了問(wèn)答系統(tǒng)的智能程度。
在面對(duì)大批齒輪傳動(dòng)[5]文件時(shí),工作量最大的是自然語(yǔ)言處理部分。本章首先介紹了分詞算法,然后介紹了基于詞性標(biāo)注的關(guān)鍵詞提取算法,最后介紹了在對(duì)問(wèn)題關(guān)鍵詞進(jìn)行搜索時(shí)采用的基于余弦距離計(jì)算的相似度算法。
在對(duì)齒輪傳動(dòng)設(shè)計(jì)文檔進(jìn)行自然語(yǔ)言分詞時(shí),我們提出了一種融合了多個(gè)匹配方法的復(fù)雜規(guī)則集:首先,分別執(zhí)行正向和逆向最長(zhǎng)匹配,當(dāng)兩者匹配出的詞的數(shù)目不同時(shí),優(yōu)先返回詞數(shù)更少的;當(dāng)出現(xiàn)單字時(shí),優(yōu)先返回單字更少的;單字?jǐn)?shù)也相同,則優(yōu)先返回逆向最長(zhǎng)匹配的結(jié)果。可知正向匹配或逆向匹配的算法復(fù)雜度為O(n),雙向最長(zhǎng)匹配的復(fù)雜度為O(2n),雖然算法復(fù)雜度變高,但是分詞正確率大幅提升。這種規(guī)則的出發(fā)點(diǎn)來(lái)自于語(yǔ)言學(xué)上的啟發(fā),這樣的算法也稱(chēng)為啟發(fā)式算法[6]。
在進(jìn)行關(guān)鍵詞提取時(shí),首先對(duì)分詞后的各詞進(jìn)行詞性標(biāo)注。將詞與詞性分別對(duì)應(yīng)存儲(chǔ)在兩個(gè)不同的列表中,對(duì)詞性列表進(jìn)行檢索,得到所需提取詞性在列表中的位置。然后將詞列表中對(duì)應(yīng)位置的值進(jìn)行輸出,此時(shí)輸出的值便是所需提取的關(guān)鍵詞。本系統(tǒng)所提取的關(guān)鍵詞詞性為動(dòng)詞、名詞以及識(shí)別出的命名實(shí)體和齒輪傳動(dòng)專(zhuān)用名詞。
精確搜索是指當(dāng)輸入的齒輪傳動(dòng)問(wèn)題和知識(shí)圖譜中的節(jié)點(diǎn)內(nèi)容完全一致時(shí)輸出其對(duì)應(yīng)答案。相似度計(jì)算則是需要先設(shè)定相似度閾值,當(dāng)問(wèn)句中提取出的關(guān)鍵詞與齒輪傳動(dòng)知識(shí)圖譜中的關(guān)鍵詞的相似度達(dá)到設(shè)定的閾值時(shí),則判定兩者相似且返回該節(jié)點(diǎn)對(duì)應(yīng)的答案。結(jié)果顯示,基于相似度計(jì)算的查詢(xún)方法使得查詢(xún)結(jié)果的召回率更高。
節(jié)點(diǎn)相似度的計(jì)算方法:假設(shè)有2 個(gè)詞向量分別為x 與y,詞x 向量為(x1,x2,x3,…,xn),詞y 向量為(y1,y2,y3,…,yn)。用余弦相似度計(jì)算公式計(jì)算文本相似度:

對(duì)于目前的智能問(wèn)答系統(tǒng)來(lái)說(shuō),難點(diǎn)主要在于文檔中大量命名實(shí)體的識(shí)別。傳統(tǒng)的BiLSTMCRF 模型是一種常用的基于深度學(xué)習(xí)的句子級(jí)命名實(shí)體識(shí)別方法,然而遇到多語(yǔ)句文檔時(shí),該模型會(huì)出現(xiàn)上下文語(yǔ)句中命名實(shí)體標(biāo)注不一致的情況。針對(duì)該問(wèn)題,本文創(chuàng)新地引入attention 機(jī)制設(shè)計(jì)了一種優(yōu)化后的Att-BiLSTM-CRF 模型,優(yōu)化后的模型利用attention 機(jī)制獲得文檔級(jí)的全局信息,使得文檔中同一命名實(shí)體在多個(gè)獨(dú)立的語(yǔ)句間強(qiáng)制實(shí)現(xiàn)標(biāo)記的一致性。
本節(jié)首先介紹神經(jīng)網(wǎng)絡(luò)模型中使用的特征嵌入,其次介紹了BiLSTM-CRF 模型,然后給出優(yōu)化后的Att-BiLSTM-CRF 模型,最終比較了兩種模型分別在句子級(jí)和文檔級(jí)中命名實(shí)體識(shí)別的性能。
詞嵌入(Word embedding),又稱(chēng)分布式詞向量,可以從大量未標(biāo)記的語(yǔ)料庫(kù)中捕獲單詞的語(yǔ)義和句法信息。與詞袋模型(BOW)表示相比,詞向量具有低維、高密度的優(yōu)點(diǎn)。
特征嵌入就是對(duì)原先的詞嵌入添加多個(gè)特征,進(jìn)行了特征增強(qiáng),本文的方案是在單詞嵌入的基礎(chǔ)上加入字符嵌入作為基本特征。字符特征主要包括部首、前綴和后綴等。與以往傳統(tǒng)的基于人工處理的字符特征提取方法不同,本文讓字符嵌入在訓(xùn)練的同時(shí)進(jìn)行機(jī)器學(xué)習(xí)。首先,系統(tǒng)對(duì)字符嵌入的字符查找表進(jìn)行隨機(jī)初始化處理;然后,將單詞中每一個(gè)字符對(duì)應(yīng)的字符嵌入按正、反兩種順序進(jìn)行排序,形成雙向長(zhǎng)短時(shí)記憶(BiLSTM);最后,將BiLSTM 的前后向序列的串聯(lián)結(jié)果作為單詞的字符級(jí)特征。為了實(shí)現(xiàn)高質(zhì)量的單詞嵌入,對(duì)照現(xiàn)有文檔和語(yǔ)料庫(kù),利用word2vec 工具,以skip-gram 模型作為預(yù)訓(xùn)練的詞嵌入,然后再對(duì)詞嵌入進(jìn)行訓(xùn)練。
本模型是基于BIO 標(biāo)注集對(duì)命名實(shí)體進(jìn)行標(biāo)注,其中,人名首字用B-PER 來(lái)表示,人名非首字用I-PER來(lái)表示;地名首字用B-LOC來(lái)表示,地名非首字用I-LOC 來(lái)表示;組織機(jī)構(gòu)名首字用B-ORG 來(lái)表示,組織機(jī)構(gòu)名非首字用I-ORG 來(lái)表示;該字不屬于命名實(shí)體的一部分時(shí)用O 代表。如圖1 所示。

圖1 命名實(shí)體標(biāo)注Fig.1 Named entity annotation
系統(tǒng)先把輸入的問(wèn)答文本切分成很多句子。假設(shè)某句有xn個(gè)字,字的序列記作:x=(x1,x2,…,xn)。該句子中第i 個(gè)字在已有字典中的id 用xi來(lái)表示,因此能得到句子中每個(gè)字的one-hot 向量,維數(shù)是字典總字?jǐn)?shù)。
如圖2 所示,look-up 層是模型的第1 層。使用2.1 預(yù)訓(xùn)練中的embedding 矩陣將句子中的xi的one-hot 向量從高維度向低維度進(jìn)行映射形成稠密的字向量(character embedding)即xi∈Rd,向量的維度用d 來(lái)表示。在進(jìn)行下一層的輸入之前,需要先設(shè)置dropout 以緩解過(guò)擬合。

圖2 基本的BiLSTM-CRF 模型Fig.2 Basic BiLSTM-CRF model
雙向LSTM 層是模型最主要的第2 層,能實(shí)現(xiàn)自動(dòng)提取句子特征的功能。將需要處理句子中各個(gè)字的char embedding 序列(x1,x2,…,xn)作為雙向LSTM 各個(gè)時(shí)間步的輸入,處理完輸入后,再將正向LSTM 輸出的隱狀態(tài)與反向LSTM 的按位置對(duì)各位置輸出的隱狀態(tài)進(jìn)行拼接:得到完整的隱狀態(tài)序列(h1,h2,…,hn)∈Rn×m。
dropout 設(shè)置好之后,需再接入一個(gè)線(xiàn)性層,是為了實(shí)現(xiàn)隱狀態(tài)向量從m 維到k 維的映射,從而自動(dòng)提取所需的句子特征。標(biāo)注集的標(biāo)簽個(gè)數(shù)用k 表示,記作矩陣P=(p1,p2,…,pn)∈Rn×k。將字xi分類(lèi)到第j 個(gè)標(biāo)簽的打分值,可以用pi∈Rk的每一維pij來(lái)表示。如果對(duì)P 再進(jìn)行Softmax 處理(對(duì)各個(gè)位置獨(dú)立進(jìn)行k 類(lèi)分類(lèi)),那么對(duì)各個(gè)位置進(jìn)行標(biāo)注時(shí)就不能再利用標(biāo)注過(guò)的信息,因此本文計(jì)劃接入一個(gè)CRF 層來(lái)實(shí)現(xiàn)標(biāo)注功能。
CRF 層作為模型的第3 層,主要是為了實(shí)現(xiàn)句子級(jí)的序列標(biāo)注功能。CRF 層的參數(shù)是一個(gè)(k+2)×(k+2)的矩陣A,從第i 個(gè)標(biāo)簽到第j 個(gè)標(biāo)簽的轉(zhuǎn)移得分用Aij來(lái)表示。因?yàn)槔昧舜饲耙褬?biāo)注過(guò)的標(biāo)簽,所以要為句子首部添加一個(gè)起始狀態(tài),為句子尾部添加一個(gè)終止?fàn)顟B(tài),因此矩陣A 的行數(shù)和列數(shù)加2。如果把一個(gè)長(zhǎng)度等于句子長(zhǎng)度的標(biāo)簽序列記做y=(y1,y2,…,yn),那么模型根據(jù)句子x 的標(biāo)簽得出y 的打分為

已知各個(gè)位置的打分之和等于整個(gè)序列的打分。但是每個(gè)位置的打分是由2 部分決定的,LSTM 輸出的pi是其中一部分,CRF 的轉(zhuǎn)移矩陣A 是另外一部分。因此可以利用Softmax 函數(shù)得到歸一化后的概率

模型通過(guò)最大化對(duì)數(shù)似然函數(shù)進(jìn)行訓(xùn)練,式(4)給出了對(duì)一個(gè)訓(xùn)練樣本(x,yx)的對(duì)數(shù)似然函數(shù)

模型使用動(dòng)態(tài)規(guī)劃的維特比(Viterbi)算法(一種動(dòng)態(tài)規(guī)劃算法用于尋找最有可能產(chǎn)生觀(guān)測(cè)事件序列的-維特比路徑-隱含狀態(tài)序列)在預(yù)測(cè)(解碼)時(shí),求解最優(yōu)路徑

與大多數(shù)傳統(tǒng)的機(jī)器學(xué)習(xí)方法相似,上述的BiLSTM-CRF 方法是一種句子級(jí)的命名實(shí)體識(shí)別方法,當(dāng)遇到多語(yǔ)句文檔時(shí),模型會(huì)出現(xiàn)實(shí)體標(biāo)注不一致的情況。為了解決該問(wèn)題,以往研究通常采用基于規(guī)則的后處理來(lái)增強(qiáng)標(biāo)簽一致性,然而如果模型一開(kāi)始就錯(cuò)誤地標(biāo)記了實(shí)體,則后處理會(huì)引入更多誤差,因此本文嘗試引入attention機(jī)制設(shè)計(jì)了一個(gè)Att-BiLSTM-CRF 模型,新模型利用attention 機(jī)制獲得文檔級(jí)的全局信息,使得同一命名實(shí)體在文檔中強(qiáng)制實(shí)現(xiàn)標(biāo)記的一致性。模型的架構(gòu)如圖3 所示。

圖3 優(yōu)化后的Att-BiLSTM-CRF 模型Fig.3 Optimized Att-BiLSTM-CRF model
假設(shè)輸入文檔有m 個(gè)句子:D=(X1… Xt…Xm),每個(gè)句子用(x1…xt…xn)表示,n 為句子的單詞數(shù),我們定義N 為文檔總字?jǐn)?shù)。同2.2 節(jié)的BiLSTM-CRF 模型一樣,先將2.1 節(jié)的詞向量作為BiLSTM 層輸入,然后在BiLSTM 層上建一個(gè)新的attention 層,用來(lái)在文檔級(jí)捕獲相似的單詞。在attention 層,本文引入矩陣A 來(lái)計(jì)算當(dāng)前目標(biāo)詞與文檔中所有詞的相似度。xt表示第t 個(gè)當(dāng)前目標(biāo)詞,xj表示文檔中的第j 個(gè)已有詞。
矩陣A 中相似度權(quán)重值αt,j的定義如式(6):

然后計(jì)算BiLSTM 層輸出的hj與αt,j的加權(quán)和作為文檔級(jí)的全局向量Gt

接下來(lái),將文檔級(jí)全局向量和目標(biāo)單詞的BiLSTM 輸出連接為向量[Gt;ht],以反饋傳送到tanh 函數(shù)以產(chǎn)生attention 層的輸出

再然后,注意層上的tanh 層用于預(yù)測(cè)具有每個(gè)可能標(biāo)簽的單詞的置信度得分,作為神經(jīng)網(wǎng)絡(luò)的輸出分?jǐn)?shù)

最后,與BiLSTM-CRF 模型類(lèi)似,加入CRF層來(lái)解碼所有可能的路徑中最佳路徑。對(duì)于輸入文檔D,文檔分?jǐn)?shù)以及標(biāo)記路徑y(tǒng) 由轉(zhuǎn)換分?jǐn)?shù)和神經(jīng)網(wǎng)絡(luò)分?jǐn)?shù)的總和給出

在訓(xùn)練階段,該模型的目標(biāo)是使正確標(biāo)簽序列的對(duì)數(shù)概率最大化,模型通過(guò)最大化對(duì)數(shù)似然函數(shù)進(jìn)行訓(xùn)練。與式(2)相比,式(10)得出的是文檔級(jí)別的分?jǐn)?shù),而不是句子級(jí)別的分?jǐn)?shù)。接下來(lái),像BiLSMT-CRF 模型一樣,使用softmax 函數(shù)獲得路徑的條件概率。然后用維特比(Viterbi)算法,在預(yù)測(cè)(解碼)時(shí)求解最優(yōu)路徑。
在以前的工作中,大多數(shù)方法都將NER(Named Entity Recognition,命名實(shí)體識(shí)別)視為一個(gè)句子級(jí)的任務(wù),這通常伴隨著2.3 節(jié)中討論的實(shí)體標(biāo)記不一致問(wèn)題。相反,本文的Att-BiLSTM-CRF 模型是通過(guò)引入文檔級(jí)的attention機(jī)制來(lái)解決這個(gè)問(wèn)題的。
精確度(Precision)、召回率(Recall)和F1-score是命名實(shí)體識(shí)別中經(jīng)常使用的判斷標(biāo)準(zhǔn)。P(正確)代表所有樣本中的正確樣本,N(錯(cuò)誤)表示所有樣本中的錯(cuò)誤樣本。TP(真正確)是預(yù)測(cè)為正確的正確樣本數(shù),F(xiàn)N(假錯(cuò)誤)是預(yù)測(cè)為錯(cuò)誤的正確樣本數(shù)。FP(假正確)是預(yù)測(cè)為正確的錯(cuò)誤樣本數(shù),TN(真錯(cuò)誤)是預(yù)測(cè)為錯(cuò)誤的錯(cuò)誤樣本數(shù)。
精確度是所有預(yù)測(cè)為正確的樣本中真正確樣本的比例,定義為

召回率是正確性樣本中真正確樣本的比例,由式(12)得出

F1-score 是精確度和召回率的調(diào)和平均值,定義為

在模型測(cè)試實(shí)驗(yàn)中,我們比較了兩種模型分別在文檔級(jí)和句子級(jí)中的表現(xiàn)。測(cè)試所用的語(yǔ)料庫(kù)是人工構(gòu)建的,大小為19 469 個(gè)句子,所有模型都只使用單詞和字符嵌入作為輸入。各種模型在語(yǔ)料庫(kù)上的性能比較如表1 所示。

表1 各模型的測(cè)試結(jié)果Tab.1 Test results of models
由表1 可知,將文檔直接用作模型的輸入實(shí)現(xiàn)了文檔級(jí)BiLSTM-CRF,然而文檔級(jí)BiLSTMCRF 的F-score 并不高于句子級(jí)的效果(89.44%對(duì)89.51%),主要原因是LSTM 模型是一個(gè)有偏模型。盡管LSTM 可以解決門(mén)控機(jī)制帶來(lái)的長(zhǎng)時(shí)間滯后問(wèn)題,但由于后面的單詞比前面的單詞更占優(yōu)勢(shì),這導(dǎo)致了長(zhǎng)句的識(shí)別困難,因此簡(jiǎn)單地從句子擴(kuò)展到文檔作為模型的輸入來(lái)捕獲全局文檔級(jí)信息是不可行的。
將句子直接輸入模型實(shí)現(xiàn)句子級(jí)Att-BiLSTM-CRF。與句子級(jí)BiLSTM-CRF 模型相比,它可以獲得更高的F-score,但低于文檔級(jí)的Att-BiLSTM-CRF 模型(F-score 分別為89.62%和89.51%和90.45%),這說(shuō)明本文的attention機(jī)制即使在句子層面上也能學(xué)習(xí)到更豐富的上下文信息。
本系統(tǒng)對(duì)齒輪傳動(dòng)相關(guān)的問(wèn)答文件進(jìn)行處理后構(gòu)建對(duì)應(yīng)的齒輪傳動(dòng)知識(shí)圖譜,并且擁有良好的人機(jī)交互界面,
整個(gè)問(wèn)答系統(tǒng)分為3 部分,系統(tǒng)設(shè)計(jì)架構(gòu)如圖4 所示。

圖4 問(wèn)答系統(tǒng)架構(gòu)圖Fig.4 Architecture of question answering system
第1 部分的用戶(hù)交互模塊是用戶(hù)在客戶(hù)端所看到的人機(jī)交互界面,用戶(hù)在設(shè)計(jì)好的GUI 界面上輸入齒輪傳動(dòng)設(shè)計(jì)的相關(guān)問(wèn)題。
第2 部分的系統(tǒng)內(nèi)部功能模塊以第3 部分中知識(shí)圖譜為基礎(chǔ)。在接受第1 部分輸入的用戶(hù)問(wèn)題后,系統(tǒng)內(nèi)部功能模塊會(huì)對(duì)問(wèn)句進(jìn)行自然語(yǔ)言處理[8]。首先會(huì)對(duì)問(wèn)句進(jìn)行分詞,然后對(duì)分詞后的結(jié)果進(jìn)行實(shí)體識(shí)別,再對(duì)處理后的結(jié)果進(jìn)行關(guān)鍵詞提取操作,最后將處理后的問(wèn)題關(guān)鍵詞導(dǎo)入Cypher 查詢(xún)語(yǔ)句中[9],在Neo4j 平臺(tái)進(jìn)行查詢(xún)得到用戶(hù)求索問(wèn)題的最終答案。
第3 部分知識(shí)圖譜模塊是用來(lái)存儲(chǔ)齒輪傳動(dòng)設(shè)計(jì)相關(guān)的知識(shí)圖譜,主要根據(jù)對(duì)齒輪傳動(dòng)相關(guān)問(wèn)答文件的處理來(lái)構(gòu)建知識(shí)圖譜。
目前國(guó)內(nèi)很多搜索平臺(tái)采用的是以知識(shí)庫(kù)的形式去存儲(chǔ)數(shù)據(jù),這種數(shù)據(jù)具有形式單一,數(shù)據(jù)間關(guān)聯(lián)度低,數(shù)據(jù)挖掘程度低的缺點(diǎn),本系統(tǒng)采用的是基于Neo4j 平臺(tái)的圖數(shù)據(jù)庫(kù)。Neo4j 是一種性能十分優(yōu)越且獨(dú)特的NOSQL 類(lèi)型的圖數(shù)據(jù)庫(kù)[10]。同時(shí),Neo4j 可視化窗口做得非常優(yōu)秀且其特有的Cypher 查詢(xún)語(yǔ)言很直觀(guān),在構(gòu)建適當(dāng)?shù)牟樵?xún)計(jì)劃的情況下,Neo4j 的查詢(xún)效率會(huì)很高。
第1 步是知識(shí)獲取。知識(shí)獲取大部分來(lái)源于Word 等格式的齒輪傳動(dòng)相關(guān)問(wèn)答的文檔,通過(guò)編寫(xiě)的程序便可自動(dòng)完成;第2 步是知識(shí)融合。主要是SPO 三元組抽取,對(duì)不同格式的數(shù)據(jù)采用不同的技術(shù)進(jìn)行提取。然后開(kāi)始進(jìn)行知識(shí)融合,目的是將不同數(shù)據(jù)源獲取的知識(shí)進(jìn)行融合構(gòu)建數(shù)據(jù)之間的關(guān)聯(lián)。最終可以將知識(shí)圖譜可視化,讓用戶(hù)在檢索時(shí)能看到神經(jīng)網(wǎng)絡(luò)的檢索過(guò)程。

圖5 知識(shí)處理過(guò)程Fig.5 Process of knowledge processing
先將提取好的節(jié)點(diǎn)、邊、節(jié)點(diǎn)以三元組形式存儲(chǔ)到Neo4j 圖數(shù)據(jù)庫(kù)里。知識(shí)融合環(huán)節(jié)會(huì)將已創(chuàng)建三元組中的相同節(jié)點(diǎn)進(jìn)行融合,根據(jù)節(jié)點(diǎn)內(nèi)容進(jìn)行計(jì)數(shù),篩選出重復(fù)節(jié)點(diǎn),然后刪除重復(fù)節(jié)點(diǎn)只保留一個(gè),并將原有的三元組關(guān)系移植到僅剩的節(jié)點(diǎn)上。
構(gòu)建好的部分知識(shí)圖譜如圖6 所示。

圖6 齒輪傳動(dòng)設(shè)計(jì)知識(shí)圖譜Fig.6 Knowledge graph of gear transmission design
系統(tǒng)采用的是基于easygui.py 設(shè)計(jì)的GUI 界面,有問(wèn)題輸入和問(wèn)題輸出兩個(gè)界面。在問(wèn)題輸入界面中輸入問(wèn)題,確認(rèn)后經(jīng)后端處理會(huì)返回答案至輸出文本框。問(wèn)答界面及問(wèn)題測(cè)試的效果圖如圖7、圖8 所示。

圖7 問(wèn)題輸入界面Fig.7 Interface of question input

圖8 答案輸出界面Fig.8 Interface of answer output
構(gòu)建完成的齒輪傳動(dòng)設(shè)計(jì)相關(guān)的知識(shí)圖譜數(shù)據(jù)庫(kù)中擁有299 對(duì)問(wèn)答數(shù)據(jù)以及299 條邊關(guān)系。接下來(lái)設(shè)計(jì)系統(tǒng)的相關(guān)測(cè)試用例,然后對(duì)測(cè)試結(jié)果進(jìn)行統(tǒng)計(jì)與分析。
當(dāng)問(wèn)句無(wú)干擾,測(cè)試用例為299 個(gè)時(shí),測(cè)試的準(zhǔn)確率達(dá)到了98.33%;在為每個(gè)問(wèn)題添加了十多個(gè)類(lèi)似問(wèn)題后(即299 個(gè)答案對(duì)應(yīng)4 995 個(gè)問(wèn)題)繼續(xù)進(jìn)行測(cè)試,有干擾的情況下,測(cè)試準(zhǔn)確率也能達(dá)到80%以上。整體的測(cè)試結(jié)果見(jiàn)表2。

表2 問(wèn)答系統(tǒng)測(cè)試結(jié)果Tab.2 Test results of question answering system
隨著互聯(lián)網(wǎng)+熱潮的不斷席卷,問(wèn)答系統(tǒng)與各行各業(yè)的結(jié)合也更加密切,目前市面上開(kāi)發(fā)了很多App 搜索和瀏覽器搜索,這類(lèi)搜索工具的搜索結(jié)果大多十分繁亂,需要人為的二次辨識(shí)和篩選,用戶(hù)體驗(yàn)很不友好。而且這類(lèi)搜索引擎的數(shù)據(jù)多以關(guān)系數(shù)據(jù)庫(kù)的形式存儲(chǔ),信息關(guān)聯(lián)度不強(qiáng),導(dǎo)致信息利用率低。本系統(tǒng)的設(shè)計(jì)是基于機(jī)械學(xué)科的知識(shí)圖譜開(kāi)展的,并以齒輪傳動(dòng)為例進(jìn)行了說(shuō)明。本文提出的一種基于深度學(xué)習(xí)和優(yōu)化后Att-BiLSTM-CRF 模型的問(wèn)答系統(tǒng)構(gòu)建方法,解決了目前市場(chǎng)上針對(duì)機(jī)械專(zhuān)業(yè)知識(shí)問(wèn)答結(jié)果稀少的問(wèn)題。
目前該系統(tǒng)的缺點(diǎn)在于構(gòu)建的齒輪傳動(dòng)知識(shí)圖譜不夠完善,機(jī)械詞典的詞數(shù)較少,這些導(dǎo)致實(shí)際的系統(tǒng)模型達(dá)不到預(yù)計(jì)的準(zhǔn)確率。隨著知識(shí)圖譜規(guī)模的增加,問(wèn)答系統(tǒng)可以回答問(wèn)題的種類(lèi)將日漸增多,準(zhǔn)確度也會(huì)獲得明顯的提高。同時(shí),自然語(yǔ)言處理算法的優(yōu)化和知識(shí)圖譜的知識(shí)挖掘是后續(xù)的主要的研究和改進(jìn)方向。