我的最后一年工程项目要求我使用Java或Python构建一个应用程序,该应用程序使用自然语言处理来总结文本文档 . 我怎么开始编程这样的应用程序?
基于一些研究,我刚才注意到基于提取的摘要对我来说是最好的选择,因为它不像基于抽象的算法那么复杂 . 即便如此,如果有人能指导我朝着正确的方向前进,那将会非常有帮助 .
文本摘要仍然是NLP中的一个开放问题 .
我想你可以先问问自己摘要的目的是什么:
将文档与其他文档区分开的摘要
仅挖掘频繁模式的摘要
涵盖文档中所有主题的摘要
等
因为这会影响您生成摘要的方式 .
但作为一个开始,你可以在python中使用NLTK框架从文本中提取基本元素 . 例如,您可以从文本中提取最常用的单词或最常用的N-gram(N个相邻单词) .
提取最相关句子的一种简单方法是使用TF-IDF代表术语频率,反向文档频率 . 基本上,与其他文档相比,此函数对于在一个文档中经常出现的句子给出更高的分数 .
你可以使用一些python库:
sickitlearn具有更多高级功能 .
另外gensim库有一个文本摘要教程(也在python中)
您还可以使用具有文本分析模块的Dato .
一些有用的资源:
这本书:Foundations of Statistical Natural Language Processing
还有一门课程可供您注册,以便了解文本挖掘的基础知识:https://www.coursera.org/learn/text-mining
此课程也来自斯坦福大学(TF-IDF在其中一个视频中解释)https://class.coursera.org/nlp/lecture/preview
希望这可以帮助 .
已经发布了一些好的和全面的概述,所以我将给出一个更具体的例子 . 它简短,甜美,简单......你所要做的就是使用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
目前,使用神经网络来总结语料库被认为是最先进的 .
这是一篇值得一读的文章:句子摘要的神经注意模型http://www.aclweb.org/anthology/D15-1044
3 回答
文本摘要仍然是NLP中的一个开放问题 .
我想你可以先问问自己摘要的目的是什么:
将文档与其他文档区分开的摘要
仅挖掘频繁模式的摘要
涵盖文档中所有主题的摘要
等
因为这会影响您生成摘要的方式 .
但作为一个开始,你可以在python中使用NLTK框架从文本中提取基本元素 . 例如,您可以从文本中提取最常用的单词或最常用的N-gram(N个相邻单词) .
提取最相关句子的一种简单方法是使用TF-IDF代表术语频率,反向文档频率 . 基本上,与其他文档相比,此函数对于在一个文档中经常出现的句子给出更高的分数 .
你可以使用一些python库:
sickitlearn具有更多高级功能 .
另外gensim库有一个文本摘要教程(也在python中)
您还可以使用具有文本分析模块的Dato .
一些有用的资源:
这本书:Foundations of Statistical Natural Language Processing
还有一门课程可供您注册,以便了解文本挖掘的基础知识:https://www.coursera.org/learn/text-mining
此课程也来自斯坦福大学(TF-IDF在其中一个视频中解释)https://class.coursera.org/nlp/lecture/preview
希望这可以帮助 .
已经发布了一些好的和全面的概述,所以我将给出一个更具体的例子 . 它简短,甜美,简单......你所要做的就是使用summaryRatio:
目前,使用神经网络来总结语料库被认为是最先进的 .
这是一篇值得一读的文章:句子摘要的神经注意模型http://www.aclweb.org/anthology/D15-1044