无训练集的字符串模式识别

我有多个字符串,这些字符串是基于几个(大部分)已知的变量和一些未知的模板创建的。我想知道这些模板是什么,以便从这些字符串中提取变量部分。之后,我可以相对容易地推断出每个子字符串的含义,所以这里的问题仅限于模式识别。例如:

"76 (q) h""a x q y 123""c x e y 73""3 (e) z"...# 模式识别:示例 -> 模板"{1} x {2} y {3}""{1} ({2}) {3}"# 基于模板类型的聚类"{1} x {2} y {3}" -> ["a x q y 123", "c x e y 73", ...]"{1} ({2}) {3}" -> ["76 (q) h", "3 (e) z", ...]# 推断:子字符串 -> 提取的变量"76 (q) h" -> ["76", "q", "h"] -> {x: "h", y: "q", z: 76}"a x q y 123" -> ["a", "q", "123"] -> {x: "a", y: "q", z: 123}"c x e y 73" -> ["c", "e", "73"] -> {x: "c", y: "e", z: 73}"3 (e) z" -> ["3", "e", "z"] -> {x: "z", y: "e", z: 3}

我找到了一个类似的提问:字符串中的智能模式匹配,但在我的情况下,没有办法用正面例子来训练解析器。有什么解决方法的想法吗?


回答:

结果证明,我需要的是所谓的序列模式挖掘。有许多算法,例如SPADE、PrefixSpan、CloSpan、BIDE等。我需要的是一个能够处理间隙的算法,或者一个能够找到我可以用通配符连接的频繁子字符串的算法。从找到的频繁闭合模式中选择合适的模式远非显而易见,我还在研究中,但现在比两个月前更接近目标了。

Related Posts

L1-L2正则化的不同系数

我想对网络的权重同时应用L1和L2正则化。然而,我找不…

使用scikit-learn的无监督方法将列表分类成不同组别,有没有办法?

我有一系列实例,每个实例都有一份列表,代表它所遵循的不…

f1_score metric in lightgbm

我想使用自定义指标f1_score来训练一个lgb模型…

通过相关系数矩阵进行特征选择

我在测试不同的算法时,如逻辑回归、高斯朴素贝叶斯、随机…

可以将机器学习库用于流式输入和输出吗?

已关闭。此问题需要更加聚焦。目前不接受回答。 想要改进…

在TensorFlow中,queue.dequeue_up_to()方法的用途是什么?

我对这个方法感到非常困惑,特别是当我发现这个令人费解的…

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注