String a = 'string'
String b = 'This is a strin'
println b.containsSimilarity(a)
有沒有在Groovy像想象containsSimilarity一個函數,它說串的差異,所以 我想在 搜索「字符串」「這是一個〜應變」和比較後,說83%字符串「字符串」被發現在「這是一個字符串」。 喜歡的東西的斷言在使用斯波克一個字符串是其他字符串的一部分的多少個百分比?
斷言 「串」 == 「字符串」
結果是:
「串」 == 「〜應變」 | 假 1差(83%的相似性) 〜應變(G) 〜應變( - )
我怎麼能在Groovy做到這一點?所以不比較兩個字符串,而是找字符串一個的多大一部分被包含在字符串b。如果a是b - > true的一部分,否則爲false並打印相似度百分比,並顯示差異在哪裏。
這是不是與Levenshtein距離有關?也許[這個stackoverflow問題](http://stackoverflow.com/questions/6087281/similarity-score-levenshtein)有答案 – Will
沒有。我的字符串b很長,我想搜索它的一小部分。所以,如果我的字符串b爲英文字母,和一個字符串是比較 - 我想造成100%後,「W」,但萊文斯坦或哈羅 - 沃克這將是0.03%或更少。 – Xelian
這裏有一種方法https://blog.nishtahir.com/2015/09/19/fuzzy-string-matching-using-cosine-similarity/ 更多相關會在看https://stackoverflow.com/questions/955110 /相似性字符串比較,在Java的 –