本文我们将使用一个非常简单但是可靠的提取方法来实现一个文本摘要器。
你有看到一些应用专门用来从一个文章或者新闻中提取出60字左右的摘要吗?比如inshorts。这样的效果就是我们这篇文章想实现的内容,我们将是用一个非常简单的提取方法来实现这个功能,不用担心,我会详细介绍什么是提取方法的。
其实有很多文章都介绍了文本摘要的实现,那么我们的文章有什么特点呢?那就是简单和易上手,我们会通过一些简单的代码片段来介绍这方面的内容。
文本摘要可以有两种实现的方法:
提取方法:从文章中找出n个最能够表达文章意思的句子,这个方法非常容易实现,并且也很容易理解。这也是为什么我会在这篇文章中使用这个方法。
抽象方法:这个方法使用了深度学习中的一些内容,比如编解码结构,长短期记忆LSTM(Long Short Term Memory)网络。而这些其实对新手来说很复杂且不容易理解。这个方法所产生的摘要,可能压根就不在文章中,甚至有可能产生完全没有意义的句子。
现在你理解了为什么我们选择提取方法了吧,让我们来看具体的代码吧:
要求:
我们假设你能够熟悉使用python,并且已经安装了python3。这个例子中使用的是jupyternotebook,当然你可以使用任何你想要的IDE。
需要安装的库:
这个项目你需要安装下面这些包。假如你还没有安装,你可以简单使用以下语句进行安装:pip install packgename,假如你使用的是本地的文件,那么html和xml相关的处理包可能就不需要安装了。
bs4 - BeautifulSoup 是用来解析Html页面的。
lxml - 这个包是用来使用python处理html和XML的。
nltk - 用来处理自然语言相关的任务。
urllib - 用