成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

文本相似度判定

開(kāi)發(fā) 后端
針對(duì)文本相似判定,本文提供余弦相似度和SimHash兩種算法,并根據(jù)實(shí)際項(xiàng)目遇到的一些問(wèn)題,給出相應(yīng)的解決方法。經(jīng)過(guò)實(shí)際測(cè)試表明:余弦相似度算法適合于短文本,而SimHash算法適合于長(zhǎng)文本,并且能應(yīng)用于大數(shù)據(jù)環(huán)境中。

簡(jiǎn)介

        針對(duì)文本相似判定,本文提供余弦相似度和SimHash兩種算法,并根據(jù)實(shí)際項(xiàng)目遇到的一些問(wèn)題,給出相應(yīng)的解決方法。經(jīng)過(guò)實(shí)際測(cè)試表明:余弦相似度算法適合于短文本,而SimHash算法適合于長(zhǎng)文本,并且能應(yīng)用于大數(shù)據(jù)環(huán)境中。

余弦相似度

原理

        余弦定理:

wps4663.tmp                  wps46F1.tmp

圖-1 余弦定理圖示

         性質(zhì):

         余弦值的范圍在[-1,1]之間,值越趨近于1,代表兩個(gè)向量的方向越趨近于0°,他們的方向更加一致,相應(yīng)的相似度也越高。需要指出的是,在文本相似度判定中,因?yàn)槲谋咎卣飨蛄慷x的特殊性,其余弦值范圍為[0,1],即向量夾角越趨向于90°,則兩向量越不相似。

向量空間模型

        VSM(Vector Space Model)把對(duì)文本內(nèi)容的處理簡(jiǎn)化為向量空間中的向量運(yùn)算。

        概念:

        1)文檔(D):泛指文檔或文檔片段,一般表征一篇文檔。

        2)詞匯(T):文本內(nèi)容特征的基本語(yǔ)言單位,包含字、詞、詞組或短語(yǔ)。

        3)權(quán)重(W):表征詞匯T的權(quán)重,在文檔D中的重要程度。

        權(quán)重:

        目前表征一個(gè)字詞在一個(gè)文本集或者語(yǔ)料庫(kù)中某篇文本中的重要程度的統(tǒng)計(jì)方法為T(mén)F-IDF(term frequency–inverse document frequency),詞匯的重要性隨著它在文件中出現(xiàn)的次數(shù)成正比增加,但同時(shí)會(huì)隨著它在語(yǔ)料庫(kù)中出現(xiàn)的頻率成反比下降,詳細(xì)內(nèi)容在此不贅述。但是本文在實(shí)際項(xiàng)目中面臨的問(wèn)題是,文本集是變動(dòng)的,而且變化速率比較快,因此并不適用于采用TF-IDF方法。本文采用非常簡(jiǎn)單直觀的方法,即以詞頻來(lái)表征該詞匯在文本中的重要程度(即權(quán)重)。

        向量對(duì)齊:

        由于在實(shí)際應(yīng)用中,表征文本特征的兩個(gè)向量的長(zhǎng)度是不同的,因此必然需要對(duì)上述向量進(jìn)行處理。目前存在兩種方法:1)剔除掉向量中不重要的詞匯,從而使得兩個(gè)向量長(zhǎng)度保持一致,目前主要依靠經(jīng)驗(yàn)設(shè)定一些關(guān)鍵詞來(lái)處理,但是其準(zhǔn)確率不可保證;2)歸并向量,并根據(jù)原向量是否在新向量(歸并后的向量)存在,若存在則以該詞匯的詞頻來(lái)表征,若不存在則該節(jié)點(diǎn)置為0,示例如下:

        Text1: 我/是/中國(guó)人/

        Text2: 我們/是/中國(guó)人/

        Vector: 我/是/中國(guó)人/我們/

        Vector1 = (1, 1, 1, 0)

        Vector2 = (0, 1, 1, 1)

        上述“/”為采用IK分詞,智能切分后的間隔符,則歸并后的向量如Vector所示,對(duì)齊后的向量分別為Vector1 和Vector2。之后則根據(jù)兩向量的余弦值確定相似度。

