如何检测字符串集合的有效格式?

时间:2017-08-30 03:38:19

标签: javascript ruby machine-learning pattern-matching

假设我收集了大约5000个产品代码,我该如何识别有效的字符串模式?

prod_codes = [
  '03578180000',
  '03573880000',
  '03575350000',
  '15459990000',
  '15479850000',
  '15481130000',
  '15478930000',
  '15479790000',
  '15481150000',
  '15479490000'
]

在这个小例子中,有两种不同风格的产品代码:154035(7) s。我假设产品代码以0000结尾。所有代码都是11长。但我希望技术能够使用更大的样本确定地告诉我。

最终,我想要一些有效格式的列表......比如

154\d{4}0000
0357\d{3}0000

上面的格式根本不重要,我只是想要洞察力,所以我可以放心地制作文档。

严格根据我自己的观察来回答这些问题可以很容易地进行测试,但首先很难识别,并且依赖于直觉。我可以通过运行一堆group_by类型的过滤器来测试这个数据集,而另一个"一次测试一下这个理论"类型方法。

我的一般尝试可能是收集所有数据的每个字符位置的Set,然后分析每个字符位置集的#size。当我看到1-2大小的东西时,它告诉我这个数字在某种程度上是固定的。当我看到像5+这样的东西时,它告诉我它可能是\ d。使用此信息,尝试创建合理数量的格式字符串。

我可以搜索哪些机器学习策略来学习如何以这种方式分析这些数据?

这个算法有名字吗?我觉得可能有一些机器学习策略,不仅可以按字符分组我的数据,而且还可以找到类似^154类型的模式,并在吃完我的数据集之后吐出一些想法。

我更喜欢我可以在Ruby或JS中使用的答案,但无论你能提供什么都会有所帮助。

0 个答案:

没有答案