String 基于字符串相似性的机器学习字符串预处理
我需要将数据预处理为数字,以便能够在数据集中应用ML算法,但有一个功能几乎是由字符串组成的树结构,我不知道如何转换。下面是一个例子: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 本质上,字符串将转换为一个唯一的实数,如果字符串几乎相同,则该数字将与其他数字非
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的余弦(等价地,在每个向量被归一化为单位长度后,它们的内积),因此反映了它们的项分量的相对分布的相似性
您要求在一维空间中嵌入高维空间。这通常是不可能的,除了大约。有关指针,请参阅,但您还必须确定距离度量是什么。您要求在一维空间中嵌入更高维空间。这通常是不可能的,除了大约。请参阅以获取指针,但您还必须确定距离度量是什么。