亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁(yè) > 編程 > PHP > 正文

關(guān)于PHP的相似度計(jì)算函數(shù):levenshtein的使用介紹

2020-03-22 20:20:32
字體:
供稿:網(wǎng)友
使用說明
先看手冊(cè)上 levenshtein() 函數(shù)的說明:levenshtein() 函數(shù)返回兩個(gè)字符串之間的 Levenshtein 距離。Levenshtein 距離,又稱編輯距離,指的是兩個(gè)字符串之間,由一個(gè)轉(zhuǎn)換成另一個(gè)所需的最少編輯操作次數(shù)。許可的編輯操作包括將一個(gè)字符替換成另一個(gè)字符,插入一個(gè)字符,刪除一個(gè)字符。例如把 kitten 轉(zhuǎn)換為 sitting:sitten (k→s)
sittin (e→i)
sitting (→g)levenshtein() 函數(shù)給每個(gè)操作(替換、插入和刪除)相同的權(quán)重。不過,您可以通過設(shè)置可選的 insert、replace、delete 參數(shù),來定義每個(gè)操作的代價(jià)。語(yǔ)法:levenshtein(string1,string2,insert,replace,delete)參數(shù) 描述string1 必需。要對(duì)比的第一個(gè)字符串。
string2 必需。要對(duì)比的第二個(gè)字符串。
insert 可選。插入一個(gè)字符的代價(jià)。默認(rèn)是 1。
replace 可選。替換一個(gè)字符的代價(jià)。默認(rèn)是 1。
delete 可選。刪除一個(gè)字符的代價(jià)。默認(rèn)是 1。
提示和注釋如果其中一個(gè)字符串超過 255 個(gè)字符,levenshtein() 函數(shù)返回 -1。
levenshtein() 函數(shù)對(duì)大小寫不敏感。
levenshtein() 函數(shù)比 similar_text() 函數(shù)更快。不過,similar_text() 函數(shù)提供需要更少修改的更精確的結(jié)果。
例子
復(fù)制代碼 代碼如下:
?php
echo levenshtein("Hello World","ello World");
echo " br /
echo levenshtein("Hello World","ello World",10,20,30);
?
輸出: 1 30源碼分析
levenshtein() 屬于標(biāo)準(zhǔn)函數(shù),在/ext/standard/目錄下有專門針對(duì)此函數(shù)實(shí)現(xiàn)的文件:levenshtein.c。levenshtein()會(huì)根據(jù)參數(shù)個(gè)數(shù)選擇實(shí)現(xiàn)方式,針對(duì)參數(shù)為2和參數(shù)為5的情況,都會(huì)調(diào)用 reference_levdist() 函數(shù)計(jì)算距離。其不同在于對(duì)后三個(gè)參數(shù),參數(shù)為2時(shí),使用默認(rèn)值1。并且在實(shí)現(xiàn)源碼中我們發(fā)現(xiàn)了一個(gè)在文檔中沒有說明的情況: levenshtein() 函數(shù)還可以傳遞三個(gè)參數(shù),其最終會(huì)調(diào)用 custom_levdist() 函數(shù)。它將第三個(gè)參數(shù)作為自定義函數(shù)的實(shí)現(xiàn),其調(diào)用示例如下:
復(fù)制代碼 代碼如下:
echo levenshtein("Hello World","ello World", 'strsub');
執(zhí)行會(huì)報(bào)Warning: The general Levenshtein support is not there yet。這是因?yàn)楝F(xiàn)在這個(gè)方法還沒有實(shí)現(xiàn),僅僅是放了一個(gè)坑在那。reference_levdist() 函數(shù)的實(shí)現(xiàn)算法是一個(gè)經(jīng)典的DP問題。給定兩個(gè)字符串x和y,求最少的修改次數(shù)將x變成y。修改的規(guī)則只能是如下三種之一:刪除、插入、改變。
用a[i][j]表示把x的前i個(gè)字符變成y的前j個(gè)字符所需的最少操作次數(shù),則狀態(tài)轉(zhuǎn)移方程為:
復(fù)制代碼 代碼如下:
當(dāng)x[i]==y[j]時(shí):a[i][j] = min(a[i-1][j-1], a[i-1][j]+1, a[i][j-1]+1);
當(dāng)x[i]!=y[j]時(shí):a[i][j] = min(a[i-1][j-1], a[i-1][j], a[i][j-1])+1;
在用狀態(tài)轉(zhuǎn)移方程前,我們需要初始化(n+1)(m+1)的矩陣d,并讓第一行和列的值從0開始增長(zhǎng)。 掃描兩字符串(nm級(jí)的),對(duì)比字符,使用狀態(tài)轉(zhuǎn)移方程,最終$a[$l1][$l2]為其結(jié)果。簡(jiǎn)單實(shí)現(xiàn)過程如下:
復(fù)制代碼 代碼如下:
?PHP
$s1 = "abcdd";
$l1 = strlen($s1);
$s2 = "aabbd";
$l2 = strlen($s2);


