NLTK提取chunker解析树的术语

时间:2012-09-06 07:45:06

标签: python nlp nltk

  

John Edward Gray 开始正在运行,因为他知道自己

     

倾听 击打 可怕的歌手

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

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

1 个答案:

答案 0 :(得分:3)

在语言学中,“有趣的单词”是调用open class words。 你所指的任务实际上并不是一个分块/解析任务。您正在寻找某种标记器/注释器/贴标签器来标记每个单词以查看它是否“有趣”。

序列标签

如果您将任务作为序列标签任务处理,则句子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是一个“有趣”的块,因为它开始修改不定式含义或{{1给它一个running模态。

封闭课程与开放课程单词

如果您想到了什么是非有趣的单词,那么我建议您构建一个字典,然后运行序列标记脚本来检测那些不在密文字词典中的字典。

机器学习方法

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