你如何解析一个包含自由文本,列表,表格,标题等的HTML页面到句子中?例如解析HTML为句子 - 如何处理表/列表/标题/等?
以this wikipedia page为例。有/是:
- 自由文本:http://en.wikipedia.org/wiki/Neurotransmitter#Discovery
- 名单:http://en.wikipedia.org/wiki/Neurotransmitter#Actions
- 表:http://en.wikipedia.org/wiki/Neurotransmitter#Common_neurotransmitters
与蟒蛇NLTK乱搞后,我想测试一下这些不同的语料库注释方法(从http://nltk.googlecode.com/svn/trunk/doc/book/ch11.html#deciding-which-layers-of-annotation-to-include):
- 单词标记:正文形式的文本不能明确标识其标记。除了传统的拼写版本之外,标记化和标准化版本可能是非常方便的资源。
- 句子分割:正如我们在第3章中看到的那样,句子分割可能比看起来更难。因此一些语料库使用明确的注释来标记句子分段。
- 段落分割:段落和其他结构元素(标题,章节等)可能被明确注释。
- 言语部分:文档中每个单词的句法分类。
- 句法结构:显示句子组成结构的树形结构。
- 浅语义:命名实体和共同注释,语义角色标签。
- 对话与话语:对话行为标签,修辞结构
一旦你打破一个文档分成句子似乎很简单。但是,你如何去分解那些来自维基百科页面的HTML?我非常熟悉使用HTML/XML解析器并遍历树,我试图剥离HTML标签来获取纯文本,但是因为在删除HTML之后缺少标点符号,所以NLTK不会解析表格单元格,甚至正确列出。
是否有一些最佳做法或NLP解析这些东西的策略?或者你是否需要手动编写特定于该单独页面的解析器?
只是在正确的方向寻找一些指针,真的想试试这个NLTK了!
您是否尝试过在剥离的文本中使用Punkt(它在NLTK中实现)以查看是否可以让您获得任何位置? – dmh
我的非正式观察是解析器通常在处理和表示显示文本方面不好(而不是运行散文)。如果你找到或设计出一个好的解决方案,请在这里跟进! – tripleee