NLTK提取块解析树的术语

4

约翰·爱德华·格雷 现在知道自己发胖了,开始 跑步运动

正在听那位 糟糕的歌手Smack That

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

现在,我希望使用块分析器来完成这项任务。我认为解析树的叶节点包含所有有趣的单词和词组。请问如何从块分析器输出中提取术语?


分块器不会生成解析树。如果你所说的“分块器”是指“解析器”,那么叶节点通常只包含单词,而不是多个单词组成的短语。 - Fred Foo
我选择了错误的术语。但是后来我看到了“块结构是包含标记和块的树”的内容,意思是它是一个“浅树结构”。提取短语实体的组件的正确名称是什么? - Jesvin Jose
那是一个分块器。它生成一个非常简单的两层结构,令牌和块;将其称为树在数学上是正确的,但没有实际价值。如果您将其视为树,则叶子不是有趣的元素,而是更高级别的元素。 - Fred Foo
你想要动词“运行”,而不是“侦听”吗? - HappyTimeGopher
1
什么使一个单词对你的目的“有趣”? - alexis
1个回答

4
在语言学中,“有趣的单词”被称为“开放类单词”。你所提到的任务并不是一个分块/解析任务。你正在寻找某种标记器/注释器/标签器来标记每个单词,以查看它是否“有趣”。
序列标注
如果您将任务作为序列标注任务来处理,则句子“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,给它一个开始动作的情态。

封闭类与开放类词

如果您心中已有非有趣单词的概念,那么建议您建立该字典,然后运行序列标注脚本以检测那些不在封闭类单词字典中的单词。

机器学习方法

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


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接