for ($i = 0; $i $l1; $i++) {
$a[0][$i + 1] = $i + 1;
}
for ($i = 0; $i $l2; $i++) {
$a[$i + 1][0] = $i + 1;
}

for ($i = 0; $i $l2; $i++) {
for ($j = 0; $j $l1; $j++) {
if ($s2[$i] == $s1[$j]) {
$a[$i + 1][$j + 1] = min($a[$i][$j], $a[$i][$j + 1] + 1, $a[$i + 1][$j] + 1);
}else{
$a[$i + 1][$j + 1] = min($a[$i][$j], $a[$i][$j + 1], $a[$i + 1][$j]) + 1;
}
}
}

echo $a[$l1][$l2];
echo "n";
echo levenshtein($s1, $s2);
在PHP的實(shí)現(xiàn)中,實(shí)現(xiàn)者在注釋中很清楚的標(biāo)明:此函數(shù)僅優(yōu)化了內(nèi)存使用,而沒有考慮速度,從其實(shí)現(xiàn)算法看,時(shí)間復(fù)雜度為O(m×n)。其優(yōu)化點(diǎn)在于將上面的狀態(tài)轉(zhuǎn)移方程中的二維數(shù)組變成了兩個(gè)一組數(shù)組。簡(jiǎn)單實(shí)現(xiàn)如下:
復(fù)制代碼 代碼如下:
?PHP
$s1 = "abcjfdkslfdd";
$l1 = strlen($s1);
$s2 = "aab84093840932bd";
$l2 = strlen($s2);

$dis = 0;
for ($i = 0; $i = $l2; $i++){
$p1[$i] = $i;
}

for ($i = 0; $i $l1; $i++){
$p2[0] = $p1[0] + 1;

for ($j = 0; $j $l2; $j++){
if ($s1[$i] == $s2[$j]){
$dis = min($p1[$j], $p1[$j + 1] + 1, $p2[$j] + 1);
}else{
$dis = min($p1[$j] + 1, $p1[$j + 1] + 1, $p2[$j] + 1); // 注意這里最后一個(gè)參數(shù)為$p2
}
$p2[$j + 1] = $dis;
}
$tmp = $p1;
$p1 = $p2;
$p2 = $tmp;
}

echo "n";
echo $p1[$l2];
echo "n";
echo levenshtein($s1, $s2);

