动手学pytorch-文本预处理

文本预处理

预处理通常包括四个步骤:

  1. 读入文本
  2. 分词
  3. 建立字典,将每个词映射到一个唯一的索引(index)
  4. 将文本从词的序列转换为索引的序列,方便输入模型

读入文本

在此用一部英文小说,即H. G. Well的Time Machine,作为示例,展示文本预处理的具体过程。

分词

对每个句子进行分词,也就是将一个句子划分成若干个词(token),转换为一个词的序列。

建立字典

为了方便模型处理,需要将字符串转换为数字。因此需要先构建一个字典(vocabulary),将每个词映射到一个唯一的索引编号。

这里尝试用Time Machine作为语料构建字典

将词转为索引

使用字典,可以将原文本中的句子从单词序列转换为索引序列

用现有工具进行分词

前面介绍的分词方式非常简单,它至少有以下几个缺点:

  1. 标点符号通常可以提供语义信息,但是我们的方法直接将其丢弃了
  2. 类似“shouldn't", "doesn't"这样的词会被错误地处理
  3. 类似"Mr.", "Dr."这样的词会被错误地处理

可以通过引入更复杂的规则来解决这些问题,但是事实上,有一些现有的工具可以很好地进行分词,在这里简单介绍其中的两个:spaCyNLTK

下面是一个简单的例子:

spaCy:

NLTK:

posted @   hou永胜  阅读(737)  评论(0编辑  收藏  举报
编辑推荐:
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
阅读排行:
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!
点击右上角即可分享
微信分享提示