string - 机器学习根据字符串相似度将字符串预处理为数字

标签 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

本质上,字符串将转换为一个唯一的实数,如果字符串几乎相同,则该数字将非常接近其他数字,从而为字符串中最先出现的第一个单词赋予更大的权重。

我的问题是,是否有现成的算法来解决这个问题?

最佳答案

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

通过从末尾开始重复与其位置成比例的每个字符来转换每个字符串。例如,“Foo”将变成“FFFooo”和“abcd”“aaaabbbccd”。然后使用 edit-distance在每一对上构建一个距离矩阵 M。

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

关于string - 机器学习根据字符串相似度将字符串预处理为数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42201907/

相关文章:

c++ - 从模板生成排列

algorithm - 以大 O 表示法插入已排序链接列表的复杂性是多少?

python - 如何将多维列变成单值向量以用于sklearn pandas中的训练数据

string - Haskell 尾部拆分

python - 如何将字符串的第一个和最后一个字母大写?

performance - 算法的最差和平均复杂度?

algorithm - 遗传算法如何用于促进机器学习?

python - TensorFlow:SparseSoftmaxCrossEntropyWithLogits 错误?

php - 在 PHP 中本地化当前时间

java - String.valueOf(String Object) 的 null 和 "null"有什么区别