如上為PHP內(nèi)核開發(fā)者對(duì)前面經(jīng)典DP的優(yōu)化,其優(yōu)化點(diǎn)在于不停的復(fù)用兩個(gè)一維數(shù)組,一個(gè)記錄上次的結(jié)果,一個(gè)記錄這一次的結(jié)果。如果按照PHP的參數(shù),分別給三個(gè)操作賦值不同的值,在上面的算法中將對(duì)應(yīng)的1變成操作對(duì)應(yīng)的值就可以了。 min函數(shù)的第一個(gè)參數(shù)對(duì)應(yīng)的是修改,第二個(gè)參數(shù)對(duì)應(yīng)的是刪除源碼天空,第三個(gè)參數(shù)對(duì)應(yīng)的是添加。Levenshtein distance說明
Levenshtein distance最先是由俄國(guó)科學(xué)家Vladimir Levenshtein在1965年發(fā)明,用他的名字命名。不會(huì)拼讀,可以叫它edit distance(編輯距離)。Levenshtein distance可以用來:
Spell checking(拼寫檢查)
Speech recognition(語(yǔ)句識(shí)別)
DNA analysis(DNA分析)
Plagiarism detection(抄襲檢測(cè)) LD用mn的矩陣存儲(chǔ)距離值。PHP教程

鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標(biāo)記有誤,請(qǐng)第一時(shí)間聯(lián)系我們修改或刪除,多謝。

