2013-11-21 78 views
0

我想解析包含时间,地点和名称的网页中的实体。我读了一些关于自然语言处理和实体提取的内容,但我不确定我是否正走向错误的道路,所以我在这里问。如何使用自然语言处理或其他技术从HTML中提取实体

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

很多倍的数据不会在句子中找到,而是像列表HTML的结构(例如

  • 2013年2月1日 - 事件的名称 - 竞技场名称
)。

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

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

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

回答

1

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

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

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

+0

我认为常见的情况将是网页将被构造的名称/地点/日期不会在句子中,所以我想我正在寻找其他的想法。此外,日期可能需要自定义逻辑,因为月份(或年份)可能在页面标题中,而日期在列表项中的正文中。我开始阅读关于计算机视觉的知识,以及如何将它用于细分可能有用的网页。它可以考虑更大/粗体的字体来帮助挑选姓名/日期。尽管如此,试图找到更多的信息。 –