Python實現(xiàn)杰卡德距離以及環(huán)比算法講解
前言
NLP-字符串相似性計算、集合相似性度量
提示:以下是本篇文章正文內容,下面案例可供參考
杰卡德距離是什么?
杰卡德距離(Jaccard Distance) 是用來衡量兩個集合差異性的一種指標,它是杰卡德相似系數(shù)的補集,被定義為1減去Jaccard相似系數(shù)。而杰卡德相似系數(shù)(Jaccard similarity coefficient),也稱杰卡德指數(shù)(Jaccard Index),是用來衡量兩個集合相似度的一種指標。
定義
Jaccard相似指數(shù)用來度量兩個集合之間的相似性,它被定義為兩個集合交集的元素個數(shù)除以并集的元素個數(shù)。

Jaccard距離用來度量兩個集合之間的差異性,它是Jaccard的相似系數(shù)的補集,被定義為1減去Jaccard相似系數(shù)。

Python實現(xiàn)
代碼如下:
# -*- encoding:utf-8 -*-
import jieba
def Jaccard(model, reference): # terms_reference為源句子,terms_model為候選句子
terms_reference = jieba.cut(reference) # 默認精準模式
terms_model = jieba.cut(model)
grams_reference = set(terms_reference) # 去重;如果不需要就改為list
grams_model = set(terms_model)
temp = 0
for i in grams_reference:
if i in grams_model:
temp = temp + 1
fenmu = len(grams_model) + len(grams_reference) - temp # 并集
try:
jaccard_coefficient = float(temp / fenmu) # 交集
except ZeroDivisionError:
print(model, reference)
return 0
else:
return jaccard_coefficient
環(huán)比是什么?
環(huán)比的發(fā)展速度是報告期水平與前一時期水平之比,表明現(xiàn)象逐期的發(fā)展速度。如計算一年內各月與前一個月對比,即2月比1月,3月比2月,4月比3月……12月比11月,說明逐月的發(fā)展程度。如分析抗擊“非典”期間某些經(jīng)濟現(xiàn)象的發(fā)展趨勢,環(huán)比比同比更說明問題。
學過統(tǒng)計或者經(jīng)濟知識的人都知道,統(tǒng)計指標按其具體內容、實際作用和表現(xiàn)形式可以分為總量指標、相對指標和平均指標。由于采用基期的不同,發(fā)展速度可分為同比發(fā)展速度、環(huán)比發(fā)展速度和定基發(fā)展速度。簡單地說,就是同比、環(huán)比與定基比,都可以用百分數(shù)或倍數(shù)表示。
定基比發(fā)展速度,也簡稱總速度,一般是指報告期水平與某一固定時期水平之比,表明這種現(xiàn)象在較長時期內總的發(fā)展速度。同比發(fā)展速度,一般指是指本期發(fā)展水平與上年同期發(fā)展水平對比,而達到的相對發(fā)展速度。環(huán)比發(fā)展速度,一般是指報告期水平與前一時期水平之比,表明現(xiàn)象逐期的發(fā)展速度。
同比和環(huán)比,這兩者所反映的雖然都是變化速度,但由于采用基期的不同,其反映的內涵是完全不同的;一般來說,環(huán)比可以與環(huán)比相比較,而不能拿同比與環(huán)比相比較;而對于同一個地方,考慮時間縱向上發(fā)展趨勢的反映,則往往要把同比與環(huán)比放在一起進行對照。 [1]
Python實現(xiàn)
代碼如下:
def month_on_month_ratio(data_list): ? ? mid = 0 ? ? length = len(data_list) ? ? res = [] ? ? while mid < length-1: ? ? ? ? a, b = data_list[mid:mid+2] ? ? ? ? res.append((b-a)/a) ? ? ? ? mid += 1 ? ? return res
以上就是今天分享的內容,本文僅僅簡單介紹了杰卡德距離以及環(huán)比的Python版實現(xiàn),希望可以幫到大家,請大家以后多多支持腳本之家!
相關文章
Python的json.loads() 方法與json.dumps()方法及使用小結
json.loads() 是一個非常有用的方法,它允許你在處理 JSON 數(shù)據(jù)時,將其轉換為 Python 數(shù)據(jù)類型,以便于在代碼中進行操作和處理,這篇文章給大家介紹Python的json.loads() 方法與json.dumps()方法及使用小結,感興趣的朋友一起看看吧2024-03-03
Python OpenCV實現(xiàn)按照像素點圖片切割
本文將詳細介紹如何使用Python和OpenCV進行基于像素點的圖像分割,包括閾值分割,自適應閾值分割等,感興趣的小伙伴可以跟隨小編一起學習一下2024-12-12
Python RobotFramework的安裝過程及應用實戰(zhàn)教程
這篇文章主要介紹了RobotFramework的安裝過程及應用實戰(zhàn)教程,本文通過示例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2023-08-08
python使用rstrip函數(shù)刪除字符串末位字符
rstrip函數(shù)用于刪除字符串末位指定字符,默認為空白符,這篇文章主要介紹了python使用rstrip函數(shù)刪除字符串末位字符的方法,需要的朋友可以參考下2023-04-04
手把手教你如何用Pycharm2020.1.1配置遠程連接的詳細步驟
這篇文章主要介紹了如何用Pycharm2020.1.1配置遠程連接,分步驟給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友參考下吧2020-08-08

