0

想象一下你收到这样的电子邮件:

name1: value
name2: value
name3: value

...

这些值应插入到数据库中,其列名与电子邮件中的名称相同。

但是,电子邮件可能有一些错误,例如拼写错误或使用缩写而不是全名。此外,作者可能会随机选择更改名称,例如将自行车更改为自行车。

这些电子邮件应该被自动处理,即使它有错误。处理脚本应该能够“修复”错误。

我认为文本分类(卷积)神经网络可能会完成这项工作,但它似乎有点矫枉过正。有没有更好或更简单的解决方案?

4

1 回答 1

1

这里有一些想法,因为您事先知道键(列名)。假设有colordensity

  • 您可以使用诸如编辑距离之类的东西(例如,Levenshtein 距离)将任何无法识别的距离与最近的实际距离相匹配(如果它足够接近的话)。比如说,cloor可以匹配到,color因为编辑距离为 1。(但是,如果有几个匹配的编辑距离足够低,您可能希望安全地播放它而不映射数据。
  • 同样,对于缩写,您可以选择通过唯一前缀映射它们,即如果有人使用dens,并且只有一列 ( density) 以 开头dens,您可能可以安全地想象它是density

对于所有未映射的列,我会在数据库中添加一个“存储”列,您可以将无法识别的数据放入(例如 JSON 格式)中,并让脚本提醒操作员(您!)有关无法识别的键,这样您就可以改进逻辑,并使用该逻辑将数据从存储列映射到实际列。

于 2018-05-23T14:03:41.713 回答