如何选择一个合适的机器学习算法将一段文字转化为 Python 字典?

2017-07-28 16:04:37 +08:00
 billion

假设有这样一段字符串:

name:Bill
age:20
salary:9999

需要将它转化为 Python 的字典:

info = {'name': 'Bill', 'age': 20, 'salary': 9999}

当然,对每一行使用 split(':')就可以直接进行分割得到 Key 和 Value,但这并不是根本的解决办法。因为还存在以下格式的字符串:

name>Bill
age>20
salary>9999

或者

Bill==>name
20==>age
9999==>salary

或者

name,age,salary
Bill,20,9999

这些字符串让人来看,可以发现他们对应的 Python 字典是完全一样的,但是这就不能简单地通过规则匹配来转换了。

每一种格式的字符串都有一万个,所以训练集数量不是问题。希望能实现一个机器学习算法,输入一些训练集来训练这个系统,之后再输入新的字符串,就能个自动输出对应的 Python 字典。

请问这样的系统应该如何设计?

2951 次点击
所在节点    Python
24 条回复
billion
2017-07-29 08:44:03 +08:00
@spolarbear 正确率。
billion
2017-07-29 08:46:41 +08:00
@binux 我有一百万种格式,每一种格式都有一个对应的 dict。不可能每一种都自己写规则。当然,打标签也不会每一种都打。这也是为什么我在帖子的 Append 里面说用深度神经网络而不是普通机器学习算法的原因。
yemenchun1
2017-07-29 09:22:23 +08:00
比较好奇一百万种格式的原始数据是哪些人创造的
Zzzzzzzzz
2017-07-29 22:06:31 +08:00
你需要的只是 pyparsing

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/378650

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX