【问题标题】:How to extract entities from html using natural language processing or other technique如何使用自然语言处理或其他技术从 html 中提取实体
【发布时间】:2013-11-21 17:55:41
【问题描述】:

我正在尝试从包含时间、地点和名称的网页中解析实体。我读了一些关于自然语言处理和实体提取的文章,但我不确定我是否走错了路,所以我在这里问。

我还没有开始实现任何东西,所以如果某些开源库只适用于特定语言,那没关系。

很多时候数据不会在句子中找到,而是在 html 结构中,如列表(例如

  • 2013-02-01 - 活动名称 - 竞技场名称
)。

网页的结构会大不相同(有些可能使用列表,有些可能会将它们放在表格中,等等)。

我可以研究哪些主题来详细了解如何实现这一目标? 是否有任何开源库在进行实体提取时考虑到 html 的结构? 使用机器视觉从 html 中提取这些(名称、时间、地点)实体会更好(甚至可能),其中 CSS 样式可能更容易区分非结构化文本的重要部分(名称、时间、位置)?

任何关于我可以研究的主题/开源项目的指导都会对我有所帮助。

【问题讨论】:

    标签: machine-learning nlp named-entity-extraction


    【解决方案1】:

    许多编程语言都有外部库,可以从各种格式生成规范的日期戳(例如,在 Java 中,使用 SimpleDateFormat)。正如你所说,网页的结构会有很大的不同,但是日期只能使用少量的变体来表达,所以写下一些(比如说,六种)格式的正则表达式会启用从大多数(如果不是全部)HTML 页面中提取日期。

    但是,地名和地名的提取比较困难。这就是自然语言处理必须发挥作用的地方。您正在寻找的是Named Entity Recognition 系统。最好的开源 NER 系统之一是 Standford NER。在使用之前,您应该查看他们的online demo。该演示具有三个分类器(用于英语),您可以从中进行选择。对于我的大部分任务,我发现他们的 english.all.3class.distsim 分类器非常准确。

    请注意,当您提取的地点和名称出现在句子中时,NER 表现良好。如果它们将出现在 HTML 标签中,这种方法可能不会很有帮助。

    【讨论】:

    • 我认为常见的情况是网页的结构是名称/地点/日期不会出现在句子中,所以我想我正在寻找其他想法。此外,日期可能需要自定义逻辑,因为月份(例如年份)可能位于页面标题中,而日期位于列表项的正文中。我开始阅读有关计算机视觉以及如何使用它来分割可能有用的网页的内容。它可以考虑更大/粗体的字体来帮助挑选姓名/日期。试图找到更多关于它的信息。
    猜你喜欢
    • 2020-04-03
    • 2015-09-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多