發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
久久综合亚洲色hezyo国产| 高清亚洲成在人网站天堂| 亚洲激情六月丁香| 国产精品久久久久久久9999| 一区二区三区四区在线观看视频| 日日夜夜天堂| 亚洲欧美日韩精品久久久久| 日本在线观看网址| 国产aaa免费视频| 久久亚洲成人av| 一区二区三区自拍| 久久av资源站| 国产一级在线播放| 国产高清视频一区三区| 国产精品99蜜臀久久不卡二区| 亚洲色图16p| 蜜臀久久久久久久| 亚洲精品小区久久久久久| 永久免费看mv网站入口78| av大片在线| 欧美国产中文高清| 亚洲成a人片77777在线播放| 亚洲熟妇无码另类久久久| 亚洲无码久久久久久久| 国产情人综合久久777777| 欧美黄色网视频| 日韩精品视频在线观看视频| 色婷婷综合视频| 国产福利精品视频| 你懂的视频在线一区二区| 老牛影视av牛牛影视av| 国产激情久久久| 成人台湾亚洲精品一区二区| 国产精品xvideos88| 超碰在线免费看| 日韩av一二三四| 狠狠人妻久久久久久综合蜜桃| 国产在线免费av| 成年人免费高清视频| 一本一本久久a久久| 中文久久乱码一区二区| 色老汉av一区二区三区| 亚洲精品短视频| 久久精品国产精品亚洲精品色| 亚洲欧美日韩另类精品一区二区三区| 中文在线免费一区三区| 日韩欧美激情电影| 久操视频在线| 深夜福利视频一区二区| 国产精品久久久久aaaa九色| 综合日韩av| 狠狠干天天干| 国产精品爽黄69| 国产 国语对白 露脸| 中国特级黄色片| 欧美性猛交xxxx乱| 中文字幕欧美日韩精品| 俺去啦在线观看| 美女的诞生在线观看高清免费完整版中文| 亚洲精品在线播放| 久久艹这里只有精品| 91丝袜高跟美女视频| 日韩精品视频在线看| 97久久综合精品久久久综合| 日韩欧美激情电影| 丰满熟妇人妻中文字幕| 岛国在线大片| 日韩黄色在线免费观看| 3dmax动漫人物在线看| 99久久香蕉| 亚洲 欧美 激情 另类| 国产超碰人人模人人爽人人添| 青青青免费视频观看在线| 国产一级免费视频| 亚洲人成毛片在线播放| 9色在线观看| 欧美日韩性视频| 国精产品一区| 自拍av一区二区三区| 1313精品午夜理伦电影| 波多野结衣欲乱| 超级碰碰不卡在线视频| 亚洲精品9999| 97色伦图片97色伦在线电影| 亚洲色图欧美偷拍| 亚洲国产精品久久久久秋霞影院| 亚洲人成电影| 国产精品一区二区3区| 日本一区二区免费不卡| 手机看片日韩国产| 久久精品九九| 亚洲专区国产精品| 啪啪小视频网站| 久久久久久伊人| 超碰免费97在线观看| 中文字幕欧美人妻精品一区蜜臀| 一级片视频免费观看| 原纱央莉成人av片| 国产精品久久久久一区二区三区共| 成人免费区一区二区三区| 91亚洲男人天堂| 免费av播放| 久久精品久久久久电影| www.youjizz.com在线| 成人在线综合网| 992kp快乐看片永久免费网址| 国产精品96久久久久久| 青青在线视频一区二区三区| 久久夜色精品国产| 欧美在线视频在线播放完整版免费观看| 最新国产精品自拍| 国产精品久久久久aaaa樱花| 久久香蕉精品香蕉| 97在线播放视频| 欧美精品一区二区三区久久| 一区久久精品| 中文字幕第88页| 亚洲视频一二三区| 久久久噜噜噜久久狠狠50岁| 在线成人高清不卡| 最近在线中文字幕| 亚洲欧美日韩视频一区| 4k岛国日韩精品**专区| 午夜久久资源| 欧美综合在线观看| av美女在线观看| 欧美激情一区不卡| 蜜桃av免费看| 91精品一区二区三区综合在线爱| 欧美午夜激情影院| 91超碰rencao97精品| 亚洲色图制服丝袜| 精品偷拍各种wc美女嘘嘘| 欧美少妇一区二区三区| 黑人玩欧美人三根一起进| 日韩欧美在线一区| 国产精品欧美经典| 亚洲三级毛片| 91精品国产91综合久久蜜臀| 伊人网中文字幕| 99久久99久久精品免费看蜜桃| 美女的尿口免费视频| 两个人看的在线视频www| 青青草视频在线观看免费| 66精品视频在线观看| 成人免费观看49www在线观看| 牛人盗摄一区二区三区视频| 亚洲精品aⅴ| 制服.丝袜.亚洲.中文.综合| 日韩中文字幕在线精品| 丰满人妻中伦妇伦精品app| 国产精九九网站漫画| 国产精品精品国产一区二区| 免费国偷自产拍精品视频| 久久精品成人欧美大片| 午夜精品久久久久久久久久蜜桃| 艳女tv在线观看国产一区| 亚洲精品一二三四| 免费看污片网站| 日韩免费一区二区三区| av777777| 精品久久久久久中文字幕动漫| 深夜福利视频一区| 欧美一级高清片在线观看| 中文字幕在线视频免费| 欧美调教网站| 97av在线视频免费播放| avhd101老司机| 精品亚洲夜色av98在线观看| 最新国产精品久久久| 1区2区3区精品视频| 久久精品国亚洲| 亚洲欧美日韩一二三区| 欧美激情 一区| 99久久精品国产一区二区三区| 久久综合五月天婷婷伊人| 精品国产乱码一区二区| 国产精品无码久久av| 在线观看国产高清视频| 久久久国产成人精品| 国产午夜精品视频一区二区三区| 蜜桃视频网站在线观看| 久久精品女人天堂av免费观看| 成人动漫av在线| 国产一级在线观看www色| 91精品啪在线观看麻豆免费| 99欧美精品| 国产成人亚洲精品无码h在线| 影音先锋在线中文字幕| 东京一区二区| 久久精品一区二区三区四区| 日韩欧美在线综合网| 日韩电影在线免费观看| 国内精品国产三级国产在线专| 亚洲1区在线| 欧美性受xxxx狂喷水| 久久久久久久影视| 天天射天天综合网| 日韩黄色免费观看| 亚洲成人福利片| 日韩一区二区精品| 日本欧洲一区二区| 97视频久久久| 伊人网综合视频| 日韩女优在线播放| 国产麻豆一区二区三区精品| 色综合91久久精品中文字幕| 久久av二区| 久久久久久国产三级电影| 亚洲午夜精品一区二区三区| 在线日韩欧美| 国产精品亚洲第五区在线| 国产一区二区三区久久久| 日韩国产欧美在线观看| 自由日本语热亚洲人| 欧美在线视频观看免费网站| 91丝袜在线观看| 香蒸焦蕉伊在线| 91极品女神私人尤物在线播放| 比比资源先锋影音网| 婷婷在线免费观看| 99精品国产99久久久久久白柏| 日韩一级在线免费观看| 国产精品普通话对白| 欧美色图另类小说| a中文在线播放| 毛片av中文字幕一区二区| 国产精品美女午夜av| 欧美三级不卡| 国产精品88av| av成人亚洲| 中文字幕中文字幕在线中心一区| 日韩在线免费观看视频| 国产成人av一区| 亚洲人成在线一二| 国产午夜精品在线| 浮力影院网站午夜| 日韩欧美精品一区二区三区经典| www.av91| 欧美三级华人主播| 久久精品一区二区三区中文字幕| 色8久久影院午夜场| 国产亚洲精品一区二区在线观看| 视频一区视频二区欧美| 91av免费观看91av精品在线| 免费在线激情视频| 国产美女自慰在线观看| 视频一区二区三区国产| 欧美自拍偷拍午夜视频| 欧美日韩精品在线| 97av在线播放| 国产va免费精品高清在线观看| 日本一区二区在线不卡| 国产福利电影在线| 日韩欧美亚洲日产国产| 印度午夜性春猛xxx交| 玖玖玖视频精品| 欧美午夜春性猛交xxxx| 美女福利视频一区二区| 国产精品久久久久久久av福利| 国产一区二区三区在线播放免费观看| 116美女写真午夜一级久久| 久久夜色精品国产噜噜亚洲av| 国产精品一区二区av白丝下载| 成人福利一区二区| 91精品国产综合久久久久久丝袜| 久久久www成人免费无遮挡大片| 欧美午夜在线观看| 国产亚洲精品久久久优势| 欧洲大片精品免费永久看nba| 久久精品视频免费播放| 亚洲精品成av人片天堂无码| 中文字幕精品亚洲| 国产娇喘精品一区二区三区图片| 国产精品视频不卡| 国产精品99精品无码视亚| 国产精品亚洲一区二区三区| 日韩免费毛片视频| 巨人精品**| 福利视频久久| 一级黄色录像大片| 欧美在线激情| 精品国产成人| 国产激情999| 亚洲私拍视频| 91九色视频蝌蚪| 亚洲女人****多毛耸耸8| 久久日韩精品一区二区五区| 日本韩国欧美中文字幕| av天堂一区二区| 国产美女主播在线观看| 夜夜亚洲天天久久| 国产99对白在线播放| 午夜在线网站| 成人av片网址| 日韩免费成人网| 美女在线一区二区| 亚洲欧美成人一区二区三区| 美女的胸无遮挡在线观看| 2019中文字幕全在线观看| 亚洲国产欧美日本视频| 久久久精品人体av艺术| 国产大片aaa| 国产精品免费一区二区三区都可以| 6699久久国产精品免费| 国产又黄又猛又粗又爽的视频| 久久字幕精品一区| 亚洲精品天天看| 精品无人区乱码1区2区3区免费| 欧美日韩国产中文精品字幕自在自线| 视频一区二区三区入口| 免费精品国产| 亚洲精品久久久久久久久久| 久久99最新地址| 中文字幕在线观看免费高清| 污污视频在线免费看| av网站在线免费看推荐| 97视频在线免费| 亚洲日本一区二区三区在线观看| 九七午夜视频| 性xxxxxxxxx| 色老综合老女人久久久| 国产又大又粗又爽| 成人动漫精品一区二区| 成年人在线视频| 久久蜜桃资源一区二区老牛| 偷偷www综合久久久久久久| 91色|porny|