文字相似性熱度統計 python版

2021-10-02 21:34:31 字數 1028 閱讀 4711

節後第一篇,疫情還沒結束,黎明前的黑暗,中國加油,武漢加油,看了很多報道,發現只有中國人才會幫助中國人,誰說中國人一盤散沙?也許是年齡大了,看到全國各地的醫務人員源源不斷的告別家人去支援湖北,看到醫務人員、肺炎病人的故事,總會忍不住落淚,中國加油,中國人加油!

背景不寫了,只談技術,做的是文字相似性統計,因需要從文字描述性資訊中分析同類資訊,以便後續重點關注,資料量比較大,大概20多萬,人工效率低,需要演算法來實現。

根據需求要從不同維度進行統計:

(1)分組不分句熱度統計(根據某列首先進行分組,然後再對描述類列進行相似性統計);

(2)分組分句熱度統計(根據某列首先進行分組,然後對描述類列按照標點符號進行拆分,然後再對這些句進行熱度統計);

(3)整句及分句熱度統計;(對描述類列/按標點符號進行分句,進行熱度統計)

(4)熱詞統計(對描述類類進行熱詞統計,反饋改方式做不不大)

在網上以及和同事都驗證了很多不同實現方案,具體過程就不說了,對比下來,jieba+gensim效果最好。

演算法實現介紹

(1)輸入檔案是excel,資料大概20多萬,首先通過pandas獲取excel資訊,通過jieba分詞進行處理,jieba分詞要首先自定義詞典以及排除資訊,這樣效果會差異很大,然後形成乙個二維陣列。

(2)使用gensim 中的corpora模組,將分詞形成後的二維陣列生成詞典

(3)將二維陣列通過doc2bow稀疏向量,形成語料庫

(4)剛開始使用tf模型演算法,後來更改為:lsimodel模型演算法,將語料庫計算出tfidf值。

(5)獲取詞典token2id的特徵數

(6)計算稀疏矩陣相似度,建立乙個索引

(7)讀取excel行資料,通過jieba進行分詞處理

(8)通過doc2bow計算測試資料的稀疏向量

(9)求得測試資料與樣本資料的相似度

演算法說明:

計算文字相似性的方法

常用的有兩種度量 jaccard similarity與cosine similarity jaccard similarity的定義如下 兩組文字的交集大小除以兩組文字的並集大小 cosine similarity的定義如下 兩組文字進行tf或者tf idf變換後,化為向量,計算向量夾角的余弦。t...

文字相似性問題個人見解

jaccard 這時,就涉及到,相似的閾值,以及重複的閾值了,就是min threshold與max threshold了,當jaccard min threshold時,表示文章a b相似,而jaccard max threshold時,則表示a b過於相似,可認為文章重複,具體引數可根據資料集的...

基於Python計算余弦相似性

在我們計算相似度時,常常用到余弦夾角來判斷兩個向量或者矩陣之間的相似度,cosine 余弦相似度 取值範圍 1,1 當兩個向量的方向重合時夾角余弦取最大值1,當兩個向量的方向完全相反夾角余弦取最小值 1,兩個方向正交時夾角余弦取值為0。x 1x 1 x1 和 x 2x 2 x2 分別是輸入的兩個向量...