文本特例

        由于在實(shí)際項(xiàng)目中,本文發(fā)現(xiàn)了2個(gè)特例,并相應(yīng)給出了解決方案。

        1)長(zhǎng)句包含短句(無(wú)需完全包含):

        Text1:“貫徹強(qiáng)軍目標(biāo)出實(shí)招用實(shí)勁 努力開(kāi)創(chuàng)部隊(duì)建設(shè)新局面”

        Text2:“在接見(jiàn)駐浙部隊(duì)領(lǐng)導(dǎo)干部時(shí)強(qiáng)調(diào) 貫徹強(qiáng)軍目標(biāo)出實(shí)招用實(shí)勁 努力開(kāi)創(chuàng)部隊(duì)建設(shè)新局面”

        上述兩個(gè)文本為網(wǎng)絡(luò)上實(shí)際的網(wǎng)頁(yè)標(biāo)題,若簡(jiǎn)單以余弦相似度來(lái)判定,其誤判率是比較高的。本文解決方案為:若長(zhǎng)句長(zhǎng)度(中文切分后以詞匯為單位表征,并非以字符為單位)為短句的1.5倍,則針對(duì)長(zhǎng)句選定短句長(zhǎng)度的文本內(nèi)容逐個(gè)與短句進(jìn)行相似度判定,直至長(zhǎng)句結(jié)束,若中間達(dá)到預(yù)設(shè)的閾值,則跳出該循環(huán),否則判定文本不相似。

        2)文本中存在同義表述

        Text1:“臺(tái)灣居民明日起持臺(tái)胞證可通關(guān) 無(wú)需辦理簽注”

        Text2:“明起臺(tái)胞來(lái)京無(wú)需辦理簽注 電子臺(tái)胞證年內(nèi)實(shí)施”

        上述兩個(gè)文本中“臺(tái)胞”和“臺(tái)灣居民”,“明日起”和“明起”為同義表述,可以理解為近義詞,但不完全為近義詞范疇。本文解決方案為引入同義詞詞典,鑒于中文詞匯的豐富性,其能在一定程度上緩解,仍然不是根本解決之法。

應(yīng)用場(chǎng)景及優(yōu)缺點(diǎn)

        本文目前將該算法應(yīng)用于網(wǎng)頁(yè)標(biāo)題合并和標(biāo)題聚類中,目前仍在嘗試應(yīng)用于其它場(chǎng)景中。

        優(yōu)點(diǎn):計(jì)算結(jié)果準(zhǔn)確,適合對(duì)短文本進(jìn)行處理。

        缺點(diǎn):需要逐個(gè)進(jìn)行向量化,并進(jìn)行余弦計(jì)算,比較消耗CPU處理時(shí)間,因此不適合長(zhǎng)文本,如網(wǎng)頁(yè)正文、文檔等。

 

  余弦相似度算法源程序:

[[152097]] Class Element
[[152097]] Class TextCosine

  備注:同義詞詞典“synonyms.dict”文件較大,完全可以自己構(gòu)建,在此就不贅述了。

 

SimHash

        SimHash為Google處理海量網(wǎng)頁(yè)的采用的文本相似判定方法。該方法的主要目的是降維,即將高維的特征向量映射成f-bit的指紋,通過(guò)比較兩篇文檔指紋的漢明距離來(lái)表征文檔重復(fù)或相似性。

過(guò)程

        該算法設(shè)計(jì)十分精巧,主要過(guò)程如下:

        1.  文檔特征量化為向量;

        2.  計(jì)算特征詞匯哈希值,并輔以權(quán)重進(jìn)行量化;

        3.  針對(duì)f-bit指紋,按位進(jìn)行疊加運(yùn)算;

        4.  針對(duì)疊加后的指紋,若對(duì)應(yīng)位為正,則標(biāo)記為1,否則標(biāo)記為0。

  備注:此處f-bit指紋,可以根據(jù)應(yīng)用需求,定制為16位、32位、64位或者其它位數(shù)等。

       如圖-2所示,為SimHash作者Charikar在論文中的圖示,本文結(jié)合實(shí)際項(xiàng)目解釋如下:Doc表征一篇文本,feature為該文本經(jīng)過(guò)中文分詞后的詞匯組合,按列向量組織,weight為對(duì)應(yīng)詞匯在文本中的詞頻,之后經(jīng)過(guò)某種哈希計(jì)算得出哈希值,見(jiàn)圖中1和0的組合,剩余部分不再贅述。需要指出,Charikar在論文中并未指定需要采用哪種哈希函數(shù),本文作者認(rèn)為,只要哈希計(jì)算值能夠均衡化、分散化,哈希函數(shù)可以根據(jù)實(shí)際應(yīng)用場(chǎng)景進(jìn)行設(shè)計(jì),本文在實(shí)際的項(xiàng)目中自行設(shè)計(jì)哈希函數(shù),雖未經(jīng)過(guò)完全驗(yàn)證,但是測(cè)試結(jié)果表明,該函數(shù)當(dāng)前能夠滿足需求。

