0

我正在做一个关键字提取任务,我想提取短语而不是单词。为了将每个句子分成有意义的部分,我首先进行词性标记,然后根据语言规则仅提取名词短语。每个名词短语都是要提取的潜在关键字。但是,由于我只需要为每个给定文档提取“k”关键字,因此我需要一种对提取的名词短语进行排名的好方法。一种简单的方法是计算每个术语(每个名词短语内)的 TDIDF 分数,然后每个名词短语的分数将是其组成术语的 TDIDF 分数的乘积。我想知道是否有人对我的简单天真解决方案有更好的方法或任何想法?

4

1 回答 1

0

您可以使用句子拆分器,例如开放式 NLP中的拆分器,而不是根据名词识别来提取短语,因为在实践中其准确性可能很低(您可以在一个短语中包含多个名词,并且您使用的硬编码语言规则可能不是健壮的,即适用于所有可能的情况)。使用 openNLP 中的统计模型提取短语可能会更好,因为它带有置信度分数。

无论如何,一旦您提取了短语,您就可以通过应用典型的 NLP 管道来提取关键字,然后使用 tf-idf 对关键字进行排名。

我不建议在一个短语中将 tf-idf 分数相乘,因为那没有意义。但这可能取决于您的应用程序。您想将短语排列到哪个目标?您是否需要与 tf-idf 类似但在句子级别的分数?如果您希望为整个短语分配分数,请使用术语向量 tf-idf 和句子提取的置信度。
或者,如果您搜索短语之间的相似性,那么您可以保留每个句子的 tf-idf 向量并应用余弦或其他相似性技术

于 2015-10-16T08:07:15.017 回答