dede换网站,备案掉了网站会怎样,wordpress+本地编辑,html基础网页代码在自然语言处理#xff08;NLP#xff09;中#xff0c;数据的质量直接影响模型的表现。文本预处理的目标是清理和标准化文本数据#xff0c;使其适合机器学习或深度学习模型处理。本章介绍几种常见的文本预处理方法#xff0c;并通过 Python 代码进行示例。 2.1 文本清理…在自然语言处理NLP中数据的质量直接影响模型的表现。文本预处理的目标是清理和标准化文本数据使其适合机器学习或深度学习模型处理。本章介绍几种常见的文本预处理方法并通过 Python 代码进行示例。 2.1 文本清理
文本数据往往包含各种噪音例如 HTML 标签、特殊字符、空格、数字等。清理文本可以提高模型的准确性。
常见的清理步骤
去除 HTML 标签移除特殊字符如 #%$移除数字统一大小写通常转换为小写去除多余的空格
Python 示例
import re # 正则表达式库用于文本匹配和替换text Hello, bworld/b! Visit us at https://example.com or call 123-456-7890.# 1. 去除HTML标签
text re.sub(r.*?, , text)# 2. 去除特殊字符保留字母和空格
text re.sub(r[^a-zA-Z\s], , text)# 3. 转换为小写
text text.lower()# 4. 去除多余空格
text .join(text.split())print(text)输出
hello world visit us at httpsexamplecom or call2.2 分词Tokenization
分词是将文本拆分成单个的单词或子词是 NLP 任务的基础。
常见分词方法
按空格拆分适用于英文NLTK 分词更精准spaCy 分词高效处理大规模数据
Python 示例
import nltk # 自然语言处理库提供分词、词性标注、停用词等功能
from nltk.tokenize import word_tokenize, sent_tokenize
import spacy # 现代 NLP 库优化分词、词性标注等任务nltk.download(punkt_tab) # punkt_tab 是 NLTK 中的分词模型text Hello world! This is an NLP tutorial.# 1. 基础空格分词
tokens_space text.split()
print(空格分词:, tokens_space)# 2. 使用 NLTK 进行分词
tokens_nltk word_tokenize(text)
print(NLTK 分词:, tokens_nltk)# 3. 使用 spaCy 进行分词
nlp spacy.load(en_core_web_sm) # 加载预训练的小型英文模型
doc nlp(text)
tokens_spacy [token.text for token in doc]
print(spaCy 分词:, tokens_spacy)输出
空格分词: [Hello, world!, This, is, an, NLP, tutorial.]
NLTK 分词: [Hello, world, !, This, is, an, NLP, tutorial, .]
spaCy 分词: [Hello, world, !, This, is, an, NLP, tutorial, .]注意
空格分词简单但容易出错如 “NLP tutorial.” 仍包含标点。NLTK 和 spaCy 处理得更精准分离了标点符号。 2.3 词干提取Stemming和词形还原Lemmatization
在 NLP 任务中单词的不同形式可能具有相同的含义例如
running 和 runbetter 和 good
词干提取和词形还原可以将单词标准化从而提高模型的泛化能力。
词干提取Stemming
词干提取是基于规则的词形归一化方法会粗暴地去掉单词的后缀。
from nltk.stem import PorterStemmer, SnowballStemmer # 词干提取工具stemmer PorterStemmer() # PorterStemmer 是常用的词干提取方法
words [running, flies, easily, studies]stemmed_words [stemmer.stem(word) for word in words]
print(Porter Stemmer:, stemmed_words)输出
Porter Stemmer: [run, fli, easili, studi]缺点
flies 变成了 flieasily 变成了 easili可能导致含义丢失
词形还原Lemmatization
Lemmatization 通过查找词典将单词转换为其词根形式更加精确。
from nltk.stem import WordNetLemmatizer
import nltknltk.download(wordnet) # 下载 WordNet 语料库lemmatizer WordNetLemmatizer()
words [running, flies, easily, studies, better]lemmatized_words [lemmatizer.lemmatize(word, posv) for word in words]
print(Lemmatization:, lemmatized_words)输出
Lemmatization: [run, fly, easily, study, better]优点
flies 被正确地还原为 flystudies 被正确地还原为 studybetter 仍保持其正确形式 2.4 停用词Stopwords处理
停用词Stopwords是指在文本处理中不重要的高频词如 is, the, and可以去除以减少模型计算量。
Python 示例
from nltk import word_tokenize
from nltk.corpus import stopwords # NLTK 提供的停用词库
import nltk
nltk.download(stopwords) # 下载停用词列表text This is a simple NLP example demonstrating stopwords removal.words word_tokenize(text)filtered_words [word for word in words if word.lower() not in stopwords.words(english)]
print(去除停用词后:, filtered_words)输出
去除停用词后: [simple, NLP, example, demonstrating, stopwords, removal, .]注意
is, a, this 被去掉NLP 等关键词被保留 2.5 难点总结
分词的不同方法空格分词 vs. NLTK vs. spaCy适用于不同场景。词干提取 vs. 词形还原Stemming 可能会导致错误而 Lemmatization 更精确但需要额外的词性信息。停用词的处理某些 NLP 任务如情感分析可能需要保留停用词。 2.6 课后练习
练习 1文本清理
清理以下文本去掉 HTML 标签、特殊字符、数字并转换为小写
text Visit our bwebsite/b: https://example.com!!! Call us at 987-654-3210.练习 2使用 spaCy 进行分词
使用 spaCy 对以下文本进行分词
text Natural Language Processing is fun and useful!练习 3词形还原
使用 Lemmatization 处理以下单词
words [running, mice, better, studying]练习 4去除停用词
从以下文本中去除停用词
text This is an example sentence demonstrating stopwords removal.