学习内容:分词的原理和算法(如基于规则、基于统计)。

工具:NLTK、jieba、SpaCy。

分词插图

分词:就像是给一段长长的文字做“拆解工作”。想象一下,你有一大段话,里面包含了很多词语和句子,就像是一堆混在一起的乐高积木。分词呢,就是把这些积木(也就是词语)一个一个地挑出来,分开摆放,让它们各自独立。

比如说,有这么一句话:“我爱人工智能”,分词之后,就变成了“我 | 爱 | 人工智能”三个部分。这样,每个词语就被清晰地分开了,计算机就能更容易地理解这句话的意思了。

对于人工智能来说,分词是很重要的一个步骤。因为计算机不像我们人类,能够一眼就看出句子的结构。它们需要把句子拆分成更小的单元,也就是词语,然后再去分析这些词语之间的关系,才能理解整句话的意思。

所以,分词就像是给计算机准备“食材”,把大段的文字切割成它能“消化”的小块,让它能够更好地理解和处理语言。

分词插图1

NLTK(英文分词)

逐行分析

  1. 导入nltk库,这是进行自然语言处理的基础库。
  2. 下载punkt数据包,这是NLTK进行分词所依赖的预训练模型。
  3. 从nltk.tokenize模块中导入word_tokenize函数,这个函数是用来进行分词的。
  4. 定义一段英文文本,作为我们要进行分词处理的输入。
  5. 调用word_tokenize函数对文本进行分词,将结果存储在tokens变量中。
  6. 打印tokens变量,查看分词结果。

jieba(中文分词)

逐行分析

  1. 导入jieba库,这是进行中文分词的基础库。
  2. 定义一段中文文本,作为我们要进行分词处理的输入。
  3. 调用jieba.cut函数对文本进行分词,该函数返回一个生成器,生成器中的每个元素都是一个分词后的单词。
  4. 使用list函数将生成器转换为列表,这样我们就可以看到所有的分词结果了。
  5. 打印分词结果列表。

SpaCy(英文分词,也支持其他语言)

逐行分析:

  1. 导入spacy库,这是进行自然语言处理的另一个强大库。
  2. 加载英文语言模型,这是SpaCy进行分词和其他NLP任务所依赖的预训练模型。
  3. 定义一段英文文本,作为我们要进行分词处理的输入。
  4. 使用加载的语言模型处理文本,返回一个Doc对象。Doc对象包含了文本的很多信息,比如分词结果、词性标注等。
  5. 遍历Doc对象中的每个token,并打印出token的文本内容。token是SpaCy中的一个核心概念,它代表文本中的一个单词或标点符号。

(仅供参考)