當前位置:首頁 » 操作系統 » 字元串相似度演算法

字元串相似度演算法

發布時間: 2022-03-31 13:47:04

『壹』 誰有求兩個字元串相似度演算法代碼的,C++或者C的都行啊,急求,[email protected],必有重賞啊!!!!!!!

已經調試完了 望採納~

#include <string.h>

int main()
{
char str1[30] = {0};
char str2[30] = {0};
double count1 = 0;
double count2 = 0;
printf("請輸入兩個字元串\n");
scanf("%s",str1);
scanf("%s",str2);
if(strlen(str1)==strlen(str2))
{
int i;
for(i=0; i<30; i++)
{
if(str1[i]=='\0')
break;
count1=count1+1;
if(str1[i]==str2[i])
count2=count2+1;
}
printf("1=%g,2=%g\n",count1,count2);
printf("兩個字元串的相似度是%g%%\n",(count2/count1)*100);
}
else
printf("長度不等無法判斷相似度\n");
}

『貳』 c++計算字元串相似度的函數,誰給發一個

這個函數你自己看看吧

『叄』 兩個十萬級的「0-1」字元串,求他們的相似度用什麼演算法比較好

圖像識別怎麼能這么來干?可能是我孤陋寡聞了,但是不考慮前景、背景、焦點等能代表一張圖像的特徵,僅僅拿圖像的二進制串來比較,這種方法我覺得沒意義啊。
圖像處理過程中有一種將圖像從像域(像素)轉變為頻域的方法,改變之後的頻域依然是一個類似的矩陣,但是越靠近左上角的數值所具有的能量就越高,說白了就是,你如果把(0,0)的點更改了,整張圖就變了,但如果你把(n,n)的改了,對像域內的改變肉眼是無法識別出來的,因此通常將對角線右下的所有數值置0之後,即可以不對原圖作大的改變(從人眼識別的角度,與原圖相似度極高),又可以有效地降低一個圖像的大小(至少可以砍一半)

『肆』 終於知道怎麼判斷字元串相似度了

一直不理解,為什麼要計算兩個字元串的相似度呢。什麼叫做兩個字元串的相似度。經常看別人的博客,碰到比較牛的人,然後就翻了翻,終於找到了比較全面的答案和為什麼要計算字元串相似度的解釋。因為搜索引擎要把通過爬蟲抓取的頁面給記錄下來,那麼除了通過記錄url是否被訪問過之外,還可以這樣,比較兩個頁面的相似度,因為不同的url中可能記錄著相同的內容,這樣,就不必再次記錄到搜索引擎的存儲空間中去了。還有,大家畢業的時候都寫過論文吧,我們論文的查重系統相信也會採用計算兩個字元串相似度這個概念。
以下敘述摘自編程之美一書:
許多程序會大量使用字元串。對於不同的字元串,我們希望能夠有辦法判斷其相似程序。我們定義一套操作方法來把兩個不相同的字元串變得相同,具體的操作方法為:
1.修改一個字元(如把「a」替換為「b」);
2.增加一個字元(如把「abdd」變為「aebdd」);
3.刪除一個字元(如把「travelling」變為「traveling」);
比如,對於「abcdefg」和「abcdef」兩個字元串來說,我們認為可以通過增加/減少一個「g」的方式來達到目的。上面的兩種方案,都僅需要一 次 。把這個操作所需要的次數定義為兩個字元串的距離,而相似度等於「距離+1」的倒數。也就是說,「abcdefg」和「abcdef」的距離為1,相似度 為1/2=0.5。
給定任意兩個字元串,你是否能寫出一個演算法來計算它們的相似度呢?
原文的分析與解法
不難看出,兩個字元串的距離肯定不超過它們的長度之和(我們可以通過刪除操作把兩個串都轉化為空串)。雖然這個結論對結果沒有幫助,但至少可以知道,任意兩個字元串的距離都是有限的。我們還是就住集中考慮如何才能把這個問題轉化成規模較小的同樣的子問題。如果有兩個串A=xabcdae和B=xfdfa,它們的第一個字元是 相同的,只要計算A[2,...,7]=abcdae和B[2,...,5]=fdfa的距離就可以了。但是如果兩個串的第一個字元不相同,那麼可以進行 如下的操作(lenA和lenB分別是A串和B串的長度)。
1.刪除A串的第一個字元,然後計算A[2,...,lenA]和B[1,...,lenB]的距離。
2.刪除B串的第一個字元,然後計算A[1,...,lenA]和B[2,...,lenB]的距離。
3.修改A串的第一個字元為B串的第一個字元,然後計算A[2,...,lenA]和B[2,...,lenB]的距離。
4.修改B串的第一個字元為A串的第一個字元,然後計算A[2,...,lenA]和B[2,...,lenB]的距離。
5.增加B串的第一個字元到A串的第一個字元之前,然後計算A[1,...,lenA]和B[2,...,lenB]的距離。
6.增加A串的第一個字元到B串的第一個字元之前,然後計算A[2,...,lenA]和B[1,...,lenB]的距離。
在這個題目中,我們並不在乎兩個字元串變得相等之後的字元串是怎樣的。所以,可以將上面的6個操作合並為:
1.一步操作之後,再將A[2,...,lenA]和B[1,...,lenB]變成相字元串。
2.一步操作之後,再將A[2,...,lenA]和B[2,...,lenB]變成相字元串。
3.一步操作之後,再將A[1,...,lenA]和B[2,...,lenB]變成相字元串。

