導航:首頁 > 計算方法 > 短文相似度計算方法

短文相似度計算方法

發布時間:2022-04-21 20:39:10

⑴ python計算文章相似度有什麼比較好的實踐

基於用戶相似度的推薦中,一般採用Pearson相關系數;
基於物品相似度的推薦中,改進的餘弦相似度效果更好。

如何計算網站網頁相似度

據統計,網頁上的大部分相同的頁面佔29%,而主體內容完全相同的佔22%,這些重復網頁有的是沒有一點改動的拷貝,有的在內容上稍作修改,比如同一文章的不同版本,一個新一點,一個老一點,有的則僅僅是網頁的格式不同(如 HTML, Postscript),文獻[Models and Algorithms for Duplicate Document Detection 1999年]將內容重復歸結為以下四個類型:
1.如果2篇文檔內容和格式上毫無差別,則這種重復叫做full-layout plicate。
2.如果2篇文檔內容相同,但是格式不同,則叫做full-content plicates
3.如果2篇文檔有部分重要的內容相同,並且格式相同,則稱為partial-layout plicates
4.如果2篇文檔有部分重要的內容相同,但是格式不同,則稱為partial-content plicates
網頁去重的任務就是去掉網頁中主題內容重復的部分。它和網頁凈化(noise rection),反作弊(antispam) 是搜索引擎的3大門神
去重在我看來起碼有四好處:減少存儲;增強檢索效率;增強用戶的體驗;死鏈的另一種解決方案。
目前從網路的搜索結果來看,去重工作做的不是很完善,一方面可能是技術難度(precision和recall都超過90%還是很難的);另一方面可能是重復的界定,比如轉載算不算重復?所以另一項附屬的工作是對個人可寫的頁面(PWP)進行特殊的處理,那麼隨之而來的工作就是識別PWP頁面。^_^這里就不扯遠呢。
問題如何解決?
網頁的deplication,我們的演算法應該是從最簡單的開始,最樸素的演算法當然是
對文檔進行兩兩比較,如果A和B比較,如果相似就去掉其中一個
然而這個樸素的演算法,存在幾個沒有解決的問題:
0.要解決問題是什麼?full-layout?full-content?partial-layout還是partial-content?
1. 怎麼度量A 和 B的相似程度
2. 去掉A還是去掉B,如果A ~B(~表相似,!~表示不相似),B~C 但是 A!~C,去掉B的話,C就去不掉。另一個更深入的問題是,演算法的復雜度是多少?假設文檔數為n,文檔平均長度為m,如果相似度計算復雜度為m的某一個復雜度函數:T=T(m),文檔兩兩比較的復雜度是O(n^2),合起來是O(n^2 * T(m)) . 這個復雜度是相當高的,想搜索引擎這樣處理海量數據的系統,這樣的復雜度是完全不能接受的,所有,另外三個問題是:
3. 如何降低相似度計算的復雜化度
4. 如何減少文檔比較的復雜度
5. 超大數據集該如何處理
第0個問題是,我們要解決的關鍵,不同的問題有不同的解決方法,從網頁的角度來看,結構的重復並不能代表是重復,比如產品展示頁面,不同的產品展示頁面就有相同的文檔結構。內容來看,復制網站會拷貝其他網站的主要內容,然後加些廣告或做些修改。所以,解決的問題是,partial-content deplication,那麼首先要抽取網頁的主體內容。演算法變成:
抽取文檔主體內容,兩兩比較內容的相似性,如果A和B相似,去掉其中一個
其次,問題2依賴於問題1的相似度度量,如果度量函數具有傳遞性,那麼問題2就不存在了,如果沒有傳遞性,我們的方法是什麼呢?哦,那就找一個關系,把相似關系傳遞開嘛,簡單,聚類嘛,我們的框架可以改成:
抽取文檔主體內容,兩兩比較內容的相似性,如果A和B相似,把他們聚類在一起,最後一個類里保留一個page
最後,歸納為幾個步驟
第一步:識別頁面的主題內容,網頁凈化的一部分,以後討論
第二步:計算相似度
第三步:聚類演算法,計算出文檔那些文檔是相似的,歸類。
核心的問題是,「如何計算相似度?」這里很容易想到的是
1. 計算內容的編輯距離edit distance(方法很有名,但是復雜度太高)
2. 把內容分成一個個的token,然後用集合的jaccard度量(好主意,但是頁面內容太多,能不能減少啊?)
好吧,但是,當然可以減少集合的個數呢,采樣,抽取滿足性質的token就可以啦,如滿足 mod m =0 的token,比如有實詞?比如stopwords。真是絕妙的注意.在把所有的idea放一起前,突然靈光一現,啊哈,
3. 計算內容的信息指紋,參考google研究員吳軍的數學之美系列。
把他們放在一起:
第一步:識別頁面的主題內容,網頁凈化的一部分,以後討論
第二步:提取頁面的特徵。將文章切分為重合和或不重合的幾個結合,hash out
第三步:用相似度度量來計算集合的相似性,包括用信息指紋,Jaccard集合相似度量,random projection等。
第四步:聚類演算法,計算出文檔那些文檔是相似的,歸類。
方法分類:
按照利用的信息,現有方法可以分為以下三類
1.只是利用內容計算相似
2.結合內容和鏈接關系計算相似
3.結合內容,鏈接關系以及url文字進行相似計算
一般為內容重復的去重,實際上有些網頁是
按照特徵提取的粒度現有方法可以分為以下三類
1.按照單詞這個級別的粒度進行特徵提取.
2.按照SHINGLE這個級別的粒度進行特徵提取.SHNGLE是若干個連續出現的單詞,級別處於文檔和單詞之間,比文檔粒度小,比單詞粒度大.
3.按照整個文檔這個級別的粒度進行特徵提取
演算法-具體見真知
1. I-Match
2. Shingling
3. Locality Sensitive Hashing.(SimHash)
4. SpotSigs
5. Combined

