使用Python自然语言处理入门教程
什么是NLP?
自然语言处理(NLP)是关于开发能够理解人类语言的应用程序和服务。一些NLP的实际例子是语音识别,例如:谷歌语音搜索,了解内容是什么或情感分析等。
NLP的好处
众所周知,博客,社交网站和网页每天都会产生数百万GB的千兆字节。
有许多公司收集所有这些数据以了解用户及其情感,并将这些报告提供给公司以调整他们的计划。
假设一个人喜欢旅行并且经常搜索度假目的地,用户进行的搜索用于通过在线酒店和航班预订应用向他提供相关广告。
搜索引擎不是自然语言处理(NLP)的唯一实现,并且还有很多很棒的实现。
NLP实现
这些是自然语言处理(NLP)的一些成功实现:
- 搜索引擎,如谷歌,雅虎等。谷歌搜索引擎了解你是一个技术人员,所以它显示了与你相关的结果。
- 社交网站像Facebook新闻源一样提供。新闻Feed算法使用自然语言处理了解您的兴趣,并向您展示与其他帖子相关的广告和帖子。
- Apple Siri等语音引擎。
- 垃圾邮件过滤器,现在垃圾邮件过滤器了解电子邮件内容中的内容,看看它是否是垃圾邮件。
如何使用Python开始使用NLP?
自然语言工具包(NLTK)是最受欢迎的自然语言处理库(NLP),它是用Python编写的,背后有一个很大的社区。
NLTK也很容易学习,它是您将使用的最简单的自然语言处理(NLP)库。
在这个NLP教程中,我们将使用Python NLTK库。
在我开始安装NLTK之前,我假设您已经了解了一些Python基础知识。
安装nltk
如果您使用的是Windows或Linux或Mac,则可以使用pip安装NLTK :
$ pip install nltk
在撰写本文时,您可以在Python 2.7,3.4和3.5上使用NLTK。
要检查NLTK是否已正确安装,您可以打开python终端并键入以下内容:
导入nltk
如果一切顺利,这意味着您已成功安装NLTK库。
一旦安装了NLTK,就应该通过运行以下Python代码来安装NLTK软件包:
import nltk nltk.download()
这将显示NLTK下载程序,以选择需要安装的软件包。
您可以安装所有包,因为它们的尺寸很小。
我们将学习如何识别网页在Python中使用NLTK的内容
首先,我们将抓取一个网页并分析文本以查看该页面的内容。
urllib模块将帮助我们抓取网页
import urllib.request response = urllib.request.urlopen('https://en.wikipedia.org/wiki/SpaceX') html = response.read() print(html)
从链接可以清楚地看出,该页面是关于SpaceX的,现在让我们看看我们的代码是否能够正确识别页面的上下文。
我们将使用Beautiful Soup这是一个Python库,用于从HTML和XML文件中提取数据。
from bs4 import BeautifulSoup soup = BeautifulSoup(html,'html5lib') text = soup.get_text(strip = True) print(text)
你会得到一个像这样的输出
现在我们从已抓取的网页上获得了干净的文字,让我们将文本转换为tokens。
tokens = [t for t in text.split()] print(tokens)
计算词频
nltk提供了一个函数FreqDist(),它将为我们完成这项工作。此外,我们将从我们的网页中删除stop words(a,at,the,for等),因为我们不需要它们来阻碍我们的词频数。我们将在网页中绘制最常出现的单词的图表,以便清楚地了解网页的上下文
from nltk.corpus import stopwords sr= stopwords.words('english') clean_tokens = tokens[:] for token in tokens: if token in stopwords.words('english'): clean_tokens.remove(token) freq = nltk.FreqDist(clean_tokens) for key,val in freq.items(): print(str(key) + ':' + str(val)) freq.plot(20, cumulative=False)
20个最常用单词的图表
代码已正确识别网页是否与SpaceX有关。
这是如此简单有趣!您可以类似地识别新闻文章,博客等。