通過以上1和6,2和5,3和4的結合操作,最後兩個字元串每個對應的字元會相同,但是這三種操作產生的最終的兩個字元串是不一樣的。我們不知道通過上述的三種結合那種使用的操作次數是最少的。所以我們要比較操作次數來求得最小值。

『伍』 除Levenshtein距離演算法外,是否還有更好的比較字元相似度的演算法

linux環境下,沒有首先安裝python_Levenshtein,用法如下:重點介紹幾個該包中的幾個計算字串相似度的幾個函數實現。1.Levenshtein.hamming(str1,str2)計算漢明距離。要求str1和str2必須長度一致。是描述兩個等長字串之間對應位置上不同字

『陸』 VB計算字元串的相似度,來個可執行文件最好

Functionxsd(s1AsString,s2AsString)AsDouble
Dimd()AsInteger,l1AsInteger,l2AsInteger
DimiAsInteger,jAsInteger,tAsInteger
l1=Len(s1)
l2=Len(s2)
ReDimd(l1,l2)
Fori=0Tol1
d(i,0)=i
Next
Fori=0Tol2
d(0,i)=i
Next
Fori=1Tol1
Forj=1Tol2
IfMid(s1,i,1)=Mid(s2,j,1)Then
t=0
Else
t=1
EndIf
d(i,j)=min3(d(i-1,j-1)+t,d(i,j-1)+1,d(i-1,j)+1)
Next
Next
Ifl1>l2Then
xsd=l1
Else
xsd=l2
EndIf
xsd=1-d(l1,l2)/xsd
EndFunction

Functionmin3(x1,x2,x3)
Ifx1<x2Andx1<x3Then
min3=x1
ElseIfx2<x3Andx2<x1Then
min3=x2
Else
min3=x3
EndIf
EndFunction

PrivateSubCommand1_Click()
MsgBox"相似度:"&FormatPercent(xsd(Text1.Text,Text2.Text),2,vbTrue)
EndSub

在Text1和Text2分別輸入一段文字,再點Command1就會告訴你兩段文字的相似度了。

『柒』 數學建模:兩字元串相似度計算

這個問題來源於生物序列分析,因為DNA序列是由四個鹼基構成的,從數學的角度看就是由四個字元組成的序列或者說字元串,現在最基本的演算法就是waterman&wunch提出的動態規劃演算法,你可以上網搜一下,關於這個演算法的運算過程有很詳細的介紹

『捌』 similar_text — 計算兩個字元串的相似度

similar_text
(php 4, PHP 5, PHP 7, PHP 8)
similar_text — 計算兩個字元串的相似度
說明
similar_text ( string $first , string $second , float &$percent = ? ) : int
兩個字元串的相似程度計算依據 Programming Classics: Implementing the World's Best Algorithms by Oliver (ISBN 0-131-00413-1) 的描述進行。注意該實現沒有使用 Oliver 虛擬碼中的堆棧,但是卻進行了遞歸調用,這個做法可能會導致整個過程變慢或變快。也請注意,該演算法的復雜度是 O(N**3),N 是最長字元串的長度。
參數
first
第一個字元串。
second
第二個字元串。
percent
通過引用方式傳遞第三個參數,similar_text() 將計算相似程度百分數。
返回值
返回在兩個字元串中匹配字元的數目。

『玖』 誰能提供C#里計算兩個字元串相似度的演算法

先計算a的長度,然後進行長度-1循環,在循環里,每次先取出2個字元,然後和B,indexof比較。如果值不等與-1,也就是說沒有,那麼繼續循環,如果不等於-1,那麼取連著3個字元,以次類推(這可以用第歸做,比較省代碼).看是去出幾個字元才有的,和整個A的長度除,得出相似度

『拾』 sql有字元串相似度的函數嗎

相似度有很多定義,可以寫自定義函數,sql server 還能用
CLR
【 ChinaKing (青春大概相似) 中提到: 】
: SQL里有沒有字元串相似的函數?
: 類似於php裡面的 similar_text()
: 就是給兩個字元串 得到相似度

熱點內容
db2建表空間時怎麼配置頁大小 發布:2024-11-15 17:58:45 瀏覽:424
我的世界好玩地鐵伺服器 發布:2024-11-15 17:48:54 瀏覽:359
1710小游戲伺服器ip 發布:2024-11-15 17:48:01 瀏覽:663
狂三腳本 發布:2024-11-15 17:31:38 瀏覽:872
附近存儲櫃 發布:2024-11-15 17:15:17 瀏覽:452
王選解決漢字存儲問題 發布:2024-11-15 17:15:11 瀏覽:660
球球大作戰安卓為什麼不能玩哪些模式 發布:2024-11-15 17:14:26 瀏覽:996
存儲器講課 發布:2024-11-15 17:14:12 瀏覽:196
安卓充電頭怎麼稱呼 發布:2024-11-15 17:11:17 瀏覽:446
獵人手游源碼 發布:2024-11-15 17:09:28 瀏覽:433