如何开始使用NLP进行文本摘要项目?

时间:2016-06-21 08:34:02

标签: nlp stanford-nlp

我的最后一年工程项目要求我使用Java或Python构建应用程序,该应用程序使用自然语言处理来总结文本文档。我怎么开始编程这样的应用程序?

基于一些研究,我刚才注意到基于提取的摘要对我来说是最好的选择,因为它不像基于抽象的算法那么复杂。即便如此,如果有人能指引我朝着正确的方向前进,那将会非常有帮助。

3 个答案:

答案 0 :(得分:10)

文本摘要仍然是NLP中的一个开放问题。

我想你可以先问问自己摘要的目的是什么:

  • 将文档与其他文档区分开的摘要
  • 仅挖掘频繁模式的摘要
  • 涵盖文档中所有主题的摘要

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

但作为一个开始,你可以在python中使用NLTK框架从文本中提取基本元素。 例如,您可以从文本中提取最常用的单词或最常用的N-gram(N个相邻单词)。

提取最相关句子的一种简单方法是使用TF-IDF代表术语频率,反向文档频率。基本上,与其他文档相比,此函数对于在一个文档中经常出现的句子给出更高的分数。

您可以使用的一些python库:

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

一些有用的资源:

希望这有帮助。

答案 1 :(得分:5)

现在,使用神经网络来总结语料库被认为是最先进的。

这篇文章值得一读: 句子摘要的神经注意模型 LoadAsync

答案 2 :(得分:0)

已经发布了一些优秀且全面的概述,所以我将给出一个更具体的例子。它简短,甜美,简单......你所要做的就是玩摘要比率:

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