将HTML解析为句子 - 如何处理表/列表/标题/等?

Lan*_*ard 6 html python nlp nltk text-segmentation

你如何将带有自由文本,列表,表格,标题等的HTML页面解析成句子?

这个维基百科页面为例.有/是:

在搞乱了python NLTK之后,我想测试所有这些不同的语料库注释方法(来自http://nltk.googlecode.com/svn/trunk/doc/book/ch11.html#deciding-which-layers-注释 - 包括):

  • 单词标记:正文形式的文本不能明确地标识其标记.除了传统的正交版本之外,标记化和标准化版本可以是非常方便的资源.
  • 句子分割:正如我们在第3章中看到的那样,句子分割可能比看起来更难.因此,一些语料库使用显式注释来标记句子分割.
  • 段落分段:段落和其他结构元素(标题,章节等)可以明确注释.
  • 词性:文档中每个单词的句法类别.
  • 句法结构:显示句子组成结构的树形结构.
  • 浅层语义:命名实体和共同引用注释,语义角色标签.
  • 对话与话语:对话行为标签,修辞结构

一旦你将文档分成句子,它似乎非常简单.但是,如何从维基百科页面中删除类似HTML的内容呢?我非常熟悉使用HTML/XML解析器和遍历树,我尝试剥离HTML标记以获取纯文本,但由于删除HTML后缺少标点符号,NLTK不会解析表格单元格之类的内容,甚至列表,正确.

是否有一些最佳实践或策略来解析NLP的东西?或者您只需手动编写特定于该单个页面的解析器?

只是寻找正确方向的一些指针,真的想尝试这个NLTK!

ale*_*xis 1

听起来您正在剥离所有 HTML 并生成一个平面文档,这会使解析器感到困惑,因为松散的部分粘在一起。由于您对 XML 有丰富的经验,因此我建议您将输入映射到一个简单的 XML 结构,以保持各部分独立。您可以根据需要使其变得简单,但也许您需要保留一些信息。例如,标记标题、章节标题等可能很有用。当您拥有可保持块独立的可用 XML 树时,可XMLCorpusReader将其导入到 NLTK 宇宙中。