NLTK提取chunker解析树的术语

现在约翰爱德华格雷开始跑步 ,他知道他很胖

可怕的歌手 嫌那

我想从句子中提取有趣的术语。 我目前使用POS标记来识别每个实体的语法类型。 然后我将每个标记更新到一个计数器(对于名词,动词和形容词使用不同的权重)。

我现在希望为此使用一个chunker。 我认为分析树叶节点包含所有有趣的单词和短语 。 我如何从chunker输出中提取术语?


在语言学中,“有趣的单词”被称为open class words 。 而你所指的任务并不是真正的分块/解析任务。 您正在寻找某种tagger / annotator / labeller来标记每个单词以查看它是否“有趣”。

序列标签

如果你将你的任务作为一个序列标签任务来处理,那么John Edward Grey started running now that he knows he is fat的一句话John Edward Grey started running now that he knows he is fat就会被标记为:

[('John','B'),('Edward','I'),('Grey','I'),('started','O'),('running','B'),
('now','O'),('that','O'),('he','O'),('knows','O'),('he','O'),
('is','O'),('fat','B')]
  • 所以任何用B标记的东西都意味着你的“有趣”块的开始

  • 随后用O标记的单词将成为“有趣”的块或结尾

  • 它也可以结束于随后的B来标记前一个“有趣”块的结束和新“有趣”块的开始。

  • 什么有趣或没有?

    其实有趣与否取决于你的任务最终目标是什么,对我而言,我会说started running是一个“有趣”的块,因为它开始修改不定词的含义或running ,使其成为一种begin action形式。

    封闭课堂与开放课堂单词

    如果你记住什么是无趣的单词,那么我建议你建立一个字典,然后运行一个序列标签脚本来检测那些不在封闭类词典中的字典。

    机器学习方法

    另一种方法是执行机器学习分类任务,其中您已经预先注释了哪些有趣和什么不是什么的样本数据。 然后,您将识别一些分类功能并运行分类以使用BIO标签自动标记数据。

    链接地址: http://www.djcxy.com/p/73469.html

    上一篇: NLTK extracting terms of chunker parse tree

    下一篇: Combining a Tokenizer into a Grammar and Parser with NLTK