第6章 探索文本含义
到目前为止,我们主要使用TensorFlow来进行图像处理,并在某些时候将其用于文本序列处理。在本章中,我们将回顾手写字体识别并寻找文本中的含义。这通常是自然语言处理(Natural Language Processing,NLP)领域的一部分。该领域的一些应用如下所示。
- 情感分析——它从文本中提取普通的情绪类别,而无须提取句子的主题或动作。
- 实体抽取——它会提取主题,例如,从一段文本中提取人物、地点和事件。
- 关键字提取——它会从一段文本中提取关键字。
- 词关系提取——它不仅会提取实体,还会提取相关的动作以及词性。
以上仅仅涉及了NLP的表皮,NLP还包含其他技术,以及这些技术的一系列复杂的衍生问题。这看起来似乎有点学术,但从上面介绍的4种技术能实现的内容来考虑,就不会这样认为了。以下是一些应用示例。
- 阅读新闻并理解新闻的主题(主体、公司、位置等)。
- 阅读前面的新闻并理解它们所包含的情绪(快乐、悲伤、愤怒等)。
- 分析产品评论并理解用户对该产品的情绪(满意、失望等)。
- 编写一个机器人,响应自然语言形式的用户聊天命令。
与之前的机器学习探索工作相同,我们付出了相当多的努力来进行设置。在本例中,我们将花一些时间来编写脚本,以真正地实现从兴趣源头获取文本。
6.1 额外设置
为了包含文本处理所需要的库,需要进行额外的设置。如下面所示。
1.首先是Bazel。在Ubuntu上,根据官方教程安装Bazel。在macOS上,可以使用HomeBrew来安装Bazel,如下所示。
$ brew install bazel
2.然后,安装swig,它允许我们封装C/C++函数,以实现在Python中对这些函数进行调用。在Ubuntu上,可以使用以下命令安装。
$ sudo ...
Get TensorFlow机器学习 now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.