⑶ 相似度計算

你是求一個相似度演算法:
如果一個公司真實排名為x1,
而你的打分排名是
x2,
怎麼搞一個合理的評分數呢?
對差值的絕對值進行打分
|x1-x2|=0
得14分(28的一半)
|x1-x2|>=14

0分
就是:|差值|>14
得0分,|差值|<=14,得
14-|差值|
滿分
14x28
分,
這樣對28個排名,就可以算出得分了
相似度=得分/(14x28)
x
100
(%)
用c語言編個計算小程序很簡單。

⑷ 如何進行相似度的計算,主要用什麼方式

如何計算句子的語義相似度,很容易想到的是向量空間模型(VSM)和編輯距離的方法,比如A:「我爸是李剛」,B:「我兒子是李剛」,利用VSM方法A(我,爸,是,李剛)B(我,兒子,是,李剛),計算兩個向量的夾角餘弦值,不贅述;編輯距離就更好說了將「爸」,「兒子」分別替換掉,D(A,B)= replace_cost;
這是兩種相當呆的方法,屬於baseline中的baseline,換兩個例子看一下就知道A:「樓房如何建造?」,B:「高爾夫球怎麼打?」,C:「房子怎麼蓋?」,如果用VSM算很明顯由於B,C中有共同的詞「怎麼」,所以BC相似度高於AC;編輯距離同理;
解決這種問題方法也不難,只要通過同義詞詞典對所有句子進行擴展,「如何」、「怎麼」,「樓房」、「房子」都是同義詞或者近義詞,擴展後再算vsm或者edit distance對這一問題即可正解.這種方法一定程度上解決了召回率低的問題,但是擴展後引入雜訊在所難免,尤其若原句中含有多義詞時.例如:「打醬油」、「打毛衣」.在漢字中有些單字詞表達了相當多的意義,在董振東先生的知網(hownet)中對這種類型漢字有很好的語義關系解釋,通過hownet中詞語到義元的樹狀結構可以對對詞語粒度的形似度進行度量.
問題到這里似乎得到了不錯的解答,但實際中遠遠不夠.VSM的方法把句子中的詞語看做相互獨立的特徵,忽略了句子序列關系、位置關系對句子語義的影響;Edit Distance考慮了句子中詞語順序關系,但是這種關系是機械的置換、移動、刪除、添加,實際中每個詞語表達了不同的信息量,同樣的詞語在不同詞語組合中包含的信息量或者說表達的語義信息大不相同.What about 句法分析,計算句法樹的相似度?這個比前兩種方法更靠譜些,因為句法樹很好的描述了詞語在句子中的地位.實際效果要待實驗證實.
對了,還有一種方法translation model,IBM在機器翻譯領域的一大創舉,需要有大量的語料庫進行訓練才能得到理想的翻譯結果.當然包括中間詞語對齊結果,如果能夠利用web資源建立一個高質量的語料庫對兩兩相似句對通過EM迭代詞語對齊,由詞語對齊生成句子相似度,這個.想想還是不錯的方法!

⑸ 如何計算兩個文檔的相似度

如何計算兩個文檔的相似度
winmerge用這個軟體
操作步驟為:
FC——文件比較命令
1.功能:比較文件的異同,並列出差異處。
2.類型:外部命令
3.格式:FC[盤符:][路徑名]〈文件名〉[盤符:][路徑名][文件名][/A][/B][/C][/N]
4.使用說明:
(1)選用/A參數,為ASCII碼比較模式;
(2)選用/B參數,為二進制比較模式;
(3)選用/C參數,將大小寫字元看成是相同的字元。
(4)選用/N參數,在ASCII碼比較方式下,顯示相異處的行號。

