我的最终工程项目要求我使用Java或Python构建一个应用程序,利用自然语言处理来总结文本文档。如何开始编写这样的应用程序?
根据一些研究,我注意到基于提取的摘要将是最好的选择,因为它不像基于抽象的算法那么复杂。即使如此,如果有人能指导我正确的方向,那将非常有帮助。
我的最终工程项目要求我使用Java或Python构建一个应用程序,利用自然语言处理来总结文本文档。如何开始编写这样的应用程序?
根据一些研究,我注意到基于提取的摘要将是最好的选择,因为它不像基于抽象的算法那么复杂。即使如此,如果有人能指导我正确的方向,那将非常有帮助。
在NLP中,文本摘要仍然是一个未解决的问题。
我猜你可能会问自己摘要的目的是什么:
因为这将影响您生成摘要的方式。
但是作为一个起点,您可以使用python中的NLTK框架从文本中提取基本元素。例如,您可以从文本中提取最频繁的单词或最频繁的N-grams(N个相邻单词)。
此外,一种提取最相关句子的简单方法是使用TF-IDF,它代表词项频率和逆文档频率。基本上,该函数给倾向于在一个文档中频繁出现而不同于其他文档的句子打高分。
您可以使用以下几个python库:
一些有用的资源:
希望这能帮到您。
已经有一些好的和全面的概述发布了,所以我将给出一个更具体的例子。它很简短、简洁、简单...你只需要玩一下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