本發(fā)明涉及信息處理技術(shù)領(lǐng)域,尤其涉及一種同義詞挖掘方法和裝置。
背景技術(shù):
多詞同義和一詞多義是語言中廣泛存在的現(xiàn)象,例如“程序”既可以是“手續(xù)”的同義詞,也可以是“代碼”(在計算機領(lǐng)域)的同義詞,這就給自然語言處理帶來很大的困難。例如,智能問答知識庫中包括了多個知識點,當需要根據(jù)特征詞進行知識點過濾時,輸入的特征詞是否全面,對過濾結(jié)果的準確性和全面性都起著非常重要的作用。而當某特征詞存在同義詞時,如果只輸入該特征詞不考慮其同義詞,必然會影響過濾結(jié)果。所以,如何進行同義詞挖掘,以將挖掘的同義詞應(yīng)用于所需的各個領(lǐng)域,成為本發(fā)明所要解決的技術(shù)問題。
技術(shù)實現(xiàn)要素:
鑒于上述問題,提出了本發(fā)明以便提供一種解決上述問題的同義詞挖掘方法和裝置。
依據(jù)本發(fā)明的一個方面,提供一種同義詞挖掘方法,包括:
對獲取的語料數(shù)據(jù)進行分詞處理,得到多個單獨詞;
計算所述單獨詞的詞向量;
根據(jù)所述詞向量對所述單獨詞進行聚類處理,得到同義詞集。
依據(jù)本發(fā)明的另一個方面,還提供一種同義詞挖掘裝置,包括:
分詞模塊,用于對獲取的語料數(shù)據(jù)進行分詞處理,得到多個單獨詞;
向量計算模塊,用于計算所述單獨詞的詞向量;
聚類處理模塊,用于根據(jù)所述詞向量對所述單獨詞進行聚類處理,得到同義詞集。
本發(fā)明有益效果如下:
本發(fā)明使用詞向量的方法來表征詞的含義,然后,利用聚類算法對得到的詞向量進行語義聚類,能夠有效的實現(xiàn)廣義同義詞集的挖掘,為自然語言處理中解決同義詞挖掘的難題提供新的思路和方法。并且,當將挖掘的同義詞集應(yīng)用于自然語言處理領(lǐng)域時,可以提高知識點過濾任務(wù)、關(guān)鍵詞提取任務(wù)、文本分類任務(wù)、語義聚類任務(wù)等的準確性。
上述說明僅是本發(fā)明技術(shù)方案的概述,為了能夠更清楚了解本發(fā)明的技術(shù)手段,而可依照說明書的內(nèi)容予以實施,并且為了讓本發(fā)明的上述和其它目的、特征和優(yōu)點能夠更明顯易懂,以下特舉本發(fā)明的具體實施方式。
附圖說明
通過閱讀下文優(yōu)選實施方式的詳細描述,各種其他的優(yōu)點和益處對于本領(lǐng)域普通技術(shù)人員將變得清楚明了。附圖僅用于示出優(yōu)選實施方式的目的,而并不認為是對本發(fā)明的限制。而且在整個附圖中,用相同的參考符號表示相同的部件。在附圖中:
圖1為本發(fā)明第一實施例提供的一種同義詞挖掘方法的流程圖;
圖2為本發(fā)明第二實施例提供的一種同義詞挖掘方法的流程圖;
圖3為本發(fā)明第二實施例提供的一種同義詞挖掘方法的又一流程圖;
圖4為本發(fā)明第三實施例提供的一種同義詞挖掘裝置的結(jié)構(gòu)框圖。
具體實施方式
下面將參照附圖更詳細地描述本公開的示例性實施例。雖然附圖中顯示了本公開的示例性實施例,然而應(yīng)當理解,可以以各種形式實現(xiàn)本公開而不應(yīng)被這里闡述的實施例所限制。相反,提供這些實施例是為了能夠更透徹地理解本公開,并且能夠?qū)⒈竟_的范圍完整的傳達給本領(lǐng)域的技術(shù)人員。
本發(fā)明實施例提出一種同義詞挖掘方法和裝置,本發(fā)明實施例考慮到詞的具體含義是和其上下文有密切的關(guān)系的,所以使用詞向量的方法來表征其含義,然后,利用聚類算法對得到的詞向量進行語義聚類即可得到廣義同義詞集。較佳地,本發(fā)明實施例在得到廣義同義詞集后,還可通過編輯距離確定出同一同義詞集中的縮略語和完整詞之間的對應(yīng)關(guān)系,得到縮略同義詞集。本發(fā)明為自然語言處理中解決同義詞挖掘的難題提供新的思路和方法。
下面通過幾個具體實施例對本發(fā)明的具體實施例過程進行詳盡的說明。
在本發(fā)明的第一實施例中,提供一種同義詞挖掘方法,如圖1所示,所述方法包括如下步驟:
步驟S101,對獲取的語料數(shù)據(jù)進行分詞處理,得到多個單獨詞;
在本發(fā)明實施例中,所述的語料數(shù)據(jù)可以但不限于為規(guī)范的新聞?wù)Z料以及從互聯(lián)網(wǎng)爬取的語料數(shù)據(jù)等。
在本發(fā)明的一個具體實施例中,在進行分詞前,對所述語料數(shù)據(jù)進行預(yù)處理,所述預(yù)處理至少包括如下處理之一:
去除獲取的語料數(shù)據(jù)中無效格式的數(shù)據(jù),并將剩余語料數(shù)據(jù)的格式統(tǒng)一為文本格式,以及過濾掉語料數(shù)據(jù)中的禁用詞,所述禁用詞可以包括敏感詞和/或臟詞。
在本發(fā)明的又一具體實施例中,通過如下方式進行分詞處理:
將語料數(shù)據(jù)按照語料中的特定標點劃分為多句;
根據(jù)分詞詞典對各句數(shù)據(jù)進行分詞處理,得到各句數(shù)據(jù)中的單獨詞。
在實際應(yīng)用中,上述特定標點可以是問號、嘆號、分號或句號,也就是說,可以將語料數(shù)據(jù)按照問號、嘆號、分號或句號劃分為多句。
在本發(fā)明的一個較佳實施例中,在將語料數(shù)據(jù)按照語料中的特定標點劃分為多句后,先通過新詞發(fā)現(xiàn)算法,獲取各句數(shù)據(jù)中的新詞,并根據(jù)獲取的新詞,更新分詞詞典,然后,根據(jù)更新后的分詞詞典對各句數(shù)據(jù)進行分詞處理,得到各句數(shù)據(jù)中的單獨詞。本實施例中,預(yù)先通過新詞發(fā)現(xiàn)算法進行新詞發(fā)現(xiàn),更新分詞詞典,利用更新后的分詞詞典增加了分詞處理的準確性。
本發(fā)明實施例中,分詞處理可以采用字典雙向最大匹配法、viterbi方法、HMM方法和CRF方法中的一種或多種進行。新詞發(fā)現(xiàn)方法具體可以包括:互信息、共現(xiàn)概率、信息熵等方法。
需要說明的是,在本發(fā)明實施例中,進行預(yù)處理和分詞后得到的單獨詞盡量保持詞的順序不變,從而保證后續(xù)計算詞向量的準確性。
步驟S102,計算所述單獨詞的詞向量;
在本發(fā)明的一個具體實施例中,計算所述單獨詞的詞向量的方式包括:將各單獨詞順序輸入到設(shè)定的向量模型,獲取所述向量模型輸出的各所述單獨詞的詞向量。
在實際應(yīng)用中,上述向量模型可以但不限于為:word2vector模型。
在本發(fā)明的又一具體實施例中,在計算所述單獨詞的詞向量之前或者之后,還可以進一步對單獨詞進行過濾處理,具體的:
獲取各單獨詞的詞性,并根據(jù)詞性對各單獨詞進行過濾,保留詞性為名詞的單獨詞;和/或,獲取各單獨詞的詞頻,根據(jù)詞頻對各單獨詞進行過濾,保留詞頻大于設(shè)定詞頻閾值的單獨詞。其中,詞頻是指單獨詞在語料數(shù)據(jù)中出現(xiàn)的頻率。利用詞頻和/或詞性特征對單獨詞進行過濾可以降低維度。
步驟S103,根據(jù)所述詞向量對所述單獨詞進行聚類處理,得到同義詞集。
本發(fā)明實施例中,本領(lǐng)域技術(shù)人員可以根據(jù)自己的需要靈活選擇所需的聚類算法以進行聚類處理,例如,可以采用k-means聚類算法。
然而,本發(fā)明實施例中考慮到傳統(tǒng)的k-means算法中有幾大難題,其中K值的選擇就是其中之一,它通常是通過經(jīng)驗來確定的。因此,傳統(tǒng)的k-means更適合于待聚類數(shù)據(jù)屬于較少類別(K<10)的情況。但是,本發(fā)明目的是進行同義詞的挖掘,不同領(lǐng)域同義詞的類別更是數(shù)以百或千計,所以,為了提高聚類的效率和適用性,在本發(fā)明的一個具體實施例中對傳統(tǒng)的k-means算法進行改進,改進的算法避免了K值的選擇難題,具有更好的適用性。
具體的,假定共有T個詞向量QT,則根據(jù)T個詞向量QT對各單獨詞進行聚類處理,包括:
初始化K值、中心點PK-1、以及聚類問題集{K,[PK-1]},其中,K表示聚類的類別數(shù),K的初始值為1,中心點PK-1的初始值為P0,P0=Q1,Q1表示第一個單獨詞的詞向量,聚類問題集的初始值為{1,[Q1]};
從第二個單獨詞的詞向量開始,依次對剩下的詞向量進行聚類,計算當前詞向量與每個聚類問題集的中心點的相似度,如果當前詞向量與某個聚類問題集的中心點的相似度大于或等于預(yù)設(shè)值,則將當前詞向量聚類到相應(yīng)的聚類問題集中,保持K值不變,將相應(yīng)的中心點更新為聚類問題集中所有詞向量的向量平均值,相應(yīng)的聚類問題集為{K,[聚類問題集中所有詞向量的向量平均值]};如果當前詞向量與所有聚類問題集中的中心點的相似度均小于預(yù)設(shè)值,則令K=K+1,增加新的中心點,所述新的中心點的值為當前詞向量,并增加新的聚類問題集{K,[當前詞向量]}。
下面以對Q2聚類進行舉例說明:計算Q2與Q1的語義相似度I,若相似度I大于設(shè)定預(yù)設(shè)值(可根據(jù)需求靈活設(shè)定),則認為Q2和Q1屬于同一個類,此時K=1不變,P0更新為Q1和Q2的向量平均值,聚類的問題集為{1,[Q1,Q2]};若相似度I小于設(shè)定閾值,則Q2和Q1屬于不同的類,此時K=2,P0=Q1,P1=Q2,聚類的問題集為{1,[Q1]},{2,[Q2]}。
采用上述方法依次對剩余其他問句進行聚類完成的同時可以得到K最終值。
可見,改進的k-means算法避免了傳統(tǒng)的k-means算法中K值選擇難的問題。該算法采用動態(tài)調(diào)整中心點的方法,它是對每個單獨詞的分類都會更新對應(yīng)類的語義中心點,即各個類的中心點是所有屬于該類的平均。因此,各個類的中心點只有一個,可以提高效率;并且,待聚類單獨詞和各個類別之間的語義距離是計算該單獨詞和各個類別的語義中心點的距離,因此準確率較高。
進一步地,在本發(fā)明的一個較佳實施例中,為了提高聚類處理的正確率,在得到同義詞集后,還可以計算聚類處理的準確率,當確定出聚類處理的準確率小于預(yù)定準確率閾值時,調(diào)整聚類處理所采用的聚類算法中的指定參數(shù)值,更或者是調(diào)整分詞詞典。在本發(fā)明實施例中,計算聚類處理的準確率時,可以依據(jù)給出的每個聚類處理是否正確的指示來確定聚類處理的準確率。
例如,如果聚類處理的準確率小于預(yù)定準確率閾值,則可能是由于聚類算法中設(shè)定的“預(yù)設(shè)值”設(shè)置的不準確,可以調(diào)整該預(yù)設(shè)值,也可能是在分詞時出現(xiàn)問題,導(dǎo)致相似度計算的不準確,此時可以調(diào)整分詞詞典,這些處理都可以使聚類處理更加準確。
綜上可知,本發(fā)明實施例所述方法,對語料數(shù)據(jù)進行預(yù)處理后分詞,利用詞頻和/或詞性特征對分詞結(jié)果進行過濾,并利用word2vector模型得到待聚類問題集的詞向量,且根據(jù)詞向量,利用設(shè)定的聚類算法進行聚類處理,得到所需的同義詞集。按照本發(fā)明實施例所述方法挖掘得到的廣義同義詞集,可以應(yīng)用于自然語言處理過程中,例如應(yīng)用于自然語言處理中的關(guān)鍵詞提取、文本分類、語義聚類以及信息檢索等任務(wù)中,可以提高各任務(wù)的處理準確性。
在本發(fā)明第二實施例中,提供一種同義詞挖掘方法,如圖2所示,具體包括如下步驟:
步驟S201,對獲取的語料數(shù)據(jù)進行分詞處理,得到多個單獨詞;
步驟S202,計算所述單獨詞的詞向量;
步驟S203,根據(jù)所述詞向量對所述單獨詞進行聚類處理,得到同義詞集;
步驟S204,計算同一同義詞集中兩兩單獨詞之間的編輯距離,根據(jù)編輯距離,確定兩個單獨詞間是否為縮略同義詞,即是否為縮略詞與完整詞的關(guān)系,例如:郵政編碼與郵編為縮略詞和完整詞對應(yīng)關(guān)系,同時二者也屬于廣義同義詞的關(guān)系;
步驟S205,針對于同義詞集內(nèi),將包括相同單獨詞的縮略同義詞進行合并,得到縮略同義詞集。
可以針對每個同義詞集內(nèi),將包括相同單獨詞的縮略同義詞進行合并,得到縮略同義詞集,以得到語料中全部的縮略同義詞集。
本發(fā)明實施例中,關(guān)于步驟S201至S203的具體實施例過程可以參見第一實施例,本實施例在此不再贅述。
本發(fā)明實施例中,編輯距離是指兩個字串之間,由一個轉(zhuǎn)成另一個所需的最少編輯操作次數(shù)。許可的編輯操作包括將一個字符替換成另一個字符,插入一個字符,刪除一個字符。并且,定義對一個字符的不同編輯操作所對應(yīng)的編輯距離值,當由一個字串轉(zhuǎn)換成另一個字串時,計算所有編輯操作的編輯距離值的和值,該和值即為兩個字串之間的編輯距離。例如,定義插入或刪除一個字符的編輯距離為1,替換一個字符的編輯距離為1000。農(nóng)行與中國農(nóng)業(yè)銀行之間的編輯距離是4,而與招行的編輯距離是1000。
所以,本實施例中,計算同一同義詞集中兩兩單獨詞之間的編輯距離的方式包括:
確定兩個單獨詞中由一個單獨詞變換到另一個單獨詞所需的編輯操作;
根據(jù)預(yù)先設(shè)置的對一個字符的不同編輯操作與編輯距離值的對應(yīng)關(guān)系,計算確定的各編輯操作對應(yīng)的編輯距離值的和值,并以該和值作為兩個單獨詞之間的編輯距離。
本發(fā)明實施例中,在得到兩詞之間的編輯距離后,判斷編輯距離是否小于等于預(yù)設(shè)閾值,若是,則說明兩個單獨詞為縮略同義詞,否則,說明兩個單獨詞為非縮略同義詞。
本發(fā)明實施例所述方法,使用詞向量的方法來表征詞的含義,然后,利用聚類算法對得到的詞向量進行語義聚類,能夠有效的實現(xiàn)廣義同義詞集的挖掘,為自然語言處理中解決同義詞挖掘的難題提供新的思路和方法。并且,當將挖掘的同義詞集應(yīng)用于自然語言處理領(lǐng)域時,可以提高知識點過濾任務(wù)、關(guān)鍵詞提取任務(wù)、文本分類任務(wù)、語義聚類任務(wù)等的準確性;
另外,本發(fā)明在實現(xiàn)廣義同義詞集的挖掘后,還可以基于該廣義同義詞集進行縮略詞-完整詞對的挖掘,當將挖掘的具有縮略詞-完整詞對的同義詞集應(yīng)用于自然語言處理領(lǐng)域時,可以進一步提高其相應(yīng)任務(wù)的執(zhí)行準確性。
為了更清楚的說明本發(fā)明的實施過程,下面通過一個具體實例,對本發(fā)明的實施過程進行說明。如圖3所示,本實例提供的同義詞挖掘方法包括:
步驟S301,開始。
步驟S302,對獲取的語料數(shù)據(jù)進行預(yù)處理。具體的,將獲取的語料格式統(tǒng)一為文本格式,并過濾無效的格式,去除敏感詞和臟詞,并對預(yù)處理后的語料數(shù)據(jù)按大標點,例如“?!?!狈指畛删浔4?。
步驟S303,針對分割成句的語料數(shù)據(jù),利用新詞發(fā)現(xiàn)算法獲取領(lǐng)域內(nèi)的詞語,并根據(jù)獲取的詞語更新分詞詞典。
步驟S304,利用更新的分詞詞典,按句進行分詞處理。
步驟S305,對分詞處理得到的各單獨詞進行詞性標注后按句保存。
步驟S306,將分詞處理得到的各單獨詞輸入到詞向量模型,訓(xùn)練得到所有詞的詞向量并保存、待用。
步驟S307,按照詞性和詞頻過濾,得到有意義的詞及其詞向量。具體的,將步驟S305步處理后得到的單獨詞,按照詞性和詞頻過濾,得到詞頻較大(即詞頻>p,p為經(jīng)驗值)且詞性為名詞(包括地名、人名、機構(gòu)名等)的詞作為同義詞候選詞。
步驟S308,利用聚類算法對候選詞的詞向量聚類,得到同義詞集。具體的,將步驟S307得到的候選詞的詞向量輸入到聚類算法模型(例如第一實施例所述的改進的kmeans算法模型)中實現(xiàn)聚類,即得到廣義同義詞集。
步驟S309,針對每一個同義詞集,計算集合內(nèi)兩兩詞之間的編輯距離,得到集合內(nèi)為縮略詞和完整詞關(guān)系的詞對。
具體的,對每一個同義詞集內(nèi)的詞分別計算兩兩之間的編輯距離,若小于閾值(閾值可以是小于1000的正數(shù))則認為是縮略詞和完整詞對應(yīng)關(guān)系,否則認為是廣義同義詞,例如:郵政編碼與郵編為縮略詞和完整詞對應(yīng)關(guān)系,也屬于廣義同義詞;而夫人與妻子、自由游與蝶泳均屬于廣義同義詞。
步驟S310,將具有相同詞的詞對(包括縮略詞和完整詞對應(yīng)關(guān)系)進行合并,得到包含有縮略詞與完整詞對應(yīng)關(guān)系的同義詞集。例如:兩個同義詞對“華師”和“華師大”、“華師大”和“華東師范大學(xué)”合并成一個包含“華師”“華師大”“華東師范大學(xué)”同義詞集。
步驟S311,結(jié)束。
綜上可知,利用本發(fā)明實施例所述方法,可直接對新數(shù)據(jù)進行廣義同義詞集和縮略詞與完整詞對應(yīng)關(guān)系的挖掘。
在本發(fā)明的第三實施例中,提供一種同義詞挖掘裝置,如圖4所示,包括:
分詞模塊410,用于對獲取的語料數(shù)據(jù)進行分詞處理,得到多個單獨詞;
向量計算模塊420,用于計算所述單獨詞的詞向量;
聚類處理模塊430,用于根據(jù)所述詞向量對所述單獨詞進行聚類處理,得到同義詞集。
在本發(fā)明的一個可選實施例中,所述裝置還包括:
編輯距離計算模塊440,用于計算同一同義詞集中兩兩單獨詞之間的編輯距離,其中:編輯距離小于預(yù)設(shè)閾值的兩個單獨詞為縮略同義詞、編輯距離大于所述預(yù)設(shè)閾值的兩個單獨詞為非縮略同義詞。
合并模塊450,用于針對于同義詞集內(nèi),將包括相同單獨詞的縮略同義詞進行合并,得到縮略同義詞集。
可以針對每個同義詞集內(nèi),將包括相同單獨詞的縮略同義詞進行合并,得到縮略同義詞集。以得到語料中全部的縮略同義詞集。
基于上述結(jié)構(gòu)框架及實施原理,下面給出在上述結(jié)構(gòu)下的幾個具體及優(yōu)選實施方式,用以細化和優(yōu)化本發(fā)明所述裝置的功能,以使本發(fā)明方案的實施更方便,準確。具體涉及如下內(nèi)容:
本發(fā)明實施例中,所述的語料數(shù)據(jù)可以但不限于為規(guī)范的新聞?wù)Z料以及從互聯(lián)網(wǎng)爬取的語料數(shù)據(jù)等。
在本發(fā)明的一個具體實施例中,在進行分詞前,還通過預(yù)處理模塊460對所述語料數(shù)據(jù)進行預(yù)處理。
預(yù)處理模塊460,用于去除獲取的所述語料數(shù)據(jù)中無效格式的數(shù)據(jù),并將剩余語料數(shù)據(jù)的格式統(tǒng)一為文本格式,以及過濾掉禁用詞,所述禁用詞可以包括敏感詞和/或臟詞。
在本發(fā)明的又一具體實施例中,分詞模塊410通過如下方式進行分詞處理:
將語料數(shù)據(jù)按照語料中的特定標點劃分為多句,通過新詞發(fā)現(xiàn)算法,獲取各句數(shù)據(jù)中的新詞,并根據(jù)獲取的新詞,更新分詞詞典,根據(jù)更新后的分詞詞典對各句數(shù)據(jù)進行分詞處理,得到各句數(shù)據(jù)中的單獨詞。本實施例中,預(yù)先通過新詞發(fā)現(xiàn)算法進行新詞發(fā)現(xiàn),更新分詞詞典,利用更新后的分詞詞典增加了分詞處理的準確性。
在實際應(yīng)用中,上述特定標點可以是問號、嘆號、分號或句號,也就是說,可以將語料數(shù)據(jù)按照問號、嘆號、分號或句號劃分為多句。
進一步地,本發(fā)明實施例中,分詞處理可以采用字典雙向最大匹配法、viterbi方法、HMM方法和CRF方法中的一種或多種進行。新詞發(fā)現(xiàn)方法具體可以包括:互信息、共現(xiàn)概率、信息熵等方法。
需要說明的是,在本發(fā)明實施例中,進行預(yù)處理和分詞后得到的單獨詞盡量保持詞的順序不變,從而保證后續(xù)計算詞向量的準確性。
在本發(fā)明的又一具體實施例中,向量計算模塊420將各單獨詞順序輸入到設(shè)定的向量模型,獲取所述向量模型輸出的各所述單獨詞的詞向量。在實際應(yīng)用中,上述向量模型可以但不限于為:word2vector模型。
在本發(fā)明的又一具體實施例中,在計算所述單獨詞的詞向量之前或者之后,還可以通過過濾模塊470進一步對單獨詞進行過濾處理,具體的:
過濾模塊470,用于獲取各單獨詞的詞性,并根據(jù)詞性對各單獨詞進行過濾,保留詞性為名詞的單獨詞;和/或,獲取各單獨詞的詞頻,根據(jù)詞頻對各單獨詞進行過濾,保留詞頻大于設(shè)定詞頻閾值的單獨詞。其中,詞頻是指單獨詞在語料數(shù)據(jù)中出現(xiàn)的頻率。利用詞頻和/或詞性特征對單獨詞進行過濾可以降低維度。
進一步地,本發(fā)明實施例中,本領(lǐng)域技術(shù)人員可以根據(jù)自己的需要靈活選擇所需的聚類算法以進行聚類處理,例如,可以采用k-means聚類算法。
然而,本發(fā)明實施例中考慮到傳統(tǒng)的k-means算法中有幾大難題,其中K值的選擇就是其中之一,它通常是通過經(jīng)驗來確定的。因此,傳統(tǒng)的k-means更適合于待聚類數(shù)據(jù)屬于較少類別(K<10)的情況。但是,本發(fā)明目的是進行同義詞的挖掘,不同領(lǐng)域同義詞的類別更是數(shù)以百或千計,所以,為了提高聚類的效率和適用性,在本發(fā)明的一個具體實施例中對傳統(tǒng)的k-means算法進行改進,改進的算法避免了K值的選擇難題,具有更好的適用性。
具體的,假定共有T個詞向量QT,則根據(jù)T個詞向量QT對各單獨詞進行聚類處理,聚類處理模塊430包括初始化單元和聚類集生成單元,包括:
初始化單元,用于初始化K值、中心點PK-1、以及聚類問題集{K,[PK-1]},其中,K表示聚類的類別數(shù),K的初始值為1,中心點PK-1的初始值為P0,P0=Q1,Q1表示第一個單獨詞的詞向量,聚類問題集的初始值為{1,[Q1]};
聚類集生成單元,用于從第二個單獨詞的詞向量開始,依次對剩下的詞向量進行聚類,計算當前詞向量與每個聚類問題集的中心點的相似度,如果當前詞向量與某個聚類問題集的中心點的相似度大于或等于預(yù)設(shè)值,則將當前詞向量聚類到相應(yīng)的聚類問題集中,保持K值不變,將相應(yīng)的中心點更新為聚類問題集中所有詞向量的向量平均值,相應(yīng)的聚類問題集為{K,[聚類問題集中所有詞向量的向量平均值]};如果當前詞向量與所有聚類問題集中的中心點的相似度均小于預(yù)設(shè)值,則令K=K+1,增加新的中心點,所述新的中心點的值為當前詞向量,并增加新的聚類問題集{K,[當前詞向量]}。
下面以對Q2聚類進行舉例說明:計算Q2與Q1的語義相似度I,若相似度I大于設(shè)定預(yù)設(shè)值(可根據(jù)需求靈活設(shè)定),則認為Q2和Q1屬于同一個類,此時K=1不變,P0更新為Q1和Q2的向量平均值,聚類的問題集為{1,[Q1,Q2]};若相似度I小于設(shè)定閾值,則Q2和Q1屬于不同的類,此時K=2,P0=Q1,P1=Q2,聚類的問題集為{1,[Q1]},{2,[Q2]}。
采用上述方法依次對剩余其他問句進行聚類完成的同時可以得到K最終值。
可見,改進的k-means算法避免了傳統(tǒng)的k-means算法中K值選擇難的問題。該算法采用動態(tài)調(diào)整中心點的方法,它是對每個單獨詞的分類都會更新對應(yīng)類的語義中心點,即各個類的中心點是所有屬于該類的平均。因此,各個類的中心點只有一個,可以提高效率;并且,待聚類單獨詞和各個類別之間的語義距離是計算該單獨詞和各個類別的語義中心點的距離,因此準確率較高。
進一步地,在本發(fā)明的一個較佳實施例中,所述裝置還包括:優(yōu)化模塊480,該優(yōu)化模塊480為了提高聚類處理的正確率,在得到同義詞集后,還可以計算聚類處理的準確率,當確定出聚類處理的準確率小于預(yù)定準確率閾值時,調(diào)整聚類處理所采用的聚類算法中的指定參數(shù)值,更或者是調(diào)整分詞詞典。在本發(fā)明實施例中,計算聚類處理的準確率時,可以依據(jù)給出的每個聚類處理是否正確的指示來確定聚類處理的準確率。
例如,如果聚類處理的準確率小于預(yù)定準確率閾值,則可能是由于聚類算法中設(shè)定的“預(yù)設(shè)值”設(shè)置的不準確,可以調(diào)整該預(yù)設(shè)值,也可能是在分詞時出現(xiàn)問題,導(dǎo)致相似度計算的不準確,此時可以調(diào)整分詞詞典,這些處理都可以使聚類處理更加準確。
進一步地,在本發(fā)明的一個具體實施例中,編輯距離計算模塊440,具體用于確定兩個單獨詞中由一個單獨詞到另一個單獨詞所需的編輯操作,根據(jù)預(yù)先設(shè)置的對一個字符的不同編輯操作與編輯距離值的對應(yīng)關(guān)系,計算確定的各編輯操作對應(yīng)的編輯距離值的和值,并以該和值作為兩個單獨詞之間的編輯距離。
綜上可知,本實施例所述裝置,使用詞向量的方法來表征詞的含義,然后,利用聚類算法對得到的詞向量進行語義聚類,能夠有效的實現(xiàn)廣義同義詞集的挖掘,為自然語言處理中解決同義詞挖掘的難題提供新的思路和方法。并且,當將挖掘的同義詞集應(yīng)用于自然語言處理領(lǐng)域時,可以提高知識點過濾任務(wù)、關(guān)鍵詞提取任務(wù)、文本分類任務(wù)、語義聚類任務(wù)等的準確性;
另外,本發(fā)明實施例在實現(xiàn)廣義同義詞集的挖掘后,還可以基于該廣義同義詞集進行縮略詞-完整詞對的挖掘,當將挖掘的具有縮略詞-完整詞對的同義詞集應(yīng)用于自然語言處理領(lǐng)域時,可以進一步提高其相應(yīng)任務(wù)的執(zhí)行準確性。
本領(lǐng)域普通技術(shù)人員可以理解上述實施例的各種方法中的全部或部分步驟是可以通過程序來指令相關(guān)的硬件來完成,該程序可以存儲于一計算機可讀存儲介質(zhì)中,存儲介質(zhì)可以包括:ROM、RAM、磁盤或光盤等。
總之,以上所述僅為本發(fā)明的較佳實施例而已,并非用于限定本發(fā)明的保護范圍。凡在本發(fā)明的精神和原則之內(nèi),所作的任何修改、等同替換、改進等,均應(yīng)包含在本發(fā)明的保護范圍之內(nèi)。