Python實現(xiàn)杰卡德距離以及環(huán)比算法講解
前言
NLP-字符串相似性計算、集合相似性度量
提示:以下是本篇文章正文內(nèi)容,下面案例可供參考
杰卡德距離是什么?
杰卡德距離(Jaccard Distance) 是用來衡量兩個集合差異性的一種指標(biāo),它是杰卡德相似系數(shù)的補(bǔ)集,被定義為1減去Jaccard相似系數(shù)。而杰卡德相似系數(shù)(Jaccard similarity coefficient),也稱杰卡德指數(shù)(Jaccard Index),是用來衡量兩個集合相似度的一種指標(biāo)。
定義
Jaccard相似指數(shù)用來度量兩個集合之間的相似性,它被定義為兩個集合交集的元素個數(shù)除以并集的元素個數(shù)。
Jaccard距離用來度量兩個集合之間的差異性,它是Jaccard的相似系數(shù)的補(bǔ)集,被定義為1減去Jaccard相似系數(shù)。
Python實現(xiàn)
代碼如下:
# -*- encoding:utf-8 -*- import jieba def Jaccard(model, reference): # terms_reference為源句子,terms_model為候選句子 terms_reference = jieba.cut(reference) # 默認(rèn)精準(zhǔn)模式 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ā)展速度。如計算一年內(nèi)各月與前一個月對比,即2月比1月,3月比2月,4月比3月……12月比11月,說明逐月的發(fā)展程度。如分析抗擊“非典”期間某些經(jīng)濟(jì)現(xiàn)象的發(fā)展趨勢,環(huán)比比同比更說明問題。
學(xué)過統(tǒng)計或者經(jīng)濟(jì)知識的人都知道,統(tǒng)計指標(biāo)按其具體內(nèi)容、實際作用和表現(xiàn)形式可以分為總量指標(biāo)、相對指標(biāo)和平均指標(biāo)。由于采用基期的不同,發(fā)展速度可分為同比發(fā)展速度、環(huán)比發(fā)展速度和定基發(fā)展速度。簡單地說,就是同比、環(huán)比與定基比,都可以用百分?jǐn)?shù)或倍數(shù)表示。
定基比發(fā)展速度,也簡稱總速度,一般是指報告期水平與某一固定時期水平之比,表明這種現(xiàn)象在較長時期內(nèi)總的發(fā)展速度。同比發(fā)展速度,一般指是指本期發(fā)展水平與上年同期發(fā)展水平對比,而達(dá)到的相對發(fā)展速度。環(huán)比發(fā)展速度,一般是指報告期水平與前一時期水平之比,表明現(xiàn)象逐期的發(fā)展速度。
同比和環(huán)比,這兩者所反映的雖然都是變化速度,但由于采用基期的不同,其反映的內(nèi)涵是完全不同的;一般來說,環(huán)比可以與環(huán)比相比較,而不能拿同比與環(huán)比相比較;而對于同一個地方,考慮時間縱向上發(fā)展趨勢的反映,則往往要把同比與環(huán)比放在一起進(jì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
以上就是今天分享的內(nèi)容,本文僅僅簡單介紹了杰卡德距離以及環(huán)比的Python版實現(xiàn),希望可以幫到大家,請大家以后多多支持腳本之家!
相關(guān)文章
關(guān)于Python的pymouse click 雙擊的問題
這篇文章主要介紹了關(guān)于Python的pymouse click 雙擊的問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2021-06-06Python3結(jié)合Dlib實現(xiàn)人臉識別和剪切
本篇文章給大家詳細(xì)分析了Python3結(jié)合Dlib實現(xiàn)人臉識別和剪切這個技術(shù),對此有興趣的朋友參考學(xué)習(xí)下。2018-01-01Python如何讀寫二進(jìn)制數(shù)組數(shù)據(jù)
這篇文章主要介紹了Python如何讀寫二進(jìn)制數(shù)組數(shù)據(jù),文中講解非常細(xì)致,代碼幫助大家更好的理解和學(xué)習(xí),感興趣的朋友可以了解下2020-08-08Python?Pandas中DataFrame.drop_duplicates()刪除重復(fù)值詳解
在實際處理數(shù)據(jù)中,數(shù)據(jù)預(yù)處理操作中,常常需要去除掉重復(fù)的數(shù)據(jù),這篇文章主要給大家介紹了關(guān)于Python?Pandas中DataFrame.drop_duplicates()刪除重復(fù)值的相關(guān)資料,需要的朋友可以參考下2022-07-07