如何使用自然语言处理开始进行文本摘要项目?

7

我的最终工程项目要求我使用Java或Python构建一个应用程序,利用自然语言处理来总结文本文档。如何开始编写这样的应用程序?

根据一些研究,我注意到基于提取的摘要将是最好的选择,因为它不像基于抽象的算法那么复杂。即使如此,如果有人能指导我正确的方向,那将非常有帮助。

3个回答

11

在NLP中,文本摘要仍然是一个未解决的问题。

我猜你可能会问自己摘要的目的是什么:

  • 区分一个文档与其他文档的摘要
  • 只挖掘经常出现的模式的摘要
  • 覆盖文档中所有主题的摘要
  • 等等

因为这将影响您生成摘要的方式。

但是作为一个起点,您可以使用python中的NLTK框架从文本中提取基本元素。例如,您可以从文本中提取最频繁的单词或最频繁的N-grams(N个相邻单词)。

此外,一种提取最相关句子的简单方法是使用TF-IDF,它代表词项频率和逆文档频率。基本上,该函数给倾向于在一个文档中频繁出现而不同于其他文档的句子打高分。

您可以使用以下几个python库:

  • sickitlearn带有更高级的功能。
  • 还有gensim库的文本摘要教程(也是python)。
  • 您还可以使用Dato,它也有一个文本分析模块。

一些有用的资源:

希望这能帮到您。


5
这些天,使用神经网络来概括语料库被认为是最先进的技术。
这里有一篇值得阅读的文章:一个用于句子概括的神经注意力模型。http://www.aclweb.org/anthology/D15-1044

0

已经有一些好的和全面的概述发布了,所以我将给出一个更具体的例子。它很简短、简洁、简单...你只需要玩一下summaryRatio即可:

def summarizePassage(text,summaryRatio=0.5):
  from gensim.summarization import summarize
  try:
    summary = summarize(text,split=True,ratio=summaryRatio)
  except:
    print "WARNING: Gensim unable to reduce: ", text
    return [text]
  return summary

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