我想逐字检查两个字符串的相似性。
我尝试使用php.js similar_text:
http://phpjs.org/functions/similar_text/
但是它逐个字母地检查相似性,例如,如果我检查了" ddda"的相似性。反对"添加"它将返回100%
我想要一个逐字检查的功能,以便" Hello World"检查"您好"将返回50%
答案 0 :(得分:3)
我不明白你的相似之处是什么意思,但你可以试试这个:
var a = "hello world", b = "hello 123"
function similarity(a,b) {
// splitting and sorting arrays (for easier and faster search)
var arrayA = a.split(/\W/g).sort(),
arrayB = b.split(/\W/g).sort(),
result = 0
// loop through a
for (var i=0,imax=arrayA.length;i<imax;i++)
// for every word find amount of occurences in text b
result += arrayB.reduce(function(a,b){
return a + (arrayA[i] == b?1:0)
},0)
// change here to your understanding of similarity
return result/imax * 100
}
alert(similarity(a,b) + "%")
JS Bin - 点击右上角的修改
或许,您希望使用一些重复检查器或其他任何内容来增强它,但这是您可以用于进一步实施的基础
答案 1 :(得分:0)
帖子很旧 但是如果你想检查单词相似度或文本相似性的片段,你可以使用显式的语义半文,你可以阅读关于https://www.jair.org/media/2669/live-2669-4346-jair.pdf
的论文你可以在Linux上使用这个librabry,它使用起来非常简单 http://lukas.zilka.me/esalib/