【问题标题】:python recognize text in emailpython识别电子邮件中的文本
【发布时间】:2018-11-02 13:23:29
【问题描述】:
想象一下你收到这样的电子邮件:
name1: value
name2: value
name3: value
...
这些值应该插入到数据库中,其列名与电子邮件中的名称相同。
但是,电子邮件可能存在一些错误,例如拼写错误或使用缩写而不是全名。
另外,作者可能会随机选择更改名称,例如将自行车改成自行车。
这些电子邮件应该被自动处理,即使它有错误。处理脚本应该能够“修复”错误。
我认为文本分类(卷积)神经网络可能会完成这项工作,但它似乎有点矫枉过正。有没有更好或更简单的解决方案?
【问题讨论】:
标签:
python
classification
conv-neural-network
email-processing
【解决方案1】:
这里有一些想法,因为您事先知道键(列名)。假设有color 和density。
- 您可以使用诸如编辑距离(例如 Levenshtein 距离)之类的东西来将任何无法识别的距离与最近的实际距离相匹配(如果它足够近的话)。比如说,
cloor 可以匹配到color,因为编辑距离为 1。(但是,如果有几个匹配的编辑距离足够低,您可能希望安全地进行操作,而不是映射数据。
- 同样,对于缩写,您可以选择通过唯一前缀映射它们,即如果有人使用
dens,并且只有一列 (density) 以 dens 开头,您可以放心地想象它是 @987654328 @。
对于所有未映射的列,我会在数据库中添加一个“存储”列,您可以将无法识别的数据放入(例如 JSON 格式)中,并让脚本提醒操作员(您!)有关无法识别的键,因此您可以改进逻辑,并使用该逻辑将数据从存储列映射到实际列。