文本摘要:如何选择合适的 n-gram 大小

Posted

技术标签:

【中文标题】文本摘要:如何选择合适的 n-gram 大小【英文标题】:Text summarization: how to choose the right n-gram size 【发布时间】:2015-03-20 06:26:26 【问题描述】:

我正在总结文本,使用 nltk 库我能够提取二元一元和三元并按频率排序

由于我对这个领域 (NLP) 非常陌生,我想知道是否可以使用统计模型来自动选择正确的 Ngram 大小(我所说的大小是 N-gram 的长度) word unigram、两个词 bigram 或 3 个词 trigram)

例如,假设我有一段想要总结的文本,作为总结,我将只保留 5 个最相关的 N-gram:

"A more principled way to estimate sentence importance is using random walks 
and eigenvector centrality. LexRank[5] is an algorithm essentially identical 
to TextRank, and both use this approach for document summarization. The two 
methods were developed by different groups at the same time, and LexRank 
simply focused on summarization, but could just as easily be used for
keyphrase extraction or any other NLP ranking task." wikipedia

然后作为我想要的输出,“随机游走”、“texRank”、“lexRanks”、“文档摘要”、“关键词提取”、“NLP 排名任务”

换句话说,我的问题是:如何推断一元组比二元组或三元组更相关? (仅使用频率来衡量 N-gram 的相关性不会给我想要的结果)

谁能给我指出已经使用或解释过这种方法的研究论文、算法或课程

提前谢谢你。

【问题讨论】:

【参考方案1】:

考虑到您有一个语料库,您可以尝试使用主题建模技术(例如Biterm)来帮助您推断与给定主题最相关的术语,因为您的术语也可以是 n-gram。这将是一种概率近似,因为正如您所提到的,简单地计算频率并不能产生好的结果。

当然,这种方法考虑了词形还原和停用词删除。

【讨论】:

【参考方案2】:

    我相信文档摘要取决于域。因此,如果您有一个域语料库,您可以使用 tf-idf 来了解您正在提取的 n-gram 的相关性。您可以对 n-gram 应用一些词形还原以获得更好的相关性分数。

    用户还可以探索 google N-gram http://www.ngrams.info/ 以计算相关性分数。

【讨论】:

【参考方案3】:

正如 Adrian 所指出的,一种简单但略显暴力的方法是计算语料库中所有 n-gram 的 TFIDF 分数。另一种方法可能是使用这样的方法来识别多词短语的良好候选者 - 寻找短语 - 两种统计方法(无耻插件 - 我是这篇文章的作者,尽管不是所描述的方法)。获得这些短语后,您可以按 TFIDF 分数对它们进行排序,以获得描述文本的 N 最佳短语。一种更简单的方法可能是只使用标准的关键字提取算法,例如 RAKE 或 Kea。

【讨论】:

以上是关于文本摘要:如何选择合适的 n-gram 大小的主要内容,如果未能解决你的问题,请参考以下文章

Python:如何在文本中找到 n-gram 模式?

NLP领域任务如何选择合适预训练模型以及选择合适的方案规范建议ERNIE模型首选

干货通俗理解自然语言处理中N-Gram模型

对话摘要技术在美团的探索(SIGIR)

如何设置 android 偏好摘要文本颜色?

系统缩放比例多少合适