自然语言处理之文本预处理(一)

文本是什么?

在自然语言处理问题中,我们可以讲文本当成是下述成分组成的序列(sequence):

  • 词语
  • 句子
  • 段落
  • 文章

本文主要以 词语 来举例。

token

什么是 token 呢?

  • 可以将 token 认为是语义处理过程中的一个 有意义的单元
  • token 可以是 , , 段落 等等。

tokenization

自然语言处理的第一步通常是 tokenization,即将 输入的文本(sequence)转换为 token 的过程

由于中文的表示与英文不同,英文中通常有空格来标识每一个单词,中文没有明确的标识,所以中文的分词比较复杂;

通常使用而言,一些常用的分词库已经可以满足大部分需求。

eg. 使用 jieba 将一段文本分词。

import jieba

seg_list = jieba.cut("我来到北京清华大学", cut_all=False)
print("Default Mode: " + "/ ".join(seg_list))

'''
我/ 来到/ 北京/ 清华大学
'''

上述例子中的过程就是 tokenization 过程。

tokenization normalization

仅关注中文处理可以仅看概念

英文预处理过程中的第二步叫做 tokenization normalization

这个过程是指 将相同含义但是不同形式的词转换成同一个词(token

eg.

  • wolf, wolves -> wolf
  • talk, talks -> talk

通常有两种方式来实现这个过程:

  • 词干提取(stemming)
  • 词性还原(lemmatization)

因为我想主要集中在中文预处理,所以这两个过程就不叙述了,可以通过 nltk.stem.PorterStemmernltk.stem.WordNetLemmatizer 来实现这两种方式。

标点符号

在将文本转化为 token 的过程中,标点符号 仅对阅读有用,而对 语义理解 没有太大作用。

eg.

  • 我来到北京清华大学
  • 我来到,北京清华大学。

上述两个句子的语义完全相同,而在 tokenization 过程中却得到两种不同的结果。所以在文本预处理过程中需要 去除标点符号

停用词

和标点符号相似,在文本预处理过程中还需要去除之如“着”,“和”等一些 对语义理解帮助不大 的词,这些词就被称为 停用词

常用 中文停用词下载地址 见文章末尾。

英文停用词可以直接用 nltk 提供的

import nltk
nltk.download('stopwords')
from nltk.corpus import stopwords

可以在停用词中加入标点符号,这样就可以统一两个过程。

总结

本文主要将了文本预处理中的几个概念:

  • 文本的组成
  • tokenization
  • 标点符号和停用词

下一篇文章将继续讲解 文本向量化表示的方式(传统机器学习)

  • BoW
  • BoW + n-gram
  • tf-idf
  • word2vec

如何系统的去学习大模型LLM ?

大模型时代,火爆出圈的LLM大模型让程序员们开始重新评估自己的本领。 “AI会取代那些行业?”“谁的饭碗又将不保了?”等问题热议不断。

不如成为「掌握AI工具的技术人」,毕竟AI时代,谁先尝试,谁就能占得先机!

但是LLM相关的内容很多,现在网上的老课程老教材关于LLM又太少。所以现在小白入门就只能靠自学,学习成本和门槛很高

针对所有自学遇到困难的同学们,我帮大家系统梳理大模型学习脉络,将这份 LLM大模型资料 分享出来:包括LLM大模型书籍、640套大模型行业报告、LLM大模型学习视频、LLM大模型学习路线、开源大模型学习教程等, 😝有需要的小伙伴,可以 扫描下方二维码领取🆓↓↓↓

👉[CSDN大礼包🎁:全网最全《LLM大模型入门+进阶学习资源包》免费分享(安全链接,放心点击)]()👈

  • 10
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值