⑹ 怎樣計算兩篇文檔的相似度

winmerge用這個
操作步驟為:
FC——文件比較命令
1.功能:比較文件的異同,並列出差異處。
2.類型:外部命令
3.格式:FC[盤符:][路徑名]〈文件名〉[盤符:][路徑名][文件名][/A][/B][/C][/N]
4.使用說明:
(1)選用/A參數,為ASCII碼比較模式;
(2)選用/B參數,為二進制比較模式;
(3)選用/C參數,將大小寫字元看成是相同的字元。
(4)選用/N參數,在ASCII碼比較方式下,顯示相異處的行號。

⑺ 搜索引擎如何判斷網頁文章的重復度

搜索引擎如何判斷網頁文章的重復度?
在這個科技高度發達的時代,網路已經成為人們能獲取消息的主要途徑。但如今的網路,到處充斥著一些重復的內容,對用戶的訪問造成很大的困擾。因此,網路需要對網頁重復進行判斷,對重復的網頁,只選取一些高質量的我那工業,共用戶瀏覽。然而,現有技術中一般是通過比較兩個頁面的內容和借點,來確認兩個頁面的相似度。
這種方法能夠計算的比較准確,可時間復雜度太高,計算很費時間。通過對一個頁面中的某些重要信息進行簽名,然後比較兩個頁面的簽名,來計算相似度,這種方式比較簡單高效,計算速度比較快,比較適合網路這種海量信息的應用場景。

1,網站重復內容的判斷
A,獲取多個網頁;
B,分別提取網頁的網頁正文;
C,從網頁正文中提取一個或多個句子,並根據一個或多個句子計算網頁正文句子簽名;
D,根據網頁正文句子簽名對多個網頁進行聚類;
E,針對每一類下的網頁,計算網頁的附加簽名;
F,根據附加簽名判斷每一類下的網頁是否重復。
通過上述方式,網頁重復的判斷系統及其判斷方法通過包括網頁正文句子簽名在內的多維度簽名有效且快速地判斷網頁是否重復。
廣告圖
網站頁面基本架構
提取正文
A,對網頁進行分塊;
B,對分塊後的網頁進行塊過濾,以獲取包含網頁正文的內容快;
C,從內容塊中提取網頁正文。
正文分句
A,對網頁正文進行分句;
在本步驟中,可利用分號,句號,感嘆號等表示句子完結的標志符號來對網頁正文進行分句。此外,還可以通過網頁正文的視覺信息來對網頁正文進行分句。
B,對分句後的網頁正文進行過濾及轉換;
在步驟中,首先過濾掉句子中的數字信息;版權信息以及其他對網頁重復判斷不起決定性作用的信息。隨後,對句子進行轉換,例如,進行全形/半形轉換或者繁體/簡體轉換,以使得轉換後的句子的格式統一。
C,從過濾及轉換後的網頁正文中提取最長的一個或多個句子;
在本步驟中,過濾及轉換後的網頁正文提取出最長的一個句子或者做場的預定數量連續句子的組合。例如,某個網頁實例中,經過過濾及轉換後的某段最長,遠超其他句子,因此可選擇該段為網頁正文句子,或者選擇最長的連續句子組合作為網頁正文句子。
D,對一個或多個句子進行hash簽名運算,以獲取網頁正文句子簽名。
simhash演算法就是比較各網頁的附加簽名是否相同或相似來判斷網頁是否重復。具體來說,在比較利用simhash簽名運算獲得的網頁正文簽名時,比較網頁正文簽名的不同位數,不同位越少,表示網頁重復的可能性越高,在比較其他的附加簽名時,若附加簽名相等,表示網頁在該緯度上重復。
總結:
1、兩個網頁的真實標題簽名相同。
2、兩個我那工業的網頁內容簽名相同。
3、兩個網頁的網頁正文簽名的不同位數小於6.。
4、兩個網頁的網頁位置簽名相同,並且url文件名簽名相同。
5、評論塊簽名、資源簽名、標簽標題簽名、摘要簽名、url文件名簽名中有三個簽名相同。
附加信息整站判斷重復標准:
通過兩兩頁面比較,可以得到真重復url的集合。一般來說,如果這個真重復url集合中的網頁的數量/整個網頁集中網頁的數量大於30%,則認為整個網頁集都是真重復,否則就是假重復。

⑻ 中文短句相似度匹配方法

一、原始落後的VSM
網上搜索關鍵詞「短文本 相似度」,出來的結果基本上都是以BOW(Bag of words)的VSM方案,大致流程如下:

