第2章 Python文本分析技巧

上一章提到,Python是一门易用且强大的编程语言,所以本书将其作为示例语言使用,同时也提供了一套基础的Python文本分析的教程。

为什么要介绍这些Python技巧?原因是希望读者具有Python和高中数学方面的背景知识,然而也许有很多读者从来没有编写过Python代码。对编写过Python代码的读者来说,文本分析和字符串操作所用到的知识和Web开发(例如使用Python编写的Web框架Django来构建网站)所用到的知识也是截然不同的。本章介绍的主题如下:

  • 为什么用Python来做文本分析;
  • Python文本分析技巧。

Python以字符串的形式表示文本,这些字符串对象对应的类是str。它是一种不可变序的UNICODE或字符。有一点必须仔细区分:Python 3中,所有字符串默认是UNICODE;但在Python 2中,str类限制为ASCII码,需要另外一个UNICODE类来专门处理UNICODE。

UNICODE仅仅是一种编码语言或处理文本的方式。例如,字母Z的UNICODE值是U+05A。从历史上看,Python中的许多编码类型需要开发人员自行处理,所有的底层操作都以字节为单位。事实上,从版本2到版本3的升级中,Python处理UNICODE的方式的转变在其社区内引发了很多讨论,有批评也有支持。目前,很多代码正在从Python 2迁移至Python 3,但关于UNICODE处理方式的争论一直没有停止。

字符串的底层操作是以字节为单位进行的。字节中存储的是数字,不同的数字组合起来表示不同的字符或符号。这就是UNICODE和ASCII采用不同的方式来表示字符的本质原因。因为在Python 2中,字符串被存储为字节;而在Python ...

Get 自然语言处理与计算语言学 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.