我的最后一年工程项目要求我使用Java或Python构建应用程序,该应用程序使用自然语言处理来总结文本文档。我怎么开始编程这样的应用程序?
基于一些研究,我刚才注意到基于提取的摘要对我来说是最好的选择,因为它不像基于抽象的算法那么复杂。即便如此,如果有人能指引我朝着正确的方向前进,那将会非常有帮助。
答案 0 :(得分:10)
文本摘要仍然是NLP中的一个开放问题。
我想你可以先问问自己摘要的目的是什么:
因为这会影响您生成摘要的方式。
但作为一个开始,你可以在python中使用NLTK框架从文本中提取基本元素。 例如,您可以从文本中提取最常用的单词或最常用的N-gram(N个相邻单词)。
提取最相关句子的一种简单方法是使用TF-IDF代表术语频率,反向文档频率。基本上,与其他文档相比,此函数对于在一个文档中经常出现的句子给出更高的分数。
您可以使用的一些python库:
一些有用的资源:
希望这有帮助。
答案 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