字符串分类初学者问题

数据挖掘 初学者
2022-02-23 23:53:03

我分析日志文件,经常有一些字符串只在几个地方不同,并且在其他地方都相同,我试图找到它们最有可能属于的通用字符串,例如:

UHGUYGUYGUYGUY id = U1234 UYAG*&^T*#@G*(&G@ id2 = 8767 ib97y79yh0978
UHGUYGUYGUYGUY id = Z1D#34 UYAG*&^T*#@G*(&G@ id2 = 98h ib97y79yh0978
Sss3ug87g87g78ghs837g8 obj { 876t7g }937hs937hs973h97sh397 jh7897y98h
Sss3ug87g87g78ghs837g8 obj { 98u2 }937hs937hs973h97sh397 ZN7897y98h

对我来说,唯一的区别是两者之间的 ids 值,所以一个通用的表单/分组将是

UHGUYGUYGUYGUY id = * UYAG*&^T*#@G*(&G@ id2 = * ib97y79yh0978
Sss3ug87g87g78ghs837g8 obj { * }937hs937hs973h97sh397 *7897y98h

我不确定在机器学习中我应该查找这个问题,或者即使这个问题有名称。

当然这是一个非常简化的例子,id 的数量和位置可能会因不同的通用情况而有所不同,这就是为什么我不能为此编写老式代码的原因,太多的事情可以改变。

机器学习中有什么东西可以帮助找到此类字符串的组吗?如果是,它叫什么?

2个回答

这听起来像是 k 最近邻聚类,因为字符串的大部分是相似的。This answer to an similar question from 2014有你可以在Python中尝试的代码。

https://stats.stackexchange.com/a/158090

如果你有很多实例,K-NN 很快就会变得非常昂贵。

我建议使用百分比匹配。计算机可以了解您拥有的不同类型字符串的分布。当一个新字符串出现时,它会将字符串与所有其他字符串进行比较,并可以计算出该字符串来自特定类的可能性。然后,您可以选择新字符串最有可能属于的类的最大可能性。