[英]Using C#, how can I replace similar words?
假設這兩個字符串:
string s1="control";
string s2="conrol"; (or "ocntrol", "onrtol", "lcontro" etc.)
我怎樣才能以編程方式找到s2與s1相似並用s1字符串替換s2字符串?
謝謝。
傑夫
您可以使用Levenshtein Distance ,它可以給出兩個單詞有多接近的等級。 你需要決定你做哪個等級替換。
我會建議一個更簡單的答案。 比較2個字符串的長度,並比較兩個字符串的ASCII值之和。
我會用matlab對此進行一些測試。 我會做以下
CONTROL 1111111
OCNTROL 0011111
ONRCTOL 0000111
所以我的原始單詞都是1,而我在第二種情況下有5個1,在第三種情況下有3個1。 你可以說70%是可以接受的,如果70%匹配,我將使用這個詞。 OCNTROL將被接受,但ONRCTOL不會。
我說Matlab是因為你可以輕松地將大量數據加載到矢量中並進行矢量比較。
Linq Method
:嘗試將字符存儲在兩個List<chars>
或List<String>
,並將samller與較大的List<String>
進行比較( SequenceEqual
或Except
)。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.