<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          不同品種貓貓有多相似呢,Python 文本相似度計算

          共 1263字,需瀏覽 3分鐘

           ·

          2021-05-06 18:18



          前言

          之前小編呢爬過貓貓 20w 的交易數(shù)據(jù),做了一個簡單的數(shù)據(jù)分析,詳情看這篇文章:

          爬取 20W 貓貓數(shù)據(jù),來了解一下喵喵~

          最近碰到了文本相似度的問題,想到了貓貓數(shù)據(jù)中有品種的相關描述,于是用品種描述文本來研究一下文本相似度計算的。

          查找了一下資料找到了幾種實現(xiàn)方法,實現(xiàn)的目的都一樣,小編就做了一個對比。



          數(shù)據(jù)處理


          數(shù)據(jù)原始有很多列,我們需要把 O 列直至末尾的這些描述每個品種貓貓的文本合為一列:



          以此計算每個品種的描述與其他品種描述的相似度,把“描述”列作為文本列表,“品種”作為索引,兩兩計算。

          合并后的文本指數(shù)其實是挺多的,這樣便于對比出那種方法更快。



          difflib

          difflib 是 Python 的內(nèi)置庫,基于 Ratcliff-Obershelp 算法(格式塔模式匹配)。


          計算值是 0-1 之間的,越接近 1 說明文本越相似。



          fuzzywuzzy

          fuzzywuzzy 是一個第三方庫,基于萊文斯坦距離,需要安裝 python-Levenshtein,fuzzywuzzy,直接 pip 即可。

          這個原理最容易說明,萊文斯坦距離一個字符串變?yōu)榱硗庖粋€字符串經(jīng)過刪除,插入,替換的編輯距離。



          計算的值介于 0-100,值越大說明兩文本越相似。



          余弦距離

          接下來介紹的集中距離都是需要先將文本進行向量化的,通過向量化計算顯示距離。

          文本向量化必須兩個對比的文本同時向量化操作,確保兩文本向量化的長度一樣才可進行計算,部分代碼:



          兩對比文本向量化后,再進行相似度計算:



          余弦相似度,值介于 0-1,越大說明兩文本越相似。

          從結(jié)果上看對比前兩個,值要大于 0.9 才相當于有 60% 以上的相似度,前兩種方法更為直觀。



          其他距離

          其他距離的計算方法還有歐式距離,曼哈頓距離,切比雪夫距離,杰爾德距離,漢明距離,這些值的范圍沒有上限,越小說明文本越相似。

          還有皮爾遜相關系數(shù),這個計算的值介于 0-1,值越大說明文本越相似。

          它們的實現(xiàn)方式都與余弦相似,詳細可查看源代碼。



          結(jié)果


          小編使用了所有方法計算相似度,fuzzywuzz 方法計算的時間最快,其次是 difflib,且結(jié)果比較直觀,其他方法都需要文本向量化在比較,所以在文本較長時,時間有點久。

          最后使用 fuzzywuzz 計算的相似度,繪制熱力相關圖直觀的展示貓貓品種哪些描述較為相似:



          異國短毛貓與加菲貓描述相似度較高,英囯藍白與英國短毛貓相似度也較高。

          這樣一個文本相似度計算就完成了。



          源碼獲取

          在公眾號對話框回復關鍵字“文本相似度”即可獲取



          END

          讀者交流群已建立,找到我備注 “交流”,即可獲得加入我們~

          聽說點 “在看” 的都變得更好看吶~

          關注關注小編唄~小編給你分享爬蟲,數(shù)據(jù)分析,可視化的內(nèi)容噢~

          掃一掃下方二維碼即可關注我噢~


          -END-




          瀏覽 70
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          評論
          圖片
          表情
          推薦
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  成人久久91久久 | 日韩精品综合 | 人人射在线| 爆操人妖 | TS人妖系列亚洲一区二区 |