如何使用自然语言处理或其他技术从html中提取实体

时间:2013-11-21 17:55:41

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

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

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

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

  • 2013-02-01 - 事件名称 - 竞技场名称
)。

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

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

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

1 个答案:

答案 0 :(得分:1)

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

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

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