分詞 —> 提取關鍵詞 —> 計算tf或if-idf,以向量的形式替換原文本 —> 文本相似度的問題轉變為計算向量相似度
一開始這樣的一個思路,很清晰明了,而且網上相應的資料也很多,然後就開搞吧。

1、把所有短文本去掉標點符號,用jieba分詞分好詞,去除停用詞,得到分好的文本;

2、按一定規則抽取特徵詞彙,作為後期向量的每一維;

3、用sklearn庫中的原生方法CountVectorizer、TfidfVectorizer等得到矩陣;

4、每個短文本計算對應得到的向量,採用K-Means聚類的方法進行非監督學習。

文本分類的大致思路基本上就如上所述,具體的細節調整就視實際情況而定。然而,想法是美好的,現實是殘酷的,全部分好詞的文本,抽取的特徵詞較多,即向量的維度較大,且向量是稀疏的,在使用K-Means時,會出現有個別cluster下的文本數量特別大;

⑼ 如何計算兩個文本內容的相似度

樓上說的挺全面,這種類型的比較,方法有很多,基本都是先轉換成同一種編碼格式進行字元串比較,返回下標,轉換成現有字元串。但是如果考慮性能的話,就應該用遞歸去做。

個人愚見~

⑽ 將來可能實現由人工智慧來批閱高考作文嗎

有可能實現的,但是有很大難度。
在各種考試系統中,客觀題標注技術已經非常成熟,在考試系統中,針對選擇題和填空題的自動評分技術在各個考試系統中得到了廣泛的應用。然而,主觀題閱卷技術的發展一直比較緩慢,主要是因為一些核心技術還處於發展階段,如自然語言理解、模式識別、人工智慧等技術還處於研究的初級階段。然而,在前沿技術方面,實際上也有人研究了基於人工智慧和大數據的主觀題智能閱卷技術。
主觀智能閱卷的主要技術途徑是基於人工智慧和大數據分析的自然語言處理技術。

根據主觀題的評分過程,評分系統主要分為五個部分:分句、分詞、句法分析、詞相似度計算和句子相似度計算。智能評分系統在對主觀題進行評分時,直接對句子語法的相似度進行評分。
我們現在來說一下難度的問題。
1.然而,對於漢語來說,實現自然語言處理技術是非常困難的。到目前為止,我國還沒有一個實用的、真正實現的主觀智能評分系統。由於漢語的復雜性,考生有很大的餘地來充分利用語言。如果演算法沒有包含相關的關鍵語義,則會導致閱卷時的錯誤判斷。

2.更不幸的是,由於研究方法和問題解決視角的不同,智能閱卷主觀題往往只能用於主體的淺信息結構和語義結構,主觀題智能閱卷處理簡述題,名詞解釋還可以,但針對相對復雜的主觀題,如小作文、大作文等,只能鞭長莫及。

3.即使在主觀智能評卷系統成熟之後,強大的社會壁壘也是促進主觀智能評卷的主要因素。沒有家長或學生會把自己的命運交給一組不成熟的機器。對人工智慧的不信任將成為主觀智能評分的最大問題。

根據目前人工智慧和大數據分析技術的發展趨勢,在教育領域,自動批閱是智能教育系統的必然方向。一方面,自動批閱可以避免人為錯誤,更客觀地反映閱卷結果,保證閱卷的客觀性和公正性。另一方面,在傳統的評卷模式下,自動批閱節省了教師的體力勞動,也讓教師節省了更多的教學時間和精力。

閱讀全文

與短文相似度計算方法相關的資料

熱點內容
雨井與管道連接方法 瀏覽:682
a2圖紙折疊方法視頻 瀏覽:714
用手機鍛煉的方法 瀏覽:512
貼牆倒立的正確方法 瀏覽:282
電磁治療儀器使用方法 瀏覽:251
科學研究方法通常有哪些 瀏覽:813
折紙最簡單的方法小星星的折法 瀏覽:644
游泳中暑的症狀及治療方法 瀏覽:839
防靜電表測量方法 瀏覽:271
完善高中教學方法 瀏覽:830
鼠年茅台鑒別方法 瀏覽:385
手機殼包漿方法 瀏覽:430
羽毛球空手訓練方法 瀏覽:386
在雲南種菜有哪些方法 瀏覽:99
前列腺增生是有哪些治療方法 瀏覽:554
十種頸椎病治療方法 瀏覽:454
單人訓練模式開啟方法 瀏覽:122
種植百合土壤消毒方法 瀏覽:737
化糞池兩端連接方法 瀏覽:608
注冊不了滴滴有什麼方法嗎 瀏覽:864