驟106輸出的第三同義詞對(duì)集構(gòu)建一元模型(Unigram),將生成的一 元模型值通過概率閾值過濾生成第四同義詞對(duì)集。本發(fā)明在分布式集群上進(jìn)行Unigram計(jì) 算,Unieram i+宣公式加下:
[0093]
[0094] 其中,W1為第三同義詞對(duì)集中的任意詞語(yǔ),P (W1)為W1的一元模型值,表示W(wǎng)1在文 本集中出現(xiàn)的概率,C(W 1)表示詞語(yǔ)W1在文本集中出現(xiàn)的次數(shù),t表示文本集中所有詞語(yǔ)出 現(xiàn)的總次數(shù)。在Unigram模型的計(jì)算下,Unigram模型值就是詞語(yǔ)在文本集中出現(xiàn)的概率 值,將概率值少于閾值U,則過濾掉該對(duì)應(yīng)的同義詞對(duì),其中U根據(jù)需要自定義經(jīng)驗(yàn)值,最終 生成第四同義詞對(duì)集并輸出。第四同義詞對(duì)集是本發(fā)明最終生成的同義詞庫(kù),例如可以用 于搜索引擎,當(dāng)用戶在搜索欄里輸入關(guān)鍵字搜索時(shí),通過關(guān)鍵字在同義詞庫(kù)中的同義詞關(guān) 聯(lián)相關(guān)的網(wǎng)頁(yè)。例如:本發(fā)明生成的同義詞庫(kù)就可以應(yīng)用于公告搜索和云客服搜索中。
[0095] 由于通過步驟106過濾后,還有很多名詞類的同義詞剩下,如"秋冬連衣裙"與"秋 冬裝連衣裙",這兩個(gè)詞本質(zhì)上是同義詞,但在業(yè)務(wù)同義詞典上,可能是不需要的。"秋冬裝 連衣裙"的一元模型值小,出現(xiàn)的概率少,將把"秋冬裝連衣裙"從第三同義詞中刪除。如"戶 口本""戶口簿"這組同義詞,或許在業(yè)務(wù)同義詞詞典中正是需要的,需要保留下來。所以, 此時(shí)對(duì)于沒用的名詞類同義詞對(duì)的過濾,可通過對(duì)第三同義詞對(duì)集中的詞語(yǔ)構(gòu)建一元模型 (Unigram),采用Unigram模型的計(jì)算結(jié)果進(jìn)行篩選。因?yàn)槟硞€(gè)名詞假如不是業(yè)務(wù)重點(diǎn)詞, 則其Unigram模型下計(jì)算出來生成的出現(xiàn)概率應(yīng)該十分的低。所以篩選策略為:如果某個(gè) 名詞在Unigram模型的計(jì)算下,出現(xiàn)概率少于閾值U,則刪除該對(duì)應(yīng)的同義詞對(duì),其中U根 據(jù)需要自定義經(jīng)驗(yàn)值。
[0096] N元模型N-gram模型常用于分析在給定前η個(gè)詞的情況下,出現(xiàn)某個(gè)詞的概率。 常用的N-gram模型一般為一元模型Unigram,二元模型Bigram以及三元模型Trigram。
[0097] N-gram是一種在統(tǒng)計(jì)分析文本中被廣泛使用的概率語(yǔ)言模型。N表示長(zhǎng)文本中, 連續(xù)出現(xiàn)的N個(gè)詞。該模型基于馬爾科夫假設(shè),認(rèn)為:
[0098] (1)第η個(gè)詞出現(xiàn)的概率僅僅依賴于它前n-1個(gè)詞出現(xiàn)的概率;
[0099] (2) η個(gè)詞連續(xù)出現(xiàn)的概率等于這η詞分別出現(xiàn)的概率的乘積,用公式可表達(dá)成:
[0100] P (W1W2. ·· Wn) =P (W1) P (W21W1) P (W31W1W2)... P (Wn IW1W2. ·· Wn !)對(duì)于 P (W11W1W2. ·· W1 i) 可采用最大似然估計(jì)記性計(jì)算,即:
[0101]
[0102] 其中CaiW2. .. W1)表示在文本集語(yǔ)料中,W1W2. .. W1連續(xù)出現(xiàn)的頻率。
[0103] 本發(fā)明使用的Unigram模型,是指N=I的N-gram模型。在Unigram模型中,認(rèn)為 每個(gè)詞都是互相獨(dú)立的,它們的出現(xiàn)與其他詞無關(guān)。所以,對(duì)于上面公式有:
[0104] P (W1W2. . . ffn) =P (W1) P (W2)... P (Wn)
[0105] = 在上述公式中,t表示在文本集中,所有單詞出現(xiàn)的總數(shù)。
[0106] 本發(fā)明提供的同義詞的獲取方法除了對(duì)詞語(yǔ)進(jìn)行編輯距離處理之外,還通過對(duì)詞 語(yǔ)進(jìn)行無效詞過濾、余弦相似度過濾、詞性過濾和構(gòu)建一元模型處理生成更為準(zhǔn)確的同義 詞對(duì)集,實(shí)現(xiàn)了檢索出的同義詞更為準(zhǔn)確,并且沒有歧義詞語(yǔ)和無效詞語(yǔ)出現(xiàn)。
[0107] 因此,本發(fā)明還提供了一種基于上面所描述的同義詞的獲取方法所生成的同義詞 的搜索方法。該搜索方法包括:搜索引擎接收搜索請(qǐng)求,搜索請(qǐng)求中包括關(guān)鍵詞;搜索引擎 根據(jù)關(guān)鍵詞,從數(shù)據(jù)庫(kù)中查找到本發(fā)明的同義詞生成方法生成的同義詞;搜索引擎根據(jù)關(guān) 鍵詞和同義詞,進(jìn)行搜索,并將根據(jù)關(guān)鍵詞和同義詞搜索得到的搜索結(jié)果發(fā)送給用戶終端。 在本發(fā)明搜索方法中,同義詞的生成方法參見上面描述的,不再贅述。
[0108] 基于本發(fā)明上面所描述的同義詞的獲取方法所生成的同義詞除了可以應(yīng)用于用 戶在商務(wù)網(wǎng)站上進(jìn)行搜索的方法中之外,該方法還可以用于文本處理、同義詞查詢等場(chǎng)景。 以便以后用戶輸入關(guān)鍵字后,不僅可以顯示與該關(guān)鍵字相關(guān)的信息,而且還能顯示與該關(guān) 鍵字的同義詞相關(guān)的信息,這樣可以顯示更多的處理信息。
[0109] 圖3為本發(fā)明實(shí)施例二的同義詞的獲取裝置示意圖。如圖3所示,同義詞的獲取 裝置包括:分詞模塊301、過濾模塊302、編輯距離模塊303、向量模塊304、余弦模塊305、詞 性策略模塊306和一元模型模塊307。
[0110] 分詞模塊301,用于獲取文本集,對(duì)文本集進(jìn)行分詞生成第一詞語(yǔ)集。
[0111] 具體地,文本集是在服務(wù)器中預(yù)先準(zhǔn)備好的一組文本,例如:用戶與客服交流的聊 天記錄,這些文本或聊天記錄都存儲(chǔ)在服務(wù)器上,文本集就是在這個(gè)服務(wù)器上獲取的,或者 文本集來源于專業(yè)業(yè)務(wù)人員整理的知識(shí)點(diǎn)數(shù)據(jù)。
[0112] 對(duì)文本集進(jìn)行分詞的是利用具有將文本集中的語(yǔ)句段落進(jìn)行拆分,分成多個(gè)詞語(yǔ) 的功能的軟件或模塊來完成的,例如:阿里分詞(ALI word s印arate,ALIWS)軟件。例如分 詞模塊301對(duì)"請(qǐng)問新款的秋冬連衣裙今年什么時(shí)間上架啊"進(jìn)行分詞,分為"請(qǐng)問、新款、 的、秋冬連衣裙、今年、什么、時(shí)間、上架、啊"納入第一詞語(yǔ)集,"問問最新款連衣裙中的秋冬 裝連衣裙今年什么時(shí)候買"分為"問問、最新款、連衣裙、中、的、秋冬裝連衣裙、今年、什么時(shí) 候、買"也納入第一詞語(yǔ)集。
[0113] 過濾模塊302,用于對(duì)第一詞語(yǔ)集通過停詞表識(shí)別,進(jìn)行無效詞過濾生成第二詞語(yǔ) 集。
[0114] 具體地,過濾模塊302通過停詞表將第一詞語(yǔ)集中的無效詞過濾,比如"的,了, 啊"類似的詞過濾掉后生成第二詞語(yǔ)集。停詞表是一個(gè)包括有很多無效詞的詞庫(kù),無效詞 是沒有太多實(shí)際業(yè)務(wù)意義的詞或字,這些無效詞大多數(shù)是助詞、語(yǔ)氣詞和代詞等,例如:的, 了,啊,我的,你的。通過停詞表將第一詞語(yǔ)集中的無效詞過濾,比如"的,了,啊"類似的詞過 濾掉后生成第二詞語(yǔ)集。例如對(duì)第一詞語(yǔ)集中的"請(qǐng)問、新款、的、秋冬連衣裙、今年、什么、 時(shí)間、上架、啊"進(jìn)行無效詞過濾,生成"請(qǐng)問、新款、秋冬連衣裙、今年、什么、時(shí)間、上架"納 入第二詞語(yǔ)集,"問問最新款連衣裙中的秋冬裝連衣裙今年什么時(shí)候買"進(jìn)行無效詞過濾, 生成"問問、最新款、連衣裙、秋冬裝連衣裙、今年、什么時(shí)候、買"納入第二詞語(yǔ)集。經(jīng)過過 濾后生成的第二詞語(yǔ)集中的詞語(yǔ)比第一詞語(yǔ)集中的詞語(yǔ)更為準(zhǔn)確,并減少了第一詞語(yǔ)集的 冗余。
[0115] 編輯距離模塊303,用于對(duì)第二詞語(yǔ)集中的任意兩個(gè)詞語(yǔ)進(jìn)行編輯距離處理生成 第一同義詞對(duì)集。
[0116] 圖4為本發(fā)明實(shí)施例二的編輯距離模塊對(duì)詞語(yǔ)進(jìn)行編輯距離處理的裝置示意圖。 如圖4所示,對(duì)詞語(yǔ)進(jìn)行編輯距離處理具體包括以下步驟:
[0117] 第一判斷單元401,用于判斷任意兩個(gè)詞語(yǔ)的長(zhǎng)度比例是否小于等于2且大于等 于1/2,如果是則進(jìn)行下一步,如果否則計(jì)算結(jié)束。
[0118] 具體地,兩個(gè)詞語(yǔ)的長(zhǎng)度大于2后,再判斷是否詞語(yǔ)a的長(zhǎng)度〈=2*詞語(yǔ)b的長(zhǎng)度, 且詞語(yǔ)b的長(zhǎng)度〈=2*詞語(yǔ)a的長(zhǎng)度,如果結(jié)果為是則往下執(zhí)行,否則計(jì)算結(jié)束,其中wordl 為詞語(yǔ)a,w〇rd2為詞語(yǔ)b。例如:第二詞語(yǔ)集中的詞語(yǔ)"秋冬連衣裙"與"秋冬裝連衣裙"的 長(zhǎng)度比例是5/6, 5/6小于等于2且大于等于1/2,則進(jìn)行下一步驟。
[0119] 計(jì)算單元402,用于計(jì)算任意兩個(gè)詞語(yǔ)的編輯距離。
[0120] 具體地,例如:詞語(yǔ)"秋冬連衣裙"與"秋冬裝連衣裙"的編輯距離為1。編輯距離 是根據(jù)最短編輯(Levenshtein)距離法公式計(jì)算得來,Levenshtein距離,由俄羅斯科學(xué)家 Vladinir Levenshtein在1965年提出的一種字符串相似度計(jì)算概念,是指對(duì)于兩個(gè)字符 串,由其中一個(gè)轉(zhuǎn)成另一個(gè)所需要的最少編輯操作次數(shù)。其中,最短編輯距離主要的修改操 作包括:插入一個(gè)字符、刪除一個(gè)字符以及將一個(gè)字符替換成另一個(gè)字符,這3個(gè)修改操作 都是允許的編輯操作。如果兩個(gè)字符串間的編輯距離越少,則代表它們?cè)较嗨?,相反,則代 表它們?cè)讲煌?br>[0121] 第二判斷單元403,用于判斷任意兩個(gè)詞語(yǔ)的編輯距離是否為兩個(gè)詞語(yǔ)的長(zhǎng)度中 的最小長(zhǎng)度的1/2,如果是則進(jìn)行下一步,如果否則計(jì)算結(jié)束。
[0122] 具體地,判斷是否編輯距離dis〈=0. 5*兩個(gè)詞語(yǔ)長(zhǎng)度中的最小長(zhǎng)度,如果結(jié)果為 是則往下執(zhí)行,如果為否則計(jì)算結(jié)束。由于詞語(yǔ)"秋冬連衣裙"和"秋冬裝連衣裙"的最小 長(zhǎng)度為5,編輯距離1小于等于兩個(gè)詞語(yǔ)的長(zhǎng)度中的最小長(zhǎng)度5的1/2,則往下執(zhí)行。
[0123] 輸出單元404,用于輸出所有滿足判斷條件的兩個(gè)詞語(yǔ)為第一同義詞對(duì)集。
[0124] 具體地,輸出詞語(yǔ)a和詞語(yǔ)b為第一同義詞對(duì)集。輸出"秋冬連衣裙"與"秋冬裝 連衣裙"納入第一同義詞對(duì)集。
[0125] 其中,對(duì)第二詞語(yǔ)集中的任意兩個(gè)詞語(yǔ)進(jìn)行編輯距離處理生成第一同義詞對(duì)集的 具體計(jì)算邏輯程序?yàn)椋?br>[0126] input (wordl, word2):
[0127] (1)如果wordl,word2的單詞長(zhǎng)度大于2,則往下執(zhí)行,否則計(jì)算結(jié)束;
[0128] (2) 如 果 length (wordl) < = 2*length (word2)且 length (word2) <=2*length (wordl),則往下執(zhí)行,否則計(jì)算結(jié)束;
[0129] (3)計(jì)算 wordl,word2 的編輯距離,dis=Levenshtein(wordl,word2);
[0130] (4)如果 dis〈=0. 5*min (length (wordl),length (word2)),則輸出候選集(wordl, word2),計(jì)算結(jié)束。
[0131] " input (wordl, word2) " 表不:輸入詞語(yǔ) a 和詞語(yǔ) b;
[0132] (I) "如果wordl,W〇rd2的單詞長(zhǎng)度大于2,則往下執(zhí)行,否則計(jì)算結(jié)束"表示