Math 使用NLP技术的词间距离

Math 使用NLP技术的词间距离,math,matrix,nlp,Math,Matrix,Nlp,给定的是一组单词,如{柏林,柏林,柏林,柏林,柏林,柏林}。在某些情况下,我不得不将这些词视为不能变为统一的情况。我得选一个。是否有任何使用NLP的解决方案可以帮助我实现这一点,例如,选择一个与大多数人的其余部分最匹配的解决方案 谢谢您可以使用Sorensen–骰子系数进行此操作 系数=2*| X∩Y |/| X |+| Y| 在哪里,, |X |和Y |是两组的基数, |X∩Y |是两个集合中的公共元素数 系数范围为0-1,其中1表示高度相似,0表示最不相似 由于您需要集区分大小写: 用任何符

给定的是一组单词,如{柏林,柏林,柏林,柏林,柏林,柏林}。在某些情况下,我不得不将这些词视为不能变为统一的情况。我得选一个。是否有任何使用NLP的解决方案可以帮助我实现这一点,例如,选择一个与大多数人的其余部分最匹配的解决方案

谢谢

您可以使用Sorensen–骰子系数进行此操作

系数=2*| X∩Y |/| X |+| Y|

在哪里,, |X |和Y |是两组的基数, |X∩Y |是两个集合中的公共元素数

系数范围为0-1,其中1表示高度相似,0表示最不相似

由于您需要集区分大小写: 用任何符号替换集合中的字符。注意:使用ascii值可能会显著改变准确率。我建议将字符编码为不同的符号,以保持准确度不变

例如: b=“!”,e='@',r=,l='$',i='%',n='^', B='&',E='*',R=,L=,I='?',N='{'

代码:-


选择一个与大多数人最接近的词,这打开了一个可能性的海洋,你能详细阐述一下吗?也许有几个例子。让我重新表述一下,这个例子中的一组词是{柏林,柏林,柏林,柏林,柏林}.现在我想从中选择一个,基于正确性、与其他单词的相似性分数、可读性分数等,也可以是其他参数。但重点是从上面的列表中选择。我有什么可能的选项来解决此类问题?
var oldSet = ['Berlin' , 'BERLIN' , 'BERlin', 'BeRlin','berlin','berliN' , 'berLIN'];
var newSet = ['&@#$%^', '&*()?{', "&*($%^", "&@($%^", "!@#$%^", "!@#$%{", "!@#)?{"];

var ratio= [];

for(var i=0; i<newSet.length-1; i++) {
    for(var j=i+1; j<newSet.length; j++) {
        var cof= getCoefficient(newSet[i], newSet[j], getIntersection(newSet[i], newSet[j]));
        print("\n\n" + oldSet[i] + "====" + oldSet[j] + "===>" + cof);
        ratio.push(cof);        
    }
    print("\n");      
}

//This function will return coeffiecient between 0 to 1
function getCoefficient(x, y, commonCnt) {
    return ((2*commonCnt) / (x + y));
}
    Berlin====BERLIN===>0.16666666666666666


    Berlin====BERlin===>0.6666666666666666


    Berlin====BeRlin===>0.8333333333333334


    Berlin====berlin===>0.8333333333333334


    Berlin====berliN===>0.6666666666666666


    Berlin====berLIN===>0.3333333333333333




    BERLIN====BERlin===>0.5


    BERLIN====BeRlin===>0.3333333333333333


    BERLIN====berlin===>0


    BERLIN====berliN===>0.16666666666666666


    BERLIN====berLIN===>0.5




    BERlin====BeRlin===>0.8333333333333334


    BERlin====berlin===>0.5


    BERlin====berliN===>0.3333333333333333


    BERlin====berLIN===>0




    BeRlin====berlin===>0.6666666666666666


    BeRlin====berliN===>0.5


    BeRlin====berLIN===>0.16666666666666666




    berlin====berliN===>0.8333333333333334


    berlin====berLIN===>0.5




    berliN====berLIN===>0.6666666666666666