文件相似性設計預言

2021-10-06 10:47:01 字數 939 閱讀 5680

當下較常用的相似度計算大致分為兩類:

一、主題模型

代表方式: lsa/lsi、nmf、lda、word2vec等。

描述:這類演算法可算作最簡單的機器學習,對於基礎文件進行主題過濾,計算出主題和詞語、主題和文件的關聯性,對於文件中語義的判定提供支援。

二、特徵向量+距離演算法

代表方式:simhash+漢明距離、余弦相似性、jaccard相似性係數等。

描述:此類演算法先對文件進行分詞,根據詞頻等權重量,將詞語抽象為空間向量,對其偏移進行計算,以作為相似性依據。

三、最終選擇

余弦相似性演算法。

一、分詞方案

二、儲存方案三、匹配方案一、相關技術

分詞:jieba

key-value:redis

二、檔案分析專案改動點

對於解析完成後的檔案內容,進行【分詞方案】、【儲存方案】、【匹配方案】的操作,並將結果存入file_similar表。

新增file_similar表,表結構:

字段型別

說明id

long

主鍵md5

varchar (128)

被對比檔案md5

md5_compare

varchar (128)

歷史檔案中篩選出的檔案md5

similar_flag

varchar (1)

相似判定標誌(1:是,0:否)

similarity

varchar (10)

相似度

相似性度量

二元向量的相似性度量 每一維都少的資訊量,主要是0,1等有 or 沒有屬性 dice 2 x y x y 2保證 0,1 維數不一致時,差別大。jaccard x y x y 交疊程度小時,值較低 交疊係數 x y min 互相之間的包含性,1 cosine x y 根號 x y 對於實值 只有co...

資料相似性

首先模擬一些資料出來 假設有這樣一些id是1 5的條目,然後有幾個人對他們看過的條目進行了評分 1 5 那麼我們可能有這樣的一組資料,格式是 人名 a b c 給定兩個人,如何計算他們的相似度,比如,在b和c裡,誰和a的評分最相似?給出一些方法 1 簡單匹配係數 matching coefficie...

相似性度量

一般而言,定義乙個距離函式d x,y 需要滿足以下幾個準則 1.d x,x 0 到自己的距離為0 2.d x,y 0 距離要非負 3.對稱性,d x,y d y,x 如果a到b距離是a,那麼b到a的距離也應該是a 4.三角形法則 兩個之和大於第三邊 d x,k d k,y d x,y 滿足這4個條件...