wps46F2.tmp

圖-2 SimHash處理過(guò)程

漢明距離

        漢明距離應(yīng)用于數(shù)據(jù)傳輸差錯(cuò)控制編碼,它表示兩個(gè)(相同長(zhǎng)度)字對(duì)應(yīng)位不同的數(shù)量。鑒于SimHash***計(jì)算出的指紋采用0和1進(jìn)行組織,故而用其來(lái)衡量文檔相似性或者重復(fù)性,該部分詳細(xì)內(nèi)容在此不再贅述。

應(yīng)用場(chǎng)景與優(yōu)缺點(diǎn)

        本文目前將該算法應(yīng)用于話題發(fā)現(xiàn)和內(nèi)容聚合等場(chǎng)景中,同時(shí)也在嘗試其它應(yīng)用場(chǎng)景。

        優(yōu)點(diǎn):文本處理速率快,計(jì)算后的指紋能夠存儲(chǔ)于數(shù)據(jù)庫(kù),因此對(duì)海量文本相似判定非常適合。

        缺點(diǎn):由于短文本的用于哈希計(jì)算的數(shù)據(jù)源較少,因此短文本相似度識(shí)別率低。

 

  SimHash算法源程序: 

[[152097]] Class TermDict
[[152097]] Class SimHash

  備注:源程序中“131313”只是作者挑選的一個(gè)較大的素?cái)?shù)而已,不代表特別含義,該數(shù)字可以根據(jù)需求進(jìn)行設(shè)定。

責(zé)任編輯:李英杰 來(lái)源: 博客園
相關(guān)推薦

2021-06-23 18:36:20

AI

2024-05-23 08:48:21

2025-01-14 13:51:44

2019-12-11 10:50:06

JS圖片前端

2024-05-30 08:40:41

大型語(yǔ)言模型LLM人工智能

2021-12-07 09:51:06

神經(jīng)網(wǎng)絡(luò)AI算法

2023-11-21 16:06:04

計(jì)算機(jī)視覺(jué)人工智能

2010-03-09 16:26:08

Python列表

2023-10-10 15:33:55

機(jī)器學(xué)習(xí)相似性度量

2013-08-29 14:28:58

海量數(shù)據(jù)simhash

2013-08-28 13:44:42

數(shù)據(jù)算法

2022-11-30 07:49:49

交互事件屏幕手勢(shì)識(shí)別

2019-09-20 13:34:35

蘇寧文本匹配自然語(yǔ)言

2024-08-29 09:03:56

2024-09-23 14:36:20

2024-12-31 08:20:00

暹羅網(wǎng)絡(luò)機(jī)器學(xué)習(xí)神經(jīng)網(wǎng)絡(luò)

2024-04-07 14:48:00

模型訓(xùn)練

2010-02-01 16:32:49

Python腳本

2010-02-05 17:04:31

Android版本

2022-10-26 13:36:59

模型計(jì)算
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)

主站蜘蛛池模板: 国产黄色免费网站 | 亚洲精品一区二区在线观看 | aaa在线观看 | 国产成人精品午夜视频免费 | 久久精品色欧美aⅴ一区二区 | 日韩1区| 国产精品久久 | 国产精品久久国产精品久久 | 精品国产一区二区三区av片 | 欧美午夜精品 | 亚洲高清av| 精品国产乱码久久久 | 日本在线视 | 国产福利免费视频 | 久热伊人 | 国产综合久久 | 欧美精品第三页 | 盗摄精品av一区二区三区 | 精品久久国产 | 成人精品一区二区三区中文字幕 | 亚洲一区欧美一区 | 欧美日韩午夜精品 | 欧美黄色精品 | 亚洲国产精品一区二区三区 | 欧美福利专区 | 日日草天天干 | 国产精品国产a级 | 精品一二区 | 久久久久久久久中文字幕 | 久久久一区二区 | 日本电影网站 | 成人1区2区 | 黑人性hd | 中文字幕精品一区 | 狠狠色综合网站久久久久久久 | 国产高清视频在线 | 嫩草研究影院 | 在线观看国产91 | 日本三级播放 | 国产福利91精品 | 蜜桃av一区二区三区 |