第1章 字符串操作

自然语言处理(Natural Language Processing,NLP)关注的是自然语言与计算机之间的交互。它是人工智能(Artificial Intelligence,AI)和计算语言学的主要分支之一。它提供了计算机和人类之间的无缝交互并使得计算机能够在机器学习的帮助下理解人类语言。在编程语言(例如C、C++、Java、Python等)里用于表示一个文件或文档内容的基础数据类型被称为字符串。在本章中,我们将探索各种可以在字符串上执行的操作,这些操作将有助于完成各种NLP任务。

本章将包含以下主题:

  • 文本切分。
  • 文本标准化。
  • 替换和校正标识符。
  • 在文本上应用Zipf定律。
  • 使用编辑距离算法执行相似性度量。
  • 使用Jaccard系数执行相似性度量。
  • 使用Smith Waterman算法执行相似性度量。

切分可以认为是将文本分割成更小的并被称作标识符的模块的过程,它被认为是NLP的一个重要步骤。

当安装好NLTK包并且Python的交互式开发环境(IDLE)也运行起来时,我们就可以将文本或者段落切分成独立的语句。为了实现切分,我们可以导入语句切分函数,该函数的参数即为需要被切分的文本。sent_tokenize函数使用了NLTK包的一个叫作PunktSentenceTokenizer类的实例。基于那些可以标记句子开始和结束的字母和标点符号,NLTK中的这个实例已经被训练用于对不同的欧洲语言执行切分。

现在,让我们来看看一段给定的文本是如何被切分为独立的句子的:

>>> import nltk >>> text=" Welcome readers. I hope you find it interesting. Please ...

Get 精通Python自然语言处理 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.