【问题标题】:How to extract data from HTML-formatted EMail files via OpenNLP?如何通过 OpenNLP 从 HTML 格式的电子邮件文件中提取数据?
【发布时间】:2016-04-06 19:59:40
【问题描述】:

我正在处理一个项目,我通过电子邮件发送了来自不同快递代理的收据。电子邮件为 HTML 格式。

但是,它们并不都形成特定的结构。每封电子邮件的格式不同。我尝试使用 jsoup 来提取数据,但很难为每种特定类型的 html 编写提取。我需要从邮件中提取名称、位置、位置、组织和其他一些细节。我尝试了 openNLP,但它不能识别所有位置和名称。如果它是句子形式,它会捕获一些位置。

我可以创建自己的包含 html 内容的训练数据,对它们进行注释并训练它以根据训练数据中的 html 结构检测位置和名称吗?

【问题讨论】:

  • 没有实体识别器可以完美地完成工作。您可能应该使用与默认值不同的标记器。在 HTML 数据上训练识别器模型无济于事。我也不明白为什么你应该用 Jsoup 为不同的 HTML 编写提取。问题涉及的方面太多,请重点突出。
  • 实体识别器不会从 HTML 中学习结构信息。从位置和到位置将始终是位置并且唯一标识为位置。您可以很好地为每种 currier 类型编写正则表达式或 jsoup 规则。

标签: java nlp stanford-nlp opennlp named-entity-recognition


【解决方案1】:

我认为您最初的方法值得追求。我在这里看到了两个步骤的选项:

  1. 使用 Jsoup 获取邮件的“文本”内容。一个例子在这里:Get Text from html Using Jsoup

  2. 使用 OpenNLP 或 StanfordNLP NER 提取命名实体。地点、名称等

另一种选择是使用从句子生成的解析树,看看是否有您可以提取的数据的模式。

关于获取from locationto location,您可以尝试为句子生成解析树,这里有一个很好的例子:Extract noun phrase from Sentences OpenNLP。只需更改代码以在 line 65 中获取 PP(介词短语),因为它当前获取 NP(名词短语)。

您会注意到from locationto location 是介词短语(from 和to 是介词)。从句子中获得介词短语后,您可以尝试提取名词成分(介词之后)并使用其他启发式方法来确定它们是否是位置。

如果您有可能位置的词典,这也很有用。如果有词典,则您的“搜索空间”较小,您可以检查介词短语以查看它们是否是已知位置。

正如评论中提到的那样,没有实体识别器可以开箱即用地完成完美的工作。这些事情通常需要进行大量调整,因此您必须热衷于试验并查看数据的含义。

希望对你有帮助

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2023-03-13
    • 2013-10-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-09-11
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多