本發(fā)明涉及自然語言處理領(lǐng)域,尤其涉及一種句子相似度計算方法和系統(tǒng)。
背景技術(shù):
相似度計算是自然語言處理的基礎(chǔ)工作。目前句子相似度計算方法主要有4類,分別是基于詞重疊的方法、基于語料庫統(tǒng)計的方法、基于語言學(xué)的方法和混合方法。
基于詞重疊的方法是用一組通過兩個句子所共有的一些詞匯量來計算句子的相似度的度量方法。Jacob等[4]提出Jaccard相似系數(shù)法,該方法計算兩個句子中詞語交集與兩句子中詞語并集的比值來計算句子的相似度。Metzler等[5]使用逆文檔頻率(IDF)作為兩個句子中均出現(xiàn)的詞語的權(quán)重,改進(jìn)計算結(jié)果。Banerjee等[6]基于短語的長度和它們的使用頻率呈Zipfian分布的特點(diǎn)來設(shè)計基于短語的句子相似度計算方法。
基于語料庫的方法將句子對中出現(xiàn)的詞語集合用來作為特征集,將基于語料庫的向量的余弦夾角值作為相似度。Landauer等[7]通過分析一個大型的自然語言語料庫來統(tǒng)計關(guān)鍵詞的TF-IDF值形成句子語義向量,用向量的余弦夾角來計算句子語義相似度。Lund等[8]統(tǒng)計詞匯之間的共現(xiàn)性得到高維向量空間來計算句子或短文檔相似度。
基于語言學(xué)的方法利用詞匯間的語義關(guān)系及其語法成分來確定句子的相似度。Kashyap等[9]基于詞語語義相似度度量句子間的相似度,考慮單詞具有不同的區(qū)分能力來進(jìn)行句子向量的相似度計算方法。Malik等[10]將組成句子對的詞之間的相似度的總和的最大值被句子長度歸一化所得值作為句子相似度值。
混合方法是基于以上方法的混合方法。Chukfong等[11-14]基于以上多種方法實(shí)現(xiàn)句子相似度計算。
現(xiàn)在基于結(jié)構(gòu)化表示的句子相似度計算工作比較少,Aliaksei[15]提出了一種基于簡單結(jié)構(gòu)化表示的計算方法。
現(xiàn)有句子相似度計算專利:
一種基于語義的相似度計算方法和裝置:此發(fā)明提供了一種基于語義的相似度計算方法和裝置,其中方法包括:獲取待比較的句子S1和S2;分別對所述S1和S2進(jìn)行分詞;對所述分詞后得到的各詞語中存在語義映射的詞語映射為歸一化的表述;計算經(jīng)步驟C處理后的S1和S2之間的相似度Sim(S1,S2)。本發(fā)明通過將句子中存在語義映射的詞語映射到歸一化的表述,并將其融入相似度的計算,從而在語義上體現(xiàn)句子之間的相似度而不僅僅是字面上的相似程度,提高了計算句子之間相似度的準(zhǔn)確性。
句子相似度計算方法及裝置:此發(fā)明提供一種準(zhǔn)確度高的句子相似度計算方法及裝置。該句子相似度計算方法,包括:針對第一句子和第二句子確定重復(fù)詞、第一孤存詞和第二孤存詞,其中,重復(fù)詞既屬于第一句子又屬于第二句子,第一孤存詞僅屬于第一句子,第二孤存詞僅屬于第二句子;根據(jù)所有第一孤存詞和所有第二孤存詞,計算孤存詞相似度總貢獻(xiàn)值G總,其中,G總≥0,并且所有第一孤存詞與所有第二孤存詞之間的相似程度越高,G總數(shù)值越大;根據(jù)公式計算SIM(A,B),其中SIM(A,B)表示第一句子和第二句子的句子相似度,G總表示第一句子對應(yīng)的第一句向量,G總表示第二句子對應(yīng)的第二句向量。
一種句子相似度的計算方法及系統(tǒng):此發(fā)明提供了一種句子相似度的計算方法及系統(tǒng),通過利用word2vec算法,對預(yù)先建立的語料庫進(jìn)行訓(xùn)練,得到語料庫中所有詞語的向量;對待計算相似度的兩個句子進(jìn)行智能分詞,并從語料庫中查找出所述第一句子和第二句子中各個分詞所對應(yīng)的向量,依次計算第一句子每個分詞與第二句子各個分詞之間的相似度;獲取分詞之間的相似度超過預(yù)定閾值的兩組分詞集合,并根據(jù)所述每組分詞位于句子位置的偏移量,計算每組分詞在整個句子中相似度的貢獻(xiàn)值;將兩個句子中分詞的貢獻(xiàn)值相加,得到句子之間的相似度。
現(xiàn)存的大多數(shù)句子相似度計算方法使用大量平面相似性特征來表示一對句子的相似程度。僅使用平面特征向量代表句子對相似度的問題是其表征性較弱。
最新的一些相似度計算方法,依賴于詞的搭配和從大數(shù)據(jù)中獲得的知識(維基百科等)來進(jìn)行相似度計算,不考慮句子句法等結(jié)構(gòu)化信息。假設(shè)給定兩個句子S1和S2,這些方法一般會做如下處理:第一步,S1中的每個單詞將會與在S2中與它相似度最高的單詞配對。第二步,所有的配對詞間的相似度累加,并通過S1的句長對相似度進(jìn)行規(guī)范化處理,進(jìn)而得到句子S1與S2的相似度。
現(xiàn)分析一對句子S1:Tigers hit lions S2:Lions hit tigers。通過上述提到的方法,S1中的每個單詞會在S2中找到相似度極高的單詞(在本例中即為相同的單詞)配對,從而相似度計算結(jié)果會認(rèn)為則兩句句子含義相同。如圖1所示,分析S1、S2的依存關(guān)系樹得出它們的施事者和受事者顛倒。雖然兩句句子中出現(xiàn)的單詞相同,但是通過分析其依存關(guān)系樹,可以得出它們的含義并不同。
句法結(jié)構(gòu)等結(jié)構(gòu)化信息是自然語言處理應(yīng)用里非常重要的信息。但是,如何在各種任務(wù)中利用結(jié)構(gòu)化信息卻是普遍存在的問題。在使用平面特征向量表示結(jié)構(gòu)化特征時,當(dāng)結(jié)構(gòu)化特征轉(zhuǎn)化為平面特征時,可能會丟失部分有效信息。
有鑒于上述的缺陷,本設(shè)計人,積極加以研究創(chuàng)新,在基于簡單結(jié)構(gòu)化表示的計算方法基礎(chǔ)上,提出一種新的結(jié)構(gòu)化表示方法,用于句子相似度計算,以體現(xiàn)句子語法、語義、依存關(guān)系。
術(shù)語解釋:
皮爾遜相關(guān)系數(shù)(Pearson Correlation Coefficient):用于度量兩個變量X和Y之間的相關(guān)(線性相關(guān)),其值介于-1與1之間。在自然科學(xué)領(lǐng)域中,該系數(shù)廣泛用于度量兩個變量之間的相關(guān)程度。
支持向量回歸模型(Support Vector Regression,簡稱SVR):主要是通過升維后,在高維空間中構(gòu)造線性決策函數(shù)來實(shí)現(xiàn)線性回歸,用e不敏感函數(shù)時,其基礎(chǔ)主要是e不敏感函數(shù)和核函數(shù)算法。若將擬合的數(shù)學(xué)模型表達(dá)多維空間的某一曲線,則根據(jù)e不敏感函數(shù)所得的結(jié)果,就是包括該曲線和訓(xùn)練點(diǎn)的“e管道”。在所有樣本點(diǎn)中,只有分布在“管壁”上的那一部分樣本點(diǎn)決定管道的位置。這一部分訓(xùn)練樣本稱為“支持向量”。為適應(yīng)訓(xùn)練樣本集的非線性,傳統(tǒng)的擬合方法通常是在線性方程后面加高階項。此法誠然有效,但由此增加的可調(diào)參數(shù)未免增加了過擬合的風(fēng)險。支持向量回歸算法采用核函數(shù)解決這一矛盾。用核函數(shù)代替線性方程中的線性項可以使原來的線性算法“非線性化”,即能做非線性回歸。與此同時,引進(jìn)核函數(shù)達(dá)到了“升維”的目的,而增加的可調(diào)參數(shù)是過擬合依然能控制。
核方法(Kernel Methods):隱含著一個從低維空間到高維空間的映射,而這個映射可以把低維空間中線性不可分的兩類點(diǎn)變成線性可分的。用于支持向量機(jī)。
樹核方法(Tree Kernel Methods):通過直接計算兩個實(shí)體關(guān)系對象(即句法樹)的相同子樹的個數(shù)來比較相似度。
命名實(shí)體識別(Named Entity Recognition,簡稱NER):又稱作“專名識別”,是指識別文本中具有特定意義的實(shí)體,主要包括人名、地名、機(jī)構(gòu)名、專有名詞等。
WordNet:是由普林斯頓大學(xué)的心理學(xué)家,語言學(xué)家和計算機(jī)工程師聯(lián)合設(shè)計的一種基于認(rèn)知語言學(xué)的英語詞典。它不是光把單詞以字母順序排列,而且按照單詞的意義組成一個“單詞的網(wǎng)絡(luò)”。它是一個覆蓋范圍寬廣的英語詞匯語義網(wǎng)。名詞,動詞,形容詞和副詞各自被組織成一個同義詞的網(wǎng)絡(luò),每個同義詞集合都代表一個基本的語義概念,并且這些集合之間也由各種關(guān)系連接。
樹:樹狀圖是一種數(shù)據(jù)結(jié)構(gòu),它是由n(n>=1)個有限節(jié)點(diǎn)組成一個具有層次關(guān)系的集合。把它叫做“樹”是因?yàn)樗雌饋硐褚豢玫箳斓臉?,也就是說它是根朝上,而葉朝下的。它具有以下的特點(diǎn):每個節(jié)點(diǎn)有零個或多個子節(jié)點(diǎn);沒有父節(jié)點(diǎn)的節(jié)點(diǎn)稱為根節(jié)點(diǎn);每一個非根節(jié)點(diǎn)有且只有一個父節(jié)點(diǎn);除了根節(jié)點(diǎn)外,每個子節(jié)點(diǎn)可以分為多個不相交的子樹。
N-gram模型:N-Gram是大詞匯連續(xù)識別中常用的一種語言模型,模型利用上下文中相鄰詞間的搭配信息,可以計算出具有最大概率的句子。
參考文獻(xiàn)
[1]Culotta A,Sorensen J.Dependency tree kernels for relation extraction[C]//Meeting of the Association for Computational Linguistics,21-26July,2004,Barcelona,Spain.2010:423--429.
[2]Bunescu R C,Mooney R J.A shortest path dependency kernel for relation extraction[C]//Conference on Human Language Technology and Empirical Methods in Natural Language Processing.Association for Computational Linguistics,2005:724-731.
[3]Zhang M,Zhang J,Su J,et al.A Composite Kernel to Extract Relations between Entities with Both Flat and Structured Features.[C]//International Conference on Computational Linguistics and Meeting of the Association for Computational Linguistics,17-21 July.2006,Sydney,Australia.
[4]Jacob B,Benjamin C.Calculating the Jaccard Similarity Coefficient with Map Reduce for Entity Pairs in Wikipedia[OL].http://www.infosci.cornell.edu/weblab/papers/Bank2008.pdf,2008
[5]Metzler D,Bernstein Y,Croft W B,et al.Similarity measures for tracking information flow[C]//ACM CIKM International Conference on Information and Knowledge Management,Bremen,Germany,October 31-November.2005:517-524.
[6]Banerjee S,Pedersen T.Extended gloss overlap as a measure of semantic relatedness[c]∥Proceedings of International Joint Conference on Artificial Intelligence.2003:805-810
[7]Landauer T K,F(xiàn)oltz P W,Laham D.Introduction to Latent Semantic Analysis[J].Discourse Processes,1998,25(2/3):259-284
[8]Lund K,Burgess C.Producing high-dimensional semantic spaces from lexical co-occurrence[J].Behavior Research Methods,Instruments&Computers,1996,28(2):203-208
[9]Kashyap A,Han L,Yus R,et al.Robust semantic text similarity using LSA,machine learning,and linguistic resources[J].Language Resources&Evaluation,2016,50(1):125-161.
[10]Malik R,Subramaniam L V,Kaushik S.Automatically Selecting Answer Templates to Respond to Customer Emails.[C]//IJCAI 2007,Proceedings of the,International Joint Conference on Artificial Intelligence,Hyderabad,India,January.2007:1659-1664.
[11]Jaffe E,Jin L,King D,et al.AZMAT:Sentence Similarity Using Associative Matrices[C]//International Workshop on Semantic Evaluation.2015.
[12]Haque R,Naskar S K,Way A,et al.Sentence Similarity-Based Source Context Modelling in PBSMT[C]//International Conference on Asian Language Processing,Ialp 2010,Harbin,Heilongjiang,China,28-30December.2010:257-260.
[13]Li R,Li S,Zhang Z.The Semantic Computing Model of Sentence Similarity Based on Chinese FrameNet[C]//2009IEEE/WIC/ACM International Conference on Web Intelligence and Intelligent Agent Technology.IEEE Computer Society,2009:255-258.
[14]Liu Y,Liu Q.Chinese Sentence Similarity Based on Multi-feature Combination[C]//Intelligent Systems,2009.GCIS'09.WRI Global Congress on.2009:14-19.
Severyn A,Nicosia M,Moschitti A.Learning Semantic Textual Similarity with Structural Representations[C]//Proceedings of the 51st Annual Meeting of the Association for Computational Linguistics.Sofia,2013:714-718.
技術(shù)實(shí)現(xiàn)要素:
為解決上述技術(shù)問題,本發(fā)明的目的是提供一種句子相似度計算方法和系統(tǒng),是基于淺層句法樹,提出的新的句法樹結(jié)構(gòu),使結(jié)構(gòu)化特征更能表現(xiàn)句子的句法語義等信息,并把該句法樹應(yīng)用于句子相似度計算,以獲得良好的性能。
本發(fā)明的句子相似度計算方法,其特征在于,包括步驟:
S10、對句子對訓(xùn)練文本和句子對測試文本中所有句子調(diào)用詞性標(biāo)注、句法分析、命名實(shí)體識別、WordNet識別工具分別進(jìn)行詞性標(biāo)注、句法分析、命名實(shí)體識別、WordNet識別獲得詞性標(biāo)注訓(xùn)練文本、短語訓(xùn)練文本、命名實(shí)體訓(xùn)練文本、WordNet訓(xùn)練文本和詞性標(biāo)注測試文本、短語測試文本、命名實(shí)體測試文本、WordNet測試文本,
其中,所述句子對訓(xùn)練文本和句子對測試文本為每行含有兩句需要計算相似度的句子的文本;
S20、基于詞性標(biāo)注訓(xùn)練文本、短語訓(xùn)練文本、命名實(shí)體訓(xùn)練文本、WordNet訓(xùn)練文本獲得淺層句法樹訓(xùn)練文本,
基于詞性標(biāo)注測試文本、短語測試文本、命名實(shí)體測試文本、WordNet測試文本獲得淺層句法樹測試文本;
S30、基于句子對訓(xùn)練文本對每行一對句子獲得多個平面特征,得到平面特征訓(xùn)練文本,將平面特征訓(xùn)練文本,淺層句法樹訓(xùn)練文本與句子對人工評分訓(xùn)練文本結(jié)合得到淺層句法樹特征訓(xùn)練文本,
基于句子對測試文本對每行一對句子獲得多個平面特征,得到平面特征測試文本,將平面特征測試文本與淺層句法樹測試文本結(jié)合得到淺層句法樹特征測試文本;
S40、使用SVR模型基于淺層句法樹特征訓(xùn)練文本進(jìn)行訓(xùn)練,得到訓(xùn)練模型,由訓(xùn)練模型和淺層句法樹特征測試文本獲得相似度計算結(jié)果文本。
進(jìn)一步的,所述步驟S10的具體過程如下:
S101、對句子對訓(xùn)練文本中所有句子使用詞性標(biāo)注工具(如:Stanford postagger)獲得句子中每個單詞的詞性,獲得對應(yīng)的詞性標(biāo)注訓(xùn)練文本;
對句子對測試文本進(jìn)行相同處理獲得詞性標(biāo)注測試文本;
S102、對句子對訓(xùn)練文本中所有句子使用句法分析工具(如:Stanford parser)獲得每個單詞所屬的短語,獲得短語訓(xùn)練文本;
對句子對測試文本進(jìn)行相同處理獲得短語測試文本;
S103、基于句子對訓(xùn)練文本使用命名實(shí)體識別工具(如SST-light tagger)得到單詞所屬的命名實(shí)體識別結(jié)果,獲得命名實(shí)體訓(xùn)練文本;
對句子對測試文本進(jìn)行相同處理獲得命名實(shí)體測試文本;
S104、基于句子對訓(xùn)練文本使用WordNet識別工具(如:SST-light tagger)獲得單詞所屬的WordNet上義(WNSS),如果沒有WordNet上義用空格表示,得到WordNet訓(xùn)練文本;
對句子對測試文本進(jìn)行相同處理獲得WordNet測試文本。
進(jìn)一步的,所述步驟S20的具體過程如下:
S201、根據(jù)詞性標(biāo)注訓(xùn)練文本,為句子對訓(xùn)練文本中的每個句子構(gòu)造淺層句法樹,得到基本淺層句法樹訓(xùn)練文本;由句子對測試文本和詞性標(biāo)注測試文本得到基本淺層句法樹測試文本;
其中,淺層句法樹是是深度為3的樹,構(gòu)造方法如下:把一個句子中的詞語生成為最底層的葉子節(jié)點(diǎn);把每個葉子節(jié)點(diǎn)對應(yīng)詞的詞性作為每個葉子節(jié)點(diǎn)的父節(jié)點(diǎn);最后,設(shè)置所有的詞性節(jié)點(diǎn)的父節(jié)點(diǎn)為根節(jié)點(diǎn);
S202、根據(jù)短語訓(xùn)練文本,為基本淺層句法樹訓(xùn)練文本中的每個句子構(gòu)造更深一層的淺層句法樹獲得短語淺層句法樹訓(xùn)練文本;基于短語測試文本和基本淺層句法樹測試文本獲得短語淺層句法樹測試文本;
其中,更深一層的淺層句法樹是深度為4的樹,構(gòu)造方法如下:由句子短語識別結(jié)果,獲得屬于同一短語單詞的信息;將屬于同一短語的單詞葉節(jié)點(diǎn)的詞性父節(jié)點(diǎn)上連接到同一chunker節(jié)點(diǎn);斷開根節(jié)點(diǎn)與詞性節(jié)點(diǎn)之間的聯(lián)系,將chunker節(jié)點(diǎn)連接到對應(yīng)的詞性節(jié)點(diǎn);最后,設(shè)置所有的詞性節(jié)點(diǎn)的父節(jié)點(diǎn)為根節(jié)點(diǎn);
S203、基于短語淺層句法樹訓(xùn)練文本、命名實(shí)體訓(xùn)練文本和WordNet訓(xùn)練文本獲得語義淺層句法樹訓(xùn)練文本;基于短語淺層句法樹測試文本、命名實(shí)體測試文本和WordNet測試文本獲得語義淺層句法樹測試文本;
語義淺層句法樹訓(xùn)練文本是在短語淺層句法樹訓(xùn)練文本上加入語義信息,具體方法如下:如果短語淺層句法樹訓(xùn)練文本中的一個單詞在命名實(shí)體訓(xùn)練文本和WordNet訓(xùn)練文本中有NER或WNSS信息,將包含該單詞的chunker節(jié)點(diǎn)的句法信息修改成NER或WNSS信息;如果一個詞組節(jié)點(diǎn)中含有多個單詞符合上述情況,使用詞組內(nèi)最后一個單詞的NER和WNSS信息;
S204、基于語義淺層句法樹訓(xùn)練文本刪除定冠詞和連詞相關(guān)節(jié)點(diǎn),獲得修剪淺層句法樹訓(xùn)練文本;基于語義淺層句法樹測試文本刪除定冠詞和連詞相關(guān)節(jié)點(diǎn),獲得修剪淺層句法樹測試文本;
本發(fā)明在結(jié)構(gòu)化表示中裁減掉定冠詞和連詞以及他們的父親節(jié)點(diǎn)(詞性節(jié)點(diǎn)),減少非重要信息對計算結(jié)果的影響,在淺層句法樹中如果某葉子節(jié)點(diǎn)代表的單詞是冠詞或者連詞,刪除該葉子節(jié)點(diǎn),及其父親節(jié)點(diǎn)(詞性節(jié)點(diǎn))和父親的父親節(jié)點(diǎn)(chunker節(jié)點(diǎn));
S205、基于修剪淺層句法樹訓(xùn)練文本,將一對句子的淺層句法樹相關(guān)部分關(guān)聯(lián)起來獲得淺層句法樹訓(xùn)練文本;基于修剪淺層句法樹測試文本,將一對句子的淺層句法樹相關(guān)部分關(guān)聯(lián)起來獲得淺層句法樹測試文本;
其中,將一對句子對應(yīng)的淺層句法樹關(guān)聯(lián)起來的方法:兩個句子中某個單詞如果相同(葉子節(jié)點(diǎn)相同),得到它們的父親節(jié)點(diǎn)(詞性節(jié)點(diǎn))、祖父節(jié)點(diǎn)且為非終節(jié)點(diǎn),標(biāo)記上REL。
進(jìn)一步的,所述步驟S30的具體過程如下:
S301、基于句子對訓(xùn)練文本獲得平面特征訓(xùn)練文本,基于句子對測試文本獲得平面特征測試文本;
其中,平面特征訓(xùn)練文本和平面特征測試文本分別為句子對訓(xùn)練文本和句子對測試文本中每行一對句子的相似度計算平面特征;
本發(fā)明提供11個平面特征:
1、最長公共子串方法計算結(jié)果:計算最長連續(xù)字符序列的長度;
2、最長公共子序列方法計算結(jié)果:相比最長公共子串方法沒有連續(xù)性的要求,并允許在單詞的插入或缺失的情況下計算相似度;
3、貪婪的字符串拼接方法計算結(jié)果:允許文本亂序來計算共同的相似子串的部分,每個子串匹配的最大長度;
4、5、6、7基于字符n-gram的句子編輯距離計算結(jié)果:假設(shè)有一個句子s,那么該字符串的N-Gram就表示按長度N切分原詞得到的詞段,也就是s中所有長度為N的子字符串;設(shè)想如果有兩個字符串,然后分別求它們的N-Gram,那么就從它們的共有子串的數(shù)量這個角度去定義兩個字符串間的N-Gram距離,N=1,2,3,4,共四個特征;
8,9,10,11基于單詞n-gram的句子編輯距離計算結(jié)果:與特征4,5,6,7相似,將以字符為切分單位換成以單詞為切分單位;
S302、由平面特征訓(xùn)練文本與淺層句法樹訓(xùn)練文本獲得淺層句法樹特征訓(xùn)練文本;由平面特征測試文本與淺層句法樹測試文本獲得淺層句法樹特征測試文本;
其中,淺層句法樹特征訓(xùn)練文本和淺層句法樹特征測試文本每行包含對應(yīng)的句子對的十個平面特征和一對淺層句法樹特征。
進(jìn)一步的,所述步驟S40的具體過程如下:
S401、使用SVR獲得相似度計算模型,由淺層句法樹特征訓(xùn)練文本在SVR模型中進(jìn)行訓(xùn)練獲得訓(xùn)練模型;
S402、把訓(xùn)練模型以及淺層句法樹特征測試文本作為輸入,利用SVR工具獲得相似度計算結(jié)果文本;
其中,相似度計算結(jié)果文本每行的數(shù)值對應(yīng)于句子對測試文本每行一對句子的相似度計算結(jié)果。
本發(fā)明的句子相似度計算系統(tǒng),包括:
-預(yù)處理模塊,對句子對訓(xùn)練文本和句子對測試文本中所有句子調(diào)用詞性標(biāo)注、句法分析、命名實(shí)體識別、WordNet識別工具分別進(jìn)行詞性標(biāo)注、句法分析、命名實(shí)體識別、WordNet識別獲得詞性標(biāo)注訓(xùn)練文本、短語訓(xùn)練文本、命名實(shí)體訓(xùn)練文本、WordNet訓(xùn)練文本和詞性標(biāo)注測試文本、短語測試文本、命名實(shí)體測試文本、WordNet測試文本;
-基于淺層句法樹的結(jié)構(gòu)化特征模塊,基于詞性標(biāo)注訓(xùn)練文本、短語訓(xùn)練文本、命名實(shí)體訓(xùn)練文本、WordNet訓(xùn)練文本獲得淺層句法樹訓(xùn)練文本;
基于詞性標(biāo)注測試文本、短語測試文本、命名實(shí)體測試文本、WordNet測試文本獲得淺層句法樹測試文本;
-基于淺層句法樹的相似度計算的特征集模塊,基于句子對訓(xùn)練文本對每行一對句子獲得多個平面特征,得到平面特征訓(xùn)練文本,將平面特征訓(xùn)練文本、淺層句法樹訓(xùn)練文本與句子對人工評分訓(xùn)練文本結(jié)合得到淺層句法樹特征訓(xùn)練文本;
基于句子對測試文本對每行一對句子獲得多個平面特征,得到平面特征測試文本,將平面特征測試文本與淺層句法樹測試文本結(jié)合得到淺層句法樹特征測試文本;
-基于淺層句法樹的相似度計算模塊,使用SVR模型基于淺層句法樹特征訓(xùn)練文本進(jìn)行訓(xùn)練,得到訓(xùn)練模型,由訓(xùn)練模型和淺層句法樹特征測試文本獲得相似度計算結(jié)果文本。
進(jìn)一步的,所述預(yù)處理模塊具體包括:
-詞性標(biāo)注單元,對句子對訓(xùn)練文本中所有句子使用詞性標(biāo)注工具(如:Stanford postagger)獲得句子中每個單詞的詞性,獲得對應(yīng)的詞性標(biāo)注訓(xùn)練文本;
對句子對測試文本進(jìn)行相同處理獲得詞性標(biāo)注測試文本;
-短語標(biāo)注單元,對句子對訓(xùn)練文本中所有句子使用句法分析工具(如:Stanford parser)獲得每個單詞所屬的短語,獲得短語測試文本;對句子對測試文本進(jìn)行相同處理獲得短語測試文本;
-命名實(shí)體識別單元,基于句子對訓(xùn)練文本使用命名實(shí)體識別工具(如SST-light tagger)得到單詞所屬的命名實(shí)體識別結(jié)果,獲得命名實(shí)體訓(xùn)練文本,對句子對測試文本進(jìn)行相同處理獲得命名實(shí)體測試文本;
-WordNet識別單元,基于句子對訓(xùn)練文本使用WordNet識別工具(如:SST-light tagger)獲得單詞所屬的WordNet上義(WNSS),如果沒有WordNet上義用空格表示,得到WordNet訓(xùn)練文本,對句子對測試文本進(jìn)行相同處理獲得WordNet測試文本。
進(jìn)一步的,所述基于淺層句法樹的結(jié)構(gòu)化特征模塊具體包括:
-基本淺層句法樹單元,根據(jù)詞性標(biāo)注訓(xùn)練文本,為句子對訓(xùn)練文本中的每個句子構(gòu)造淺層句法樹,得到基本淺層句法樹訓(xùn)練文本;由句子對測試文本和詞性標(biāo)注測試文本得到基本淺層句法樹測試文本;
其中,淺層句法樹是是深度為3的樹,構(gòu)造方法如下:把一個句子中的詞語生成為最底層的葉子節(jié)點(diǎn);把每個葉子節(jié)點(diǎn)對應(yīng)詞的詞性作為每個葉子節(jié)點(diǎn)的父節(jié)點(diǎn);最后,設(shè)置所有的詞性節(jié)點(diǎn)的父節(jié)點(diǎn)為根節(jié)點(diǎn);
-加入短語級句法結(jié)構(gòu)的淺層句法樹單元,根據(jù)短語訓(xùn)練文本,為基本淺層句法樹訓(xùn)練文本中的每個句子構(gòu)造更深一層的淺層句法樹獲得短語淺層句法樹訓(xùn)練文本;基于短語測試文本和基本淺層句法樹測試文本獲得短語淺層句法樹測試文本;
其中,更深一層的淺層句法樹是深度為4的樹,構(gòu)造方法如下:由句子短語識別結(jié)果,獲得屬于同一短語單詞的信息;將屬于同一短語的單詞葉節(jié)點(diǎn)的詞性父節(jié)點(diǎn)上連接到同一chunker節(jié)點(diǎn);斷開根節(jié)點(diǎn)與詞性節(jié)點(diǎn)之間的聯(lián)系,將chunker節(jié)點(diǎn)連接到對應(yīng)的詞性節(jié)點(diǎn);最后,設(shè)置所有的詞性節(jié)點(diǎn)的父節(jié)點(diǎn)為根節(jié)點(diǎn);
-加入語義的淺層句法樹單元,基于短語淺層句法樹訓(xùn)練文本,命名實(shí)體訓(xùn)練文本和WordNet訓(xùn)練文本獲得語義淺層句法樹訓(xùn)練文本;基于短語淺層句法樹測試文本、命名實(shí)體測試文本和WordNet測試文本獲得語義淺層句法樹測試文本;
語義淺層句法樹訓(xùn)練文本是在短語淺層句法樹訓(xùn)練文本上加入語義信息,具體方法如下:如果短語淺層句法樹訓(xùn)練文本中的一個單詞在命名實(shí)體訓(xùn)練文本和WordNet訓(xùn)練文本中有NER或WNSS信息,將包含該單詞的chunker節(jié)點(diǎn)的句法信息修改成NER或WNSS信息;如果一個詞組節(jié)點(diǎn)中含有多個單詞符合上述情況,使用詞組內(nèi)最后一個單詞的NER和WNSS信息;
-刪除非重要信息的淺層句法樹單元,基于語義淺層句法樹訓(xùn)練文本刪除定冠詞和連詞相關(guān)節(jié)點(diǎn),獲得修剪淺層句法樹訓(xùn)練文本;基于語義淺層句法樹測試文本刪除定冠詞和連詞相關(guān)節(jié)點(diǎn),獲得修剪淺層句法樹測試文本;
本發(fā)明在結(jié)構(gòu)化表示中裁減掉定冠詞和連詞以及他們的父親節(jié)點(diǎn)(詞性節(jié)點(diǎn)),減少非重要信息對計算結(jié)果的影響。在淺層句法樹中如果某葉子節(jié)點(diǎn)代表的單詞是冠詞或者連詞,刪除該葉子節(jié)點(diǎn),及其父親節(jié)點(diǎn)(詞性節(jié)點(diǎn))和父親的父親節(jié)點(diǎn)(chunker節(jié)點(diǎn));
-句子對聯(lián)合表示單元,基于修剪淺層句法樹訓(xùn)練文本,將一對句子的淺層句法樹相關(guān)部分關(guān)聯(lián)起來獲得淺層句法樹訓(xùn)練文本;基于修剪淺層句法樹測試文本,將一對句子的淺層句法樹相關(guān)部分關(guān)聯(lián)起來獲得淺層句法樹測試文本;
其中,將一對句子對應(yīng)的淺層句法樹關(guān)聯(lián)起來的方法:兩個句子中某個單詞如果相同,得到它們的父親節(jié)點(diǎn)、祖父節(jié)點(diǎn)且為非終節(jié)點(diǎn),標(biāo)記上REL。
進(jìn)一步的,所述基于淺層句法樹的相似度計算的特征集模塊具體包括:
-平面特征集單元,基于句子對訓(xùn)練文本獲得平面特征訓(xùn)練文本,基于句子對測試文本獲得平面特征測試文本;
其中,平面特征訓(xùn)練文本和平面特征測試文本分別為句子對訓(xùn)練文本和句子對測試文本中每行一對句子的相似度計算平面特征;
本發(fā)明提供11個平面特征。
1、最長公共子串方法計算結(jié)果:計算最長連續(xù)字符序列的長度;
2、最長公共子序列方法計算結(jié)果:相比最長公共子串方法沒有連續(xù)性的要求,并允許在單詞的插入或缺失的情況下計算相似度;
3、貪婪的字符串拼接方法計算結(jié)果:允許文本亂序來計算共同的相似子串的部分,每個子串匹配的最大長度;
4、5、6、7基于字符n-gram的句子編輯距離計算結(jié)果:假設(shè)有一個句子s,那么該字符串的N-Gram就表示按長度N切分原詞得到的詞段,也就是s中所有長度為N的子字符串;設(shè)想如果有兩個字符串,然后分別求它們的N-Gram,那么就從它們的共有子串的數(shù)量這個角度去定義兩個字符串間的N-Gram距離,N=1,2,3,4,共四個特征;
8、9、10、11基于單詞n-gram的句子編輯距離計算結(jié)果:與特征4、5、6、7相似,將以字符為切分單位換成以單詞為切分單位;
-淺層句法樹特征集單元,由平面特征訓(xùn)練文本與淺層句法樹訓(xùn)練文本獲得淺層句法樹特征訓(xùn)練文本,由平面特征測試文本與淺層句法樹測試文本獲得淺層句法樹特征測試文本;
其中,淺層句法樹特征訓(xùn)練文本和淺層句法樹特征測試文本每行包含對應(yīng)的句子對的十個平面特征和一對淺層句法樹特征。
進(jìn)一步的,所述基于淺層句法樹的相似度計算模塊具體包括:
-訓(xùn)練單元,使用SVR獲得相似度計算模型,由淺層句法樹特征訓(xùn)練文本在SVR模型中進(jìn)行訓(xùn)練獲得訓(xùn)練模型;
-測試單元,把訓(xùn)練模型以及淺層句法樹特征測試文本作為輸入,利用SVR工具獲得相似度計算結(jié)果文本;
其中,相似度計算結(jié)果文本每行的數(shù)值對應(yīng)于句子對測試文本每行一對句子的相似度計算結(jié)果。
借由上述方案,本發(fā)明至少具有以下優(yōu)點(diǎn):
1、本發(fā)明提出的基于結(jié)構(gòu)化表示的句子相似度計算方法和系統(tǒng),解決了僅使用平面特征向量來代表句子對相似度的表征性較弱問題;
2、與基于特征向量的方法不同,本發(fā)明使用樹核函數(shù)直接計算兩個結(jié)構(gòu)化特征(例如依存樹)的相同子樹個數(shù)來比較相似度,基于樹核函數(shù)的方法不需要構(gòu)造高維特征向量空間,樹核函數(shù)方法以結(jié)構(gòu)樹為處理對象,通過直接計算兩個離散對象(如語法結(jié)構(gòu)樹)之間的相似度來進(jìn)行分類,這使得基于樹核函數(shù)的方法理論上可探索隱含的高維特征空間,從而可以有效地利用句法樹等結(jié)構(gòu)化信息;
3、本發(fā)明基于淺層句法樹,提出了一種新的句法樹結(jié)構(gòu),使結(jié)構(gòu)化特征更能表現(xiàn)句子的句法語義等信息,并把該句法樹應(yīng)用于句子相似度計算,獲得了良好的性能。
上述說明僅是本發(fā)明技術(shù)方案的概述,為了能夠更清楚了解本發(fā)明的技術(shù)手段,并可依照說明書的內(nèi)容予以實(shí)施,以下以本發(fā)明的較佳實(shí)施例并配合附圖詳細(xì)說明如后。
附圖說明
圖1是背景技術(shù)中句子“Tigers hit lions”和“Lions hit tigers”的依存關(guān)系樹示意圖;
圖2是是句子相似度計算系統(tǒng)結(jié)構(gòu)圖;
圖3是預(yù)處理模塊結(jié)構(gòu)圖;
圖4是基于淺層句法樹的結(jié)構(gòu)化特征模塊結(jié)構(gòu)圖;
圖5是基于淺層句法樹的相似度計算的特征集模塊結(jié)構(gòu)圖;
圖6是基于淺層句法樹的相似度計算模塊結(jié)構(gòu)圖`;
圖7是句子相似度計算方法流程圖;
圖8是預(yù)處理模塊流程圖;
圖9是基于淺層句法樹的結(jié)構(gòu)化特征模塊流程圖;
圖10是基于淺層句法樹的相似度計算的特征集模塊流程圖;
圖11是基于淺層句法樹的相似度計算模塊流程圖;
圖12是基本淺層句法樹的例子;
圖13是短語淺層句法樹的例子;
圖14是語義淺層句法樹的例子;
圖15是修剪淺層句法樹的例子;
圖16是聯(lián)合淺層句法的例子。
具體實(shí)施方式
下面結(jié)合附圖和實(shí)施例,對本發(fā)明的具體實(shí)施方式作進(jìn)一步詳細(xì)描述。以下實(shí)施例用于說明本發(fā)明,但不用來限制本發(fā)明的范圍。
本發(fā)明句子相似度計算的目標(biāo)是學(xué)習(xí)一個得分系統(tǒng),給定一對句子,該系統(tǒng)返回相似度得分,分?jǐn)?shù)范圍為0~5。0代表這對句子的含義完全無關(guān),5代表這對句子含義相同。系統(tǒng)的性能由系統(tǒng)計算分?jǐn)?shù)和人工評判分?jǐn)?shù)的皮爾遜相關(guān)性系數(shù)評估。
為了簡化說明流程,下面將結(jié)合例圖說明本發(fā)明的實(shí)施過程。
基于結(jié)構(gòu)化特征的句子相似度計算系統(tǒng),如圖2所示,包括:
-預(yù)處理模塊10,對句子對訓(xùn)練文本和句子對測試文本中所有句子調(diào)用詞性標(biāo)注、句法分析、命名實(shí)體識別、WordNet識別工具分別進(jìn)行詞性標(biāo)注、句法分析、命名實(shí)體識別、WordNet識別獲得詞性標(biāo)注訓(xùn)練文本、短語訓(xùn)練文本、命名實(shí)體訓(xùn)練文本、WordNet訓(xùn)練文本和詞性標(biāo)注測試文本、短語測試文本、命名實(shí)體測試文本、WordNet測試文本;
-基于淺層句法樹的結(jié)構(gòu)化特征模塊20,基于詞性標(biāo)注訓(xùn)練文本、短語訓(xùn)練文本、命名實(shí)體訓(xùn)練文本、WordNet訓(xùn)練文本獲得淺層句法樹訓(xùn)練文本;
基于詞性標(biāo)注測試文本、短語測試文本、命名實(shí)體測試文本、WordNet測試文本獲得淺層句法樹測試文本;
-基于淺層句法樹的相似度計算的特征集模塊30,基于句子對訓(xùn)練文本對每行一對句子獲得多個平面特征,得到平面特征訓(xùn)練文本,將平面特征訓(xùn)練文本、淺層句法樹訓(xùn)練文本與句子對人工評分訓(xùn)練文本結(jié)合得到淺層句法樹特征訓(xùn)練文本;
基于句子對測試文本對每行一對句子獲得多個平面特征,得到平面特征測試文本,將平面特征測試文本與淺層句法樹測試文本結(jié)合得到淺層句法樹特征測試文本;
-基于淺層句法樹的相似度計算模塊40,使用SVR模型基于淺層句法樹特征訓(xùn)練文本進(jìn)行訓(xùn)練,得到訓(xùn)練模型,由訓(xùn)練模型和淺層句法樹特征測試文本獲得相似度計算結(jié)果文本。
如圖3所示,預(yù)處理模塊10具體包括:
-詞性標(biāo)注單元101,對句子對訓(xùn)練文本中所有句子使用詞性標(biāo)注工具獲得句子中每個單詞的詞性,獲得對應(yīng)的詞性標(biāo)注訓(xùn)練文本;
對句子對測試文本進(jìn)行相同處理獲得詞性標(biāo)注測試文本;
-短語標(biāo)注單元102,對句子對訓(xùn)練文本中所有句子使用句法分析工具獲得每個單詞所屬的短語,獲得短語測試文本;對句子對測試文本進(jìn)行相同處理獲得短語測試文本;
-命名實(shí)體識別單元103,基于句子對訓(xùn)練文本使用命名實(shí)體識別工具得到單詞所屬的命名實(shí)體識別結(jié)果,獲得命名實(shí)體訓(xùn)練文本,對句子對測試文本進(jìn)行相同處理獲得命名實(shí)體測試文本;
-WordNet識別單元104,基于句子對訓(xùn)練文本使用WordNet識別工具獲得單詞所屬的WordNet上義,如果沒有WordNet上義用空格表示,得到WordNet訓(xùn)練文本,對句子對測試文本進(jìn)行相同處理獲得WordNet測試文本。
如圖4所示,基于淺層句法樹的結(jié)構(gòu)化特征模塊20具體包括:
-基本淺層句法樹單元201,根據(jù)詞性標(biāo)注訓(xùn)練文本,為句子對訓(xùn)練文本中的每個句子構(gòu)造淺層句法樹,得到基本淺層句法樹訓(xùn)練文本;由句子對測試文本和詞性標(biāo)注測試文本得到基本淺層句法樹測試文本;
其中,淺層句法樹構(gòu)造方法如下:把一個句子中的詞語生成為最底層的葉子節(jié)點(diǎn);把每個葉子節(jié)點(diǎn)對應(yīng)詞的詞性作為每個葉子節(jié)點(diǎn)的父節(jié)點(diǎn);最后,設(shè)置所有的詞性節(jié)點(diǎn)的父節(jié)點(diǎn)為根節(jié)點(diǎn);
-加入短語級句法結(jié)構(gòu)的淺層句法樹單元202,根據(jù)短語訓(xùn)練文本,為基本淺層句法樹訓(xùn)練文本中的每個句子構(gòu)造更深一層的淺層句法樹獲得短語淺層句法樹訓(xùn)練文本;基于短語測試文本和基本淺層句法樹測試文本獲得短語淺層句法樹測試文本;
其中,更深一層的淺層句法樹構(gòu)造方法如下:由句子短語識別結(jié)果,獲得屬于同一短語單詞的信息;將屬于同一短語的單詞葉節(jié)點(diǎn)的詞性父節(jié)點(diǎn)上連接到同一chunker節(jié)點(diǎn);斷開根節(jié)點(diǎn)與詞性節(jié)點(diǎn)之間的聯(lián)系,將chunker節(jié)點(diǎn)連接到對應(yīng)的詞性節(jié)點(diǎn);最后,設(shè)置所有的詞性節(jié)點(diǎn)的父節(jié)點(diǎn)為根節(jié)點(diǎn);
-加入語義的淺層句法樹單元203,基于短語淺層句法樹訓(xùn)練文本,命名實(shí)體訓(xùn)練文本和WordNet訓(xùn)練文本獲得語義淺層句法樹訓(xùn)練文本;基于短語淺層句法樹測試文本、命名實(shí)體測試文本和WordNet測試文本獲得語義淺層句法樹測試文本;
語義淺層句法樹訓(xùn)練文本是在短語淺層句法樹訓(xùn)練文本上加入語義信息,具體方法如下:如果短語淺層句法樹訓(xùn)練文本中的一個單詞在命名實(shí)體訓(xùn)練文本和WordNet訓(xùn)練文本中有NER或WNSS信息,將包含該單詞的chunker節(jié)點(diǎn)的句法信息修改成NER或WNSS信息;如果一個詞組節(jié)點(diǎn)中含有多個單詞符合上述情況,使用詞組內(nèi)最后一個單詞的NER和WNSS信息;
-刪除非重要信息的淺層句法樹單元204,基于語義淺層句法樹訓(xùn)練文本刪除定冠詞和連詞相關(guān)節(jié)點(diǎn),獲得修剪淺層句法樹訓(xùn)練文本;基于語義淺層句法樹測試文本刪除定冠詞和連詞相關(guān)節(jié)點(diǎn),獲得修剪淺層句法樹測試文本;
-句子對聯(lián)合表示單元205,基于修剪淺層句法樹訓(xùn)練文本,將一對句子的淺層句法樹相關(guān)部分關(guān)聯(lián)起來獲得淺層句法樹訓(xùn)練文本;基于修剪淺層句法樹測試文本,將一對句子的淺層句法樹相關(guān)部分關(guān)聯(lián)起來獲得淺層句法樹測試文本;
其中,將一對句子對應(yīng)的淺層句法樹關(guān)聯(lián)起來的方法:兩個句子中某個單詞如果相同,得到它們的父親節(jié)點(diǎn)、祖父節(jié)點(diǎn)且為非終節(jié)點(diǎn),標(biāo)記上REL。
如圖5所示,所述基于淺層句法樹的相似度計算的特征集模塊30具體包括:
-平面特征集單元301,基于句子對訓(xùn)練文本獲得平面特征訓(xùn)練文本,基于句子對測試文本獲得平面特征測試文本;
其中,平面特征訓(xùn)練文本和平面特征測試文本分別為句子對訓(xùn)練文本和句子對測試文本中每行一對句子的相似度計算平面特征;
-淺層句法樹特征集單元302,由平面特征訓(xùn)練文本與淺層句法樹訓(xùn)練文本獲得淺層句法樹特征訓(xùn)練文本,由平面特征測試文本與淺層句法樹測試文本獲得淺層句法樹特征測試文本。
如圖6所示,所述基于淺層句法樹的相似度計算模塊40具體包括:
-訓(xùn)練單元401,使用SVR獲得相似度計算模型,由淺層句法樹特征訓(xùn)練文本在SVR模型中進(jìn)行訓(xùn)練獲得訓(xùn)練模型;
-測試單元402,把訓(xùn)練模型以及淺層句法樹特征測試文本作為輸入,利用SVR工具獲得相似度計算結(jié)果文本;
其中,相似度計算結(jié)果文本每行的數(shù)值對應(yīng)于句子對測試文本每行一對句子的相似度計算結(jié)果。
基于結(jié)構(gòu)化特征的句子相似度計算方法,如圖7所示,包括:
S10、對句子對訓(xùn)練文本和句子對測試文本中所有句子調(diào)用詞性標(biāo)注、句法分析、命名實(shí)體識別、WordNet識別工具分別進(jìn)行詞性標(biāo)注、句法分析、命名實(shí)體識別、WordNet識別獲得詞性標(biāo)注訓(xùn)練文本、短語訓(xùn)練文本、命名實(shí)體訓(xùn)練文本、WordNet訓(xùn)練文本和詞性標(biāo)注測試文本、短語測試文本、命名實(shí)體測試文本、WordNet測試文本;
所述句子對訓(xùn)練文本和句子對測試文本為每行含有兩句需要計算相似度的句子的文本。
S20、基于詞性標(biāo)注訓(xùn)練文本、短語訓(xùn)練文本、命名實(shí)體訓(xùn)練文本、WordNet訓(xùn)練文本獲得淺層句法樹訓(xùn)練文本;
基于詞性標(biāo)注測試文本、短語測試文本、命名實(shí)體測試文本、WordNet測試文本獲得淺層句法樹測試文本。
S30、基于句子對訓(xùn)練文本對每行一對句子獲得11個平面特征,得到平面特征訓(xùn)練文本,將平面特征訓(xùn)練文本、淺層句法樹訓(xùn)練文本與句子對人工評分訓(xùn)練文本結(jié)合得到淺層句法樹特征訓(xùn)練文本;
基于句子對測試文本對每行一對句子獲得11個平面特征,得到平面特征測試文本,將平面特征測試文本與淺層句法樹測試文本結(jié)合得到淺層句法樹特征測試文本。
S40、使用SVR模型基于淺層句法樹特征訓(xùn)練文本進(jìn)行訓(xùn)練,得到訓(xùn)練模型,由訓(xùn)練模型和淺層句法樹特征測試文本獲得相似度計算結(jié)果文本。
其中,如圖8所示,S10的具體過程如下:
S101、對句子對訓(xùn)練文本中所有句子使用詞性標(biāo)注工具(如:Stanford postagger)獲得句子中每個單詞的詞性,獲得對應(yīng)的詞性標(biāo)注訓(xùn)練文本。
對句子對測試文本進(jìn)行相同處理獲得詞性標(biāo)注測試文本。
例1:“A woman and man are dancing in the rain”經(jīng)過詞性標(biāo)注后得到:
例2:“DT NN CC NN VBP VBG IN DT NN”。
其中,DT表示定冠詞,NN表示名詞,CC表示連詞,VBP表示動詞第三人稱單數(shù),VBG表示動名詞和現(xiàn)在分詞,IN表示介詞或從屬連詞。
S102、對句子對訓(xùn)練文本中所有句子使用句法分析工具(如:Stanford parser)獲得每個單詞所屬的短語,獲得短語測試文本;對句子對測試文本進(jìn)行相同處理獲得短語測試文本。
例1進(jìn)行短語識別得到4個短語:
例3:“NP(a woman and man)VP(bedance)PP(in)NP(the rain)”
其中NP表示名詞短語,VP表示動詞短語,PP表示介詞短語。
S103、基于句子對訓(xùn)練文本使用命名實(shí)體識別工具(如SST-light tagger)得到單詞所屬的命名實(shí)體識別結(jié)果,獲得命名實(shí)體訓(xùn)練文本;對句子對測試文本進(jìn)行相同處理獲得命名實(shí)體測試文本。
例1進(jìn)行命名實(shí)體識別得到兩個實(shí)體:
例4:“E:PER_DESC woman E:PER_DESC man”
其中E:PER_DESC表示識別出實(shí)體類型是人。
S104、基于句子對訓(xùn)練文本使用WordNet識別工具(如:SST-light tagger)獲得單詞所屬的WordNet上義(WNSS);如果沒有WordNet上義用空格表示,得到WordNet訓(xùn)練文本;對句子對測試文本進(jìn)行相同處理獲得WordNet測試文本。
例1進(jìn)行WNSS識別得到:
例5:“female woman male man weather rain”
其中female,male,weather分別為woman,man,rain的WordNet上義。
如圖9所示,S20的具體過程如下:
S201、根據(jù)詞性標(biāo)注訓(xùn)練文本,為句子對訓(xùn)練文本中的每個句子構(gòu)造淺層句法樹,得到基本淺層句法樹訓(xùn)練文本;由句子對測試文本和詞性標(biāo)注測試文本得到基本淺層句法樹測試文本。
其中,淺層句法樹是是深度為3的樹,構(gòu)造方法如下:把一個句子中的詞語生成為最底層的葉子節(jié)點(diǎn),如例1中9個詞就是9個葉子節(jié)點(diǎn);把每個葉子節(jié)點(diǎn)對應(yīng)詞的詞性作為每個葉子節(jié)點(diǎn)的父節(jié)點(diǎn);最后,設(shè)置所有的詞性節(jié)點(diǎn)的父節(jié)點(diǎn)為根節(jié)點(diǎn)。
例1經(jīng)過構(gòu)造淺層句法樹如圖12所示。
S202、根據(jù)短語訓(xùn)練文本,為基本淺層句法樹訓(xùn)練文本中的每個句子構(gòu)造更深一層的淺層句法樹獲得短語淺層句法樹訓(xùn)練文本;基于短語測試文本和基本淺層句法樹測試文本獲得短語淺層句法樹測試文本。
其中,更深一層的淺層句法樹是深度為4的樹,構(gòu)造方法如下:由句子短語識別結(jié)果,獲得屬于同一短語單詞的信息。將屬于同一短語的單詞葉節(jié)點(diǎn)的詞性父節(jié)點(diǎn)上連接到同一chunker節(jié)點(diǎn)。如例1中9個單詞屬于4個短語就是4個chunker節(jié)點(diǎn);斷開根節(jié)點(diǎn)與詞性節(jié)點(diǎn)之間的聯(lián)系,將chunker節(jié)點(diǎn)連接到對應(yīng)的詞性節(jié)點(diǎn),最后,設(shè)置所有的詞性節(jié)點(diǎn)的父節(jié)點(diǎn)為根節(jié)點(diǎn)。
圖12加一層chunker節(jié)點(diǎn)后如圖13所示。
S203、基于短語淺層句法樹訓(xùn)練文本,命名實(shí)體訓(xùn)練文本和WordNet訓(xùn)練文本獲得語義淺層句法樹訓(xùn)練文本;基于短語淺層句法樹測試文本,命名實(shí)體測試文本和WordNet測試文本獲得語義淺層句法樹測試文本。
語義淺層句法樹訓(xùn)練文本是在短語淺層句法樹訓(xùn)練文本上加入語義信息,具體方法如下:如果短語淺層句法樹訓(xùn)練文本中的一個單詞在命名實(shí)體訓(xùn)練文本和WordNet訓(xùn)練文本中有NER或WNSS信息,將包含該單詞的chunker節(jié)點(diǎn)的句法信息修改成NER或WNSS信息;如果一個詞組節(jié)點(diǎn)中含有多個單詞符合上述情況,使用詞組內(nèi)最后一個單詞的NER和WNSS信息。
圖13加入語義信息后如圖14所示。
S204,基于語義淺層句法樹訓(xùn)練文本刪除定冠詞和連詞相關(guān)節(jié)點(diǎn),獲得修剪淺層句法樹訓(xùn)練文本;基于語義淺層句法樹測試文本刪除定冠詞和連詞相關(guān)節(jié)點(diǎn),獲得修剪淺層句法樹測試文本。
本發(fā)明將在結(jié)構(gòu)化表示中裁減掉定冠詞和連詞以及他們的父親節(jié)點(diǎn)(詞性節(jié)點(diǎn)),減少非重要信息對計算結(jié)果的影響。在淺層句法樹中如果某葉子節(jié)點(diǎn)代表的單詞是冠詞或者連詞,刪除該葉子節(jié)點(diǎn),及其父親節(jié)點(diǎn)(詞性節(jié)點(diǎn))和父親的父親節(jié)點(diǎn)(chunker節(jié)點(diǎn))。如例1中9個單詞中3個單詞是定冠詞和連詞,刪除這3個節(jié)點(diǎn),和它們各自上面的兩個節(jié)點(diǎn)。
圖14經(jīng)過刪除非重點(diǎn)信息后如圖15所示。
S205、基于修剪淺層句法樹訓(xùn)練文本,將一對句子的淺層句法樹相關(guān)部分關(guān)聯(lián)起來獲得淺層句法樹訓(xùn)練文本;基于修剪淺層句法樹測試文本,將一對句子的淺層句法樹相關(guān)部分關(guān)聯(lián)起來獲得淺層句法樹測試文本。
其中,將一對句子對應(yīng)的淺層句法樹關(guān)聯(lián)起來的方法:兩個句子中某個單詞如果相同(葉子節(jié)點(diǎn)相同),得到它們的父親節(jié)點(diǎn)(詞性節(jié)點(diǎn))、祖父節(jié)點(diǎn)且為非終節(jié)點(diǎn),標(biāo)記上REL。如例8中,兩個句子的淺層句法樹修剪后都有6個單詞,第一句句子有4個單詞在第二個句子中出現(xiàn),將這些葉子節(jié)點(diǎn)(即兩個句子中相同單詞的節(jié)點(diǎn))的父節(jié)點(diǎn)和父節(jié)點(diǎn)的父節(jié)點(diǎn)的句法和語義信息前加入“REL-”標(biāo)記。例8的淺層句法樹進(jìn)行關(guān)聯(lián)后如圖16所示。
例8:“the girl sing into a microphone”“the girl sing into the phone”
其中,如圖10所示,S30的具體過程如下:
S301,基于句子對訓(xùn)練文本獲得由獲得平面特征訓(xùn)練文本,基于句子對測試文本獲得平面特征測試文本。
其中,平面特征訓(xùn)練文本和平面特征測試文本為句子對訓(xùn)練文本和句子對測試文本中每行一對句子的相似度計算平面特征。本發(fā)明提供11個平面特征。
1、最長公共子串方法計算結(jié)果:計算最長連續(xù)字符序列的長度;
2、最長公共子序列方法計算結(jié)果:相比最長公共子串方法沒有連續(xù)性的要求,并允許在單詞的插入或缺失的情況下計算相似度;
3、貪婪的字符串拼接方法計算結(jié)果:允許文本亂序來計算共同的相似子串的部分,每個子串匹配的最大長度;
4、5、6、7基于字符n-gram的句子編輯距離計算結(jié)果:假設(shè)有一個句子s,那么該字符串的N-Gram就表示按長度N切分原詞得到的詞段,也就是s中所有長度為N的子字符串。設(shè)想如果有兩個字符串,然后分別求它們的N-Gram,那么就從它們的共有子串的數(shù)量這個角度去定義兩個字符串間的N-Gram距離,N=1、2、3、4,共四個特征;
8、9、10、11基于單詞n-gram的句子編輯距離計算結(jié)果:與特征4、5、6、7相似,將以字符為切分單位換成以單詞為切分單位。
例8的10個平面特征為:
例10:1:1.000000000000697 2:0.9391768400811316 3:0.99999999999998314:0.503555802360086 5:0.5677922252084567 6:0.520906295824116 7:0.98:0.3333333333333333 9:0.910:0.2142857142857142711:0.07142857142857142
其中以1:1.000000000000697為例,“:”前面的數(shù)字表示特征編號,“:”后面的數(shù)字為特征值,調(diào)用專用的工具(如UKP)得到。
S302,由平面特征訓(xùn)練文本與淺層句法樹訓(xùn)練文本獲得淺層句法樹特征訓(xùn)練文本;由平面特征測試文本與淺層句法樹測試文本獲得淺層句法樹特征測試文本。
其中,淺層句法樹特征訓(xùn)練文本和淺層句法樹特征測試文本每行包含對應(yīng)的句子對的十個平面特征和一對淺層句法樹特征。
例8的特征集為:
例11:|BT|(ROOT(root(REL-dance(REL-nsubj(REL-woman(REL-det a)(REL-cc and)(REL-conj:and man)))(REL-nsubj man)(REL-cop be)(REL-nmod:in(REL-rain(REL-case in)(det the))))))|BT|(ROOT(root(REL-dance(REL-nsubj(REL-man(REL-det a)(REL-cc and)(REL-conj:and woman)))(REL-nsubj woman)(REL-cop be)(REL-nmod:in(REL-rain(REL-case in))))))|ET|1:1.000000000000697 2:0.9391768400811316 3:0.9999999999999831 4:0.503555802360086 5:0.5677922252084567 6:0.520906295824116 7:0.9 8:0.3333333333333333 9:0.9 10:0.2142857142857142711:0.07142857142857142
其中|BT|與|BT|和|BT|與|ET|之間的字符串表示例8兩個句子對應(yīng)的本發(fā)明提出的類似于圖14的淺層句法樹,root代表根節(jié)點(diǎn),“(”表示孩子節(jié)點(diǎn)開始標(biāo)志,“)”表示孩子節(jié)點(diǎn)結(jié)束標(biāo)志?!?”與“)”之間的內(nèi)容是節(jié)點(diǎn)的內(nèi)容。最后拼接上例10的平面特征。
其中,如圖11所示,S40的具體過程如下:
S401、使用SVR獲得相似度計算模型,把淺層句法樹特征訓(xùn)練文本作為輸入利用SVR工具進(jìn)行訓(xùn)練得到訓(xùn)練模型。
S402、把訓(xùn)練模型以及淺層句法樹特征測試文本作為輸入,利用SVR工具獲得相似度計算結(jié)果文本。
其中,相似度計算結(jié)果文本每行的數(shù)值對應(yīng)于句子對測試文本每行一對句子的相似度計算結(jié)果。如例8兩個句子的相似度得分為3.8731014。
以上所述僅是本發(fā)明的優(yōu)選實(shí)施方式,并不用于限制本發(fā)明,應(yīng)當(dāng)指出,對于本技術(shù)領(lǐng)域的普通技術(shù)人員來說,在不脫離本發(fā)明技術(shù)原理的前提下,還可以做出若干改進(jìn)和變型,這些改進(jìn)和變型也應(yīng)視為本發(fā)明的保護(hù)范圍。