文本预处理简介

使用 PyTorch 的文本深度学习

Shubham Jain

Data Scientist

学习内容概览

  • 文本分类
  • 文本生成
  • 编码
  • 文本深度学习模型
  • Transformer 架构
  • 模型防护

用例:

  • 情感分析
  • 文本摘要
  • 机器翻译

情感分析

使用 PyTorch 的文本深度学习

需掌握的知识

先修课程:Intermediate Deep Learning with PyTorch

  • 使用 PyTorch 的深度学习模型
  • 训练与评估循环
  • 卷积神经网络(CNN)与循环神经网络(RNN)
使用 PyTorch 的文本深度学习

文本处理流程

 

 

Pytorch 处理流程

使用 PyTorch 的文本深度学习

文本处理流程

 

 

Pytorch 处理流程

 

  • 清洗并准备文本
使用 PyTorch 的文本深度学习

PyTorch 与 NLTK

PyTorch 标志

NLTK 标志

  • 自然语言工具包
    • 将原始文本转为处理后文本
使用 PyTorch 的文本深度学习

预处理技术

  • 分词
  • 停用词去除
  • 词干提取
  • 低频词去除
使用 PyTorch 的文本深度学习

分词

  • 从文本中提取"词元"(tokens)或单词
  • 使用 torchtext 分词
from torchtext.data.utils import get_tokenizer

tokenizer = get_tokenizer("basic_english")
tokens = tokenizer("I am reading a book now. I love to read books!") print(tokens)
["I", "am", "reading", "a", "book", "now", ".", "I", "love", "to", "read", 
"books", "!"]
使用 PyTorch 的文本深度学习

停用词去除

  • 去除对语义贡献不大的常见词
  • 停用词示例:"a"、"the"、"and"、"or" 等
import nltk
nltk.download('stopwords')
from nltk.corpus import stopwords

stop_words = set(stopwords.words('english'))
tokens = ["I", "am", "reading", "a", "book", "now", ".", "I", "love", "to", "read", "books", "!"] filtered_tokens = [token for token in tokens if token.lower() not in stop_words]
print(filtered_tokens)
["reading", "book", ".", "love", "read", "books", "!"]
使用 PyTorch 的文本深度学习

词干提取

  • 将词还原为基本形式
  • 例如:"running"、"runs"、"ran" → run
import nltk
from nltk.stem import PorterStemmer

stemmer = PorterStemmer()
filtered_tokens = ["reading", "book", ".", "love", "read", "books", "!"]
stemmed_tokens = [stemmer.stem(token) for token in filtered_tokens]
print(stemmed_tokens)
["read", "book", ".", "love", "read", "book", "!"]
使用 PyTorch 的文本深度学习

低频词去除

  • 去除不常见且无助于理解的词
from nltk.probability import FreqDist
stemmed_tokens= ["read", "book", ".", "love", "read", "book", "!"]  
freq_dist = FreqDist(stemmed_tokens)

threshold = 2
common_tokens = [token for token in stemmed_tokens if freq_dist[token] > threshold] print(common_tokens)
["read", "book", "read", "book"]
使用 PyTorch 的文本深度学习

预处理技术

分词、停用词去除、词干提取与低频词去除

  • 降维与特征精简
  • 更干净、更具代表性的数据集
  • 还有更多方法
使用 PyTorch 的文本深度学习

Vamos praticar!

使用 PyTorch 的文本深度学习

Preparing Video For Download...