簡體   English   中英

如何確定數組中哪個字符串與給定字符串最相似?

[英]How to determine which string in an array is most similar to a given string?

給定一個字符串,

string name = "Michael";

我希望能夠評估數組中哪個字符串最相似:

string[] names = new[] { "John", "Adam", "Paul", "Mike", "John-Michael" };

我想為用戶創建一條消息:“我們找不到'Michael',但'John-Michael'很接近。這就是你的意思嗎?” 我該如何做出這個決定?

這通常使用編輯距離/ Levenshtein距離來完成,通過比較哪個單詞是最接近的,基於將一個單詞轉換為另一個單詞所需的刪除,添加或更改的數量。

還有為您提供一個通用的實現為C#的文章在這里

在這里,您可以使用Levenshtein距離獲得示例的結果:

EditDistance["Michael",#]&/@{"John","Adam","Paul","Mike","John-Michael"}
{6,6,5,4,5}  

在這里,您可以使用Smith-Waterman相似性檢驗得到結果

SmithWatermanSimilarity["Michael",#]&/@{"John","Adam","Paul","Mike","John-Michael"}
{0.,0.,0.,2.,7.} 

HTH!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM