用于学习字符串模式的机器学习技术

机器算法验证 机器学习 分类 相似之处 监督学习
2022-03-21 04:01:40

我有一个单词列表,属于不同的自定义类别。每个类别都有自己的模式(例如,一个具有固定长度的特殊字符,另一个存在仅出现在该“单词”类别中的字符,...)。

例如:

"ABC" -> type1
"ACC" -> type1
"a8 219" -> type2
"c 827" -> type2
"ASDF 123" -> type2
"123123" -> type3
...

我正在寻找一种机器学习技术来根据训练数据自行学习这些模式。我已经尝试自己定义一些预测变量(例如字长、特殊字符的数量……),然后使用神经网络来学习和预测类别。但这实际上不是我想要的。我想要一种技术来自己学习每个类别的模式——甚至学习我从未想过的模式。

所以我给算法学习数据(由单词类别示例组成)并希望它学习每个类别的模式,以便以后从相似或相等的单词中预测类别。

有没有最先进的方法来做到这一点?

谢谢你的帮助

2个回答

您的问题是否可以重述为想要发现将匹配每个类别中的字符串的正则表达式?这是一个“正则表达式生成”问题,是语法归纳问题的一个子集(另请参见Alexander Clark 的网站)。

正则表达式问题更容易。我可以指出你的代码frakRegexGenerator在线 RegexGenerator++参考了他们关于该问题的学术论文。

您可以尝试循环神经网络,其中您的输入是单词中的字母序列,而您的输出是一个类别。这符合您的要求,因此您无需手动编写任何功能。

但是,要使这种方法真正起作用,您将需要相当大的训练数据集。

您可以参考Alex Graves 第 2 章的带有递归神经网络的监督序列标签以获取更多详细信息。

这是预印本的链接