NLP 文字相似度(一)

2021-09-10 14:23:17 字數 1159 閱讀 5958

乙份文字,從結構上劃分可以是:字、詞、句、段、篇。文字比較的粒度是詞,一篇文章,可以劃分成n個不同的詞,選取其中包含重要資訊的m個詞作為這片文章的特徵。m個詞構成了m維的向量,兩個文字之間的比較就是兩個m維向量之間的比較。

向量之間如何比較?我們可以採用余弦相似度,其描述如下:

對於n維的向量a,b,其餘弦相似度為:

對於兩個句子a、b之間的比較,其步驟如下:

對於文字a、b,其處理流程是:

生成兩篇文章各自的詞頻向量;

計算兩個向量的余弦相似度,值越大就表示越相似。

採用詞頻統計是基於乙個假設:如果乙個詞很重要,應該會在文章**現多次。從上面的步驟可以看出,向量各維度(不同的詞)上的分數值用的是詞頻。如果乙個詞在在文章**現多次,這個詞應該會很重要,這樣的假設是否合理?你是否注意到,一篇文章**現最多次的可能是「的」、「是」、」在「…這類最常用的停用詞(stop words)。所以優化的乙個方向是:去停用詞。

根據事實,我們進一步調整假設:如果某個詞比較少見,但是它在這篇文章中多次出現,那麼它很可能反映了這篇文章的特性。這裡涉及了乙個新的概念:反文件頻率(idf,inverse document frequently),反文件頻率是文件頻率的倒數。

我們可以通過統計得到這麼幾個屬性:

文章的總詞數c;

該文出現次數最多的詞的出現次數d;

語料庫的文件總數s。

tf有兩種標準化方式:tf = b/c 或 tf = b/d,idf的計算公式為:idf = log(s/(a+1)),

tf-idf = 詞頻(tf) * 反文件頻率(idf)。

對於a、b文字相似度的處理流程如下:

生成兩篇文章各自的詞頻向量;

計算兩個向量的余弦相似度,值越大就表示越相似。

簇生成步驟

優缺點通過上述步驟生成的自動摘要,其特點如下:

一種改進方式是對全文的第一段和每一段的第一句話,給予較大的權重。

「怕什麼真理無窮,進一步有一步的歡喜」,與君共勉。

NLP 中文文字相似度實戰

原文 1 基於詞向量 余弦相似度,曼哈頓距離,歐幾里得距離,明式距離 是前兩種距離測度的推廣 2 基於字元 編輯距離,simhash 適用於海量資料 共有字元數 有點類似 onehot 編碼,直接統計兩個文字的共有字元數,最 3 基於概率統計 傑卡德相似係數 4 基於詞嵌入模型 word2vec d...

文字相似度

這種相似度計算方式相對簡單,原理也易於理解,就是計算單詞集合之間的交集和並集大小的比例,該值越大,表示兩個文字越相似。在涉及到大規模平行計算時,該方法效率上有一定的優勢。jaccard 相似度公式 舉例 句子a 我喜歡看電視,不喜歡看電影。句子b 我不喜歡看電視,也不喜歡看電影。分詞去噪後 a 我,...

標題相似度演算法 NLP 基於文字相似度的商品推薦

課程簡介 自然語言處理是人工智慧皇冠上的 明珠 他是讓機器模仿人類,理解人類的關鍵。目前這項技術,已經應用在機器翻譯 語音助手 自動問答 知識圖譜 中文處理等多個領域。本門課程講解了nlp技術中基礎的分詞 詞向量等技術,而這些知識也是所有nlp專案中的核心關鍵技術。我們以乙個完整的電商標題相似度任務...