Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/algorithm/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
String 基于字符串相似性的机器学习字符串预处理_String_Algorithm_Machine Learning_Similarity - Fatal编程技术网

String 基于字符串相似性的机器学习字符串预处理

String 基于字符串相似性的机器学习字符串预处理,string,algorithm,machine-learning,similarity,String,Algorithm,Machine Learning,Similarity,我需要将数据预处理为数字,以便能够在数据集中应用ML算法,但有一个功能几乎是由字符串组成的树结构,我不知道如何转换。下面是一个例子: Feature -> Value I would like to transform to (example): X Y Z foo -> 0.5 X Y Z bar -> 0.501 A B C foo -> 4.1 W B C foo -> 5 本质上,字符串将转换为一个唯一的实数,如果字符串几乎相同,则该数字将与其他数字非

我需要将数据预处理为数字,以便能够在数据集中应用ML算法,但有一个功能几乎是由字符串组成的树结构,我不知道如何转换。下面是一个例子:

Feature -> Value I would like to transform to (example):

X Y Z foo -> 0.5
X Y Z bar -> 0.501

A B C foo -> 4.1
W B C foo -> 5
本质上,字符串将转换为一个唯一的实数,如果字符串几乎相同,则该数字将与其他数字非常接近,从而为字符串上首先出现的第一个单词赋予更大的权重


我的问题是,有没有一个已经存在的算法来解决这个问题

首先,我不知道有什么算法可以解决这个问题。但我有一个想法(我知道这不是一个“答案”,但我缺乏作为评论添加这一点的声誉)

变换每个字符串,方法是重复每个字符,使其与从末尾开始的位置成比例。例如,“Foo”将变成“fffoo”和“abcd”“aaaabbbccd”。然后在每一对上使用距离矩阵,M


现在它是一个优化问题。从随机解开始(每个单词的随机实数),然后计算解的距离矩阵M',并最小化M和M之间的一些度量(平方误差)。

首先,我不知道任何算法来解决这个问题。但我有一个想法(我知道这不是一个“答案”,但我缺乏作为评论添加这一点的声誉)

变换每个字符串,方法是重复每个字符,使其与从末尾开始的位置成比例。例如,“Foo”将变成“fffoo”和“abcd”“aaaabbbccd”。然后在每一对上使用距离矩阵,M


现在它是一个优化问题。从随机解(每个单词的随机实数)开始,然后计算解的距离矩阵M',并最小化M和M之间的一些度量(平方误差)。

从您的示例中,我觉得您试图找到两个文本文档之间的相似性。在这种情况下,余弦相似性是最广泛使用的距离度量

例如,让我们比较一下“男孩吃苹果”和“女孩吃梨”

首先,创建一个频率矩阵,其中条目ij包含术语j包含在文档i中的次数

              "the"  "boy"   "girl"  "eats"  "apple"  "pear"
(sentence 1)    2       1      0       1        1        0
(sentence 2)    2       0      1       1        0        1
因此,余弦相似性可以用

发件人:

这是两个向量之间anvgle的余弦(等价地,在每个向量被归一化为单位长度后,它们的内积),因此反映了它们的项分量的相对分布的相似性


在我看来,从你的例子来看,你试图找到两个文本文件之间的相似之处。在这种情况下,余弦相似性是最广泛使用的距离度量

例如,让我们比较一下“男孩吃苹果”和“女孩吃梨”

首先,创建一个频率矩阵,其中条目ij包含术语j包含在文档i中的次数

              "the"  "boy"   "girl"  "eats"  "apple"  "pear"
(sentence 1)    2       1      0       1        1        0
(sentence 2)    2       0      1       1        0        1
因此,余弦相似性可以用

发件人:

这是两个向量之间anvgle的余弦(等价地,在每个向量被归一化为单位长度后,它们的内积),因此反映了它们的项分量的相对分布的相似性


您要求在一维空间中嵌入高维空间。这通常是不可能的,除了大约。有关指针,请参阅,但您还必须确定距离度量是什么。您要求在一维空间中嵌入更高维空间。这通常是不可能的,除了大约。请参阅以获取指针,但您还必须确定距离度量是什么。