急!!請問各位高手自動編碼的問題~ |
尚未結案
|
Angela
一般會員 發表:2 回覆:2 積分:0 註冊:2003-10-05 發送簡訊給我 |
目前正在寫一個自動編碼的功能:
輸入新產品名稱時,會抓出資料庫中每筆產品名稱進行比對,相似度最高
者就以該產品的分類碼做為新產品分類碼
ex: 新增:清新化妝水與資料庫中的潔面化粧水(分類碼:1ac)
比對後相似度為0.6--> 公式=2*[A交隻B]/(A B的長度)
此程式還是很多錯誤,可能我還有很多語法不太熟,請各位高手指點一下~~
小妹感激不盡~~
若有疑問可寄e-mail!! 阿笨留 void __fastcall TForm1::Button1Click(TObject *Sender)
{
AnsiString *old_name;
AnsiString *id;
char *add;
add=DBEdit6->Text.c_str();
char *v,*cat;
char *new_cat;
v = new char [add.Length()];
for (int i=0; i < add.Length(); i ){ //將每一個字元丟入v陣列中
v[i] = add.SubString(i,1);
}
int len[ADOTable1->RecordCount 1];
int n,count,abc; //動態宣告陣列大小, 大小與資料筆數一致
old_name = new char[ADOTable1->RecordCount 1];
id=new char[ADOTable1->RecordCount 1];
for (int i =0;i
|
timhuang
尊榮會員 發表:78 回覆:1815 積分:1608 註冊:2002-07-15 發送簡訊給我 |
|
Angela
一般會員 發表:2 回覆:2 積分:0 註冊:2003-10-05 發送簡訊給我 |
|
timhuang
尊榮會員 發表:78 回覆:1815 積分:1608 註冊:2002-07-15 發送簡訊給我 |
要比對的字設定為 WideString 即可, 我寫個小範例, 你放兩個 Edit 在 Form 上, 再放一個 Button , 後在該 Button 的 Click Event 中寫入:
void __fastcall TForm1::Button1Click(TObject *Sender) { WideString s1, s2; s1 = Edit1->Text; s2 = Edit2->Text; int i, j, iqual; double flike; iqual=0; for(i=1;i<=s1.Length();i ) for(j=1;j<=s2.Length();j ) if(s1[i]==s2[j]) iqual ; ShowMessage("s1 length=" IntToStr(s1.Length()) " s2 length=" IntToStr(s1.Length()) " same length=" IntToStr(iqual)); flike = 2.0 * iqual / (s1.Length() s2.Length()); ShowMessage(FloatToStr(flike)); }即可算出在 Edit 中的兩個字串的相似度, 另外你可能還得建立同義字庫哦~ |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |