欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

python如何實現Dice系數

 更新時間:2023年10月27日 10:08:51   作者:碼奮  
這篇文章主要介紹了python如何實現Dice系數,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教

python實現Dice系數

維基百科,自由的百科全書

跳到導航跳到搜索

Disambig gray.svg  關于與“Dice系數”名稱相近或相同的條目,請見“Dice”。

Dice系數, 根據 Lee Raymond Dice[1] 命名,是一種集合相似度度量函數,通常用于計算兩個樣本的相似度: 

{\displaystyle s={\frac {2|X\cap Y|}{|X|+|Y|}}} {\displaystyle s={\frac {2|X\cap Y|}{|X|+|Y|}}}

它和Sørensen 相似度指數相同, 也稱作Sørensen-Dice系數。

它在形式上和Jaccard指數沒多大區(qū)別,但是有些不同的性質。 

和Jaccard類似,它的范圍為0到1。 與Jaccard不同的是,相應的差異函數 

{\displaystyle d=1-{\frac {2|X\cap Y|}{|X|+|Y|}}} {\displaystyle d=1-{\frac {2|X\cap Y|}{|X|+|Y|}}}

不是一個合適的距離度量措施,因為它沒有三角形不等性的性質。

例如給定 {a}, , 和 {a,b}, 前兩個集合的距離為1, 而第三個集合和其他任意兩個集合的距離為三分之一。 

與Jaccard類似, 集合操作可以用兩個向量 A 和B的操作來表示:

 {\displaystyle s_{v}={\frac {2|A\cdot B|}{|A|^{2}+|B|^{2}}}} {\displaystyle s_{v}={\frac {2|A\cdot B|}{|A|^{2}+|B|^{2}}}}

上式給出了兩個向量的距離輸出,也給出了更一般情況下向量之間的相似度度量措施。

Dice 系數可以計算兩個字符串的相似度:Dice(s1,s2)=2*comm(s1,s2)/(leng(s1)+leng(s2))。

其中,comm (s1,s2)是s1、s2 中相同字符的個數leng(s1),leng(s2)是字符串s1、s2 的長度。

在信息檢索中, 給定關鍵詞集合X 和Y ,相似度定義為兩倍的共同信息(重疊部分)除以基數的總和 :[2]

當作為字符串之間的相似度度量時, 計算兩個字符串之間的系數, x 和y,使用 bigrams 公式如下:[3]

 {\displaystyle s={\frac {2n_{t}}{n_{x}+n_{y}}}} {\displaystyle s={\frac {2n_{t}}{n_{x}+n_{y}}}}

其中nt 是兩個字符串共有的bigrams的個數, nx 是 x中bigrams的個數 ,ny 是 y中bigrams的個數。

例如:要計算下面兩個字符串之間的相似度:

  • night
  • nacht

我們可以在各個單詞中得出如下bigrams集合:

  • {ni,ig,gh,ht}
  • {na,ac,ch,ht}

每個集合有4個元素, 這個兩個集合只有一個相同的元素: ht. 

代入公式我們可以計算出, s = (2 · 1) / (4 + 4) = 0.25.

Dice距離用于度量兩個集合的相似性,因為可以把字符串理解為一種集合,因此Dice距離也會用于度量字符串的相似性。

此外,Dice系數的一個非常著名的使用即實驗性能評測的F1值。

Dice系數定義

如下:

其中分子是A與B的交集數量的兩倍,分母為X和Y的長度之和,所以他的范圍也在0到1之間。

從公式看,Dice系數和Jaccard非常的類似。

Jaccard是在分子和分母上都減去了|A∩B|。

與Jaccard不同的是,相應的差異函數

不是一個合適的距離度量措施,因為它沒有三角形不等性的性質。

例如:

給定 {a}, , 和 {a,b}, 前兩個集合的距離為1, 而第三個集合和其他任意兩個集合的距離為三分之一。

與Jaccard類似,集合操作可以用兩個向量A和B的操作來表示:

  

 
def dice_coefficient(a, b):
    """dice coefficient 2nt/na + nb."""
    a_bigrams = set(a)
    b_bigrams = set(b)
    overlap = len(a_bigrams & b_bigrams)
    return overlap * 2.0/(len(a_bigrams) + len(b_bigrams))
 
if __name__ == '__main__':
    a=dice_coefficient('你好daadsffda','你你好ihiuhiihibiuhiuhiuhiuhiuhiuhuya妹aaa')
    print(a)

總結

以上為個人經驗,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關文章

  • 基于Python手寫拼音識別

    基于Python手寫拼音識別

    這篇文章主要介紹了基于Python手寫拼音識別,因項目組需要使用到拼寫識別,考慮到每個字母的復雜度不高,所以使用KNN算法來嘗試實現,下面來看看具體實現詳情吧,需要的小伙伴也可以參考一下
    2022-01-01
  • opencv實現回形遍歷像素算法

    opencv實現回形遍歷像素算法

    這篇文章主要為大家詳細介紹了opencv實現回形遍歷像素算法,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-03-03
  • 簡單介紹Python的第三方庫yaml

    簡單介紹Python的第三方庫yaml

    今天給大家?guī)淼氖顷P于Python的相關知識,文章圍繞著Python的第三方庫yaml展開,文中有非常詳細的介紹及代碼示例,需要的朋友可以參考下
    2021-06-06
  • 在Mac中PyCharm配置python Anaconda環(huán)境過程圖解

    在Mac中PyCharm配置python Anaconda環(huán)境過程圖解

    這篇文章主要介紹了在Mac中PyCharm配置python Anaconda環(huán)境過程圖解,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2020-03-03
  • Django配置跨域并開發(fā)測試接口

    Django配置跨域并開發(fā)測試接口

    這篇文章主要介紹了Django配置跨域并開發(fā)測試接口,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2020-11-11
  • 什么是python類屬性

    什么是python類屬性

    在本篇文章里小編給大家分享了關于python類屬性的相關知識點,需要的朋友們可以參考學習下。
    2020-06-06
  • django框架F&Q 聚合與分組操作示例

    django框架F&Q 聚合與分組操作示例

    這篇文章主要介紹了django框架F&Q 聚合與分組操作,結合實例形式詳細分析了Django框架查詢條件取對象中某列值、構建搜索條件以及聚合查詢等相關操作技巧,需要的朋友可以參考下
    2019-12-12
  • python基礎教程之lambda表達式使用方法

    python基礎教程之lambda表達式使用方法

    lambda表達式相當于函數體為單個return語句的普通函數的匿名函數,本文主要介紹lambda表達式使用方法
    2014-02-02
  • Python中的ctime()方法使用教程

    Python中的ctime()方法使用教程

    這篇文章主要介紹了Python中的ctime()方法使用教程,是Python入門學習的基礎知識,需要的朋友可以參考下
    2015-05-05
  • Python??MkDocs優(yōu)雅地編寫文檔

    Python??MkDocs優(yōu)雅地編寫文檔

    在軟件開發(fā)過程中,編寫文檔是非常重要的一環(huán),文檔不僅可以幫助用戶理解和使用你的軟件,還可以提高團隊協作效率,然傳統(tǒng)的文檔寫作方式往往繁瑣而復雜,不易于維護更新,MkDocs工具以簡潔、優(yōu)雅的方式編寫文檔,并且能夠輕松生成漂亮的靜態(tài)網站
    2024-01-01

最新評論