比如你在a.py的文件中定義了一個test(x,y)函數(shù),在shell中調(diào)用的時候from a import testtest(x,y)

專注于為中小企業(yè)提供成都網(wǎng)站設(shè)計(jì)、成都做網(wǎng)站服務(wù),電腦端+手機(jī)端+微信端的三站合一,更高效的管理,為中小企業(yè)曲阜免費(fèi)做網(wǎng)站提供優(yōu)質(zhì)的服務(wù)。我們立足成都,凝聚了一批互聯(lián)網(wǎng)行業(yè)人才,有力地推動了千余家企業(yè)的穩(wěn)健成長,幫助中小企業(yè)通過網(wǎng)站建設(shè)實(shí)現(xiàn)規(guī)模擴(kuò)充和轉(zhuǎn)變。
#/usr/bin/env?python3
s1='中國石油銷售有限公司'.strip()
s2='中國石油金屬有限公司'.strip()
similar=sum([i==j?for?i,j?in?zip(s1,s2)])/len(s1)
print('相似度{:.2f}%'.format(similar*100))
[willie@bogon pys]$ python3 similar.py
相似度80.00%
from PIL import Imageimport os#import hashlib def getGray(image_file): tmpls=[] for h in range(0, image_file.size[1]):#h for w in range(0, image_file.size[0]):#w tmpls.append( image_file.getpixel((w,h)) ) return tmpls def getAvg(ls):#獲取平均灰度值 return sum(ls)/len(ls) def getMH(a,b):#比較100個字符有幾個字符相同 dist = 0; for i in range(0,len(a)): if a[i]==b[i]: dist=dist+1 return dist def getImgHash(fne): image_file = Image.open(fne) # 打開 image_file=image_file.resize((12, 12))#重置圖片大小我12px X 12px image_file=image_file.convert("L")#轉(zhuǎn)256灰度圖 Grayls=getGray(image_file)#灰度集合 avg=getAvg(Grayls)#灰度平均值 bitls=''#接收獲取0或1 #除去變寬1px遍歷像素 for h in range(1, image_file.size[1]-1):#h for w in range(1, image_file.size[0]-1):#w if image_file.getpixel((w,h))=avg:#像素的值比較平均值 大于記為1 小于記為0 bitls=bitls+'1' else: bitls=bitls+'0' return bitls''' m2 = hashlib.md5() m2.update(bitls) print m2.hexdigest(),bitls return m2.hexdigest()''' a=getImgHash("./Test/測試圖片.jpg")#圖片地址自行替換files = os.listdir("./Test")#圖片文件夾地址自行替換for file in files: b=getImgHash("./Test/"+str(file)) compare=getMH(a,b) print file,u'相似度',str(compare)+'%'
通過夾角的大小,來判斷向量的相似程度。夾角越小,就代表越相似。
余弦相似度是文本相似度度量中使用較多的一種方法,對于兩個向量X和Y,其對應(yīng)的形式如下:
X=(x1,x2...,xn)
Y=(y1,y2...,yn)
其向量的余弦相似度公式為:
X,Y對應(yīng)其中的A和B
python實(shí)現(xiàn):
輸出結(jié)果:0.5000000000000001
結(jié)果越接近1,夾角就越接近0,代表越相似。
越趨近于-1,他們的方向越相反;接近于0,表示兩個向量近乎于正交
linux環(huán)境下,沒有首先安裝python_Levenshtein,用法如下:
重點(diǎn)介紹幾個該包中的幾個計(jì)算字串相似度的幾個函數(shù)實(shí)現(xiàn)。
1. Levenshtein.hamming(str1, str2)
計(jì)算漢明距離。要求str1和str2必須長度一致。是描述兩個等長字串之間對應(yīng)位置上不同字符的個數(shù)。如
2. Levenshtein.distance(str1, str2)
計(jì)算編輯距離(也成Levenshtein距離)。是描述由一個字串轉(zhuǎn)化成另一個字串最少的操作次數(shù),在其中的操作包括插入、刪除、替換。如
算法實(shí)現(xiàn) 參考動態(tài)規(guī)劃整理:。
3. Levenshtein.ratio(str1, str2)
計(jì)算萊文斯坦比。計(jì)算公式 r = (sum - ldist) / sum, 其中sum是指str1 和 str2 字串的長度總和,ldist是類編輯距離
注意:這里的類編輯距離不是2中所說的編輯距離,2中三種操作中每個操作+1,而在此處,刪除、插入依然+1,但是替換+2
這樣設(shè)計(jì)的目的:ratio('a', 'c'),sum=2,按2中計(jì)算為(2-1)/2 = 0.5,’a','c'沒有重合,顯然不合算,但是替換操作+2,就可以解決這個問題。
4. Levenshtein.jaro(s1, s2)
計(jì)算jaro距離,
其中的m為s1, s2的匹配長度,當(dāng)某位置的認(rèn)為匹配 當(dāng)該位置字符相同,或者在不超過
t是調(diào)換次數(shù)的一半
5. Levenshtein.jaro_winkler(s1, s2)
計(jì)算Jaro–Winkler距離
就是給出以下幾個function的def 越多越好:
1、 red_average(Picture) 算出pic眾pixels的平均紅值 。
2、scale_red(Picture, int) 調(diào)整圖片紅值 并確保其不超過255 。
3、expand_width(Picture, int) ?。
4、reduce_width(Picture, int) 放大和縮小寬值 都是乘或者除的 ,distance(Pixel, Pixel) 以紅藍(lán)綠值為標(biāo)準(zhǔn) 計(jì)算兩個pixel之間的距離(類似于xyz坐標(biāo)軸中兩點(diǎn)距離)。
5、simple_difference(Picture,Picture) 簡單計(jì)算兩張圖片有多相似 不必考慮長寬。
6、smart_difference(Picture,Picture) 這個方程的步驟需為: 判斷圖片大小 。如必要 乘除高度 。 如必要 乘除寬度。 調(diào)整圖片顏色使之相同平均紅藍(lán)綠值 。
Python具有豐富和強(qiáng)大的庫。它常被昵稱為膠水語言,能夠把用其他語言制作的各種模塊(尤其是C/C++)很輕松地聯(lián)結(jié)在一起。常見的一種應(yīng)用情形是,使用Python快速生成程序的原型(有時甚至是程序的最終界面),然后對其中 有特別要求的部分,用更合適的語言改寫,比如3D游戲中的圖形渲染模塊,性能要求特別高,就可以用C/C++重寫,而后封裝為Python可以調(diào)用的擴(kuò)展類庫。
文章題目:包含python相似度函數(shù)的詞條
轉(zhuǎn)載源于:http://chinadenli.net/article4/dsgdpoe.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供ChatGPT、虛擬主機(jī)、網(wǎng)站改版、做網(wǎng)站、品牌網(wǎng)站制作、手機(jī)網(wǎng)站建設(shè)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)