線上訂房服務-台灣趴趴狗聯合訂房中心
發文 回覆 瀏覽次數:2665
推到 Plurk!
推到 Facebook!

字串比對-字串之間的距離

缺席
GGL
資深會員


發表:104
回覆:600
積分:335
註冊:2006-11-05

發送簡訊給我
#1 引用回覆 回覆 發表時間:2005-10-03 17:04:58 IP:140.118.xxx.xxx 未訂閱
先說一個例子: 假設有一個文字是LOOK.... 以下是他的變形: 1. L------O-----O-----K 2. L:::===:::::O::::====::::O::::====::::K 3. L.......O........O.......l< 4. L.......O........O.......l‧< 之類的。 ps.第四個的K被拆成字母l加上符號‧< 在人的眼睛看來可以明顯看出這個文字是LOOK,但是該怎麼用程式寫出來? 我的想法是:先將一些符號刪掉,剩下正常的文字,但是這樣就要把所有的符號列舉出來,似乎有點不夠聰明.... 跟別人討論的想法是,是否可以將這串字轉換成圖片,然後透過圖片的處理(ex.模糊化...等等)就可以得到一個L O O K的大概圖形,就像是正常的LOOK圖形的拉長,來判斷這兩個圖形之間的距離。 但是我的問題是如果我先不考慮圖形,我該怎麼計算兩個字串之間的距離?如果我考慮圖形又該怎麼計算? 這兩者之間哪個方法會比較好(考慮實做、效能...)? 煩請知道的人來討論一下吧....我對這方面不是很懂,希望有人可以給我一些指導 謝謝囉~~~ 因為有用到字串比對跟圖形方面,所以我不知道該發表在哪一區,如果有發錯版區煩請版主幫我修正...謝謝
haman
中階會員


發表:46
回覆:137
積分:56
註冊:2005-03-10

發送簡訊給我
#2 引用回覆 回覆 發表時間:2005-10-04 11:08:10 IP:163.21.xxx.xxx 未訂閱
算距離的話 可以用Str.Substring(0,Str.Pos("O")-1).Lengh之類的方式來做嗎? ==================================== 懂的不多,卻想學的更多,搞得不自覺的將問題複雜化@@
windblown
中階會員


發表:0
回覆:117
積分:98
註冊:2003-11-14

發送簡訊給我
#3 引用回覆 回覆 發表時間:2005-10-04 11:52:37 IP:61.229.xxx.xxx 未訂閱
我的想法 1 重複的部份,移除到「零個或只剩一個」(用零個或一個代入第 4 項 ) 2 將「類似空白」的字元建表,直接移除 ex: .,_ 全形空白 3 把所有類似的替代字元建表 ex: 英文的 O, o, 數字 0 都算成同一類 4 可以把字元分解的部份建表 ex: K 用 l< 與 1< 5 移除非英文字的部份 6 將 3, 4 的狀況還原成「類似」的字串,才進行比對
GGL
資深會員


發表:104
回覆:600
積分:335
註冊:2006-11-05

發送簡訊給我
#4 引用回覆 回覆 發表時間:2005-10-04 12:34:17 IP:140.118.xxx.xxx 未訂閱
引言: 算距離的話 可以用Str.Substring(0,Str.Pos("O")-1).Lengh之類的方式來做嗎? ==================================== 懂的不多,卻想學的更多,搞得不自覺的將問題複雜化@@
我說的距離的意思比較接近兩個字串的"相似度" 所以用這個方法算出來的數值可能有點....我也不會說
GGL
資深會員


發表:104
回覆:600
積分:335
註冊:2006-11-05

發送簡訊給我
#5 引用回覆 回覆 發表時間:2005-10-04 12:38:15 IP:140.118.xxx.xxx 未訂閱
引言: 我的想法 1 重複的部份,移除到「零個或只剩一個」(用零個或一個代入第 4 項 ) 2 將「類似空白」的字元建表,直接移除 ex: .,_ 全形空白 3 把所有類似的替代字元建表 ex: 英文的 O, o, 數字 0 都算成同一類 4 可以把字元分解的部份建表 ex: K 用 l< 與 1< 5 移除非英文字的部份 6 將 3, 4 的狀況還原成「類似」的字串,才進行比對
謝謝囉....這也是一種方法。 這個方法我們也有想過,只是需要列出很多的可能性....
ddy
站務副站長


發表:262
回覆:2105
積分:1169
註冊:2002-07-13

發送簡訊給我
#6 引用回覆 回覆 發表時間:2008-12-07 01:21:44 IP:220.134.xxx.xxx 訂閱
雖然隔了很多年,還是決定po 一下,希望能給需要的人一個參考資料~~

字串相似度可使用最長共同子序列(Longest Common Subsequence,LCS) 演算法求得


===================引 用 GGL 文 章===================
先說一個例子:假設有一個文字是LOOK.... 以下是他的變形: 1. L------O-----O-----K 2. L:::===:::::O::::====::::O::::====::::K 3. L.......O........O.......l< 4. L.......O........O.......l‧< 之類的。 ps.第四個的K被拆成字母l加上符號‧< 在人的眼睛看來可以明顯看出這個文字是LOOK,但是該怎麼用程式寫出來?我的想法是:先將一些符號刪掉,剩下正常的文字,但是這樣就要把所有的符號列舉出來,似乎有點不夠聰明.... 跟別人討論的想法是,是否可以將這串字轉換成圖片,然後透過圖片的處理(ex.模糊化...等等)就可以得到一個L O O K的大概圖形,就像是正常的LOOK圖形的拉長,來判斷這兩個圖形之間的距離。但是我的問題是如果我先不考慮圖形,我該怎麼計算兩個字串之間的距離?如果我考慮圖形又該怎麼計算?這兩者之間哪個方法會比較好(考慮實做、效能...)?煩請知道的人來討論一下吧....我對這方面不是很懂,希望有人可以給我一些指導 謝謝囉~~~ 因為有用到字串比對跟圖形方面,所以我不知道該發表在哪一區,如果有發錯版區煩請版主幫我修正...謝謝
系統時間:2017-10-19 6:09:23
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!