NLP 的数据预处理步骤,一文掌握

1. 标记化和文本清理

NLP的核心是将文本分解为有意义的单元的艺术。标记化是将文本拆分为单词、短语甚至句子(标记)的过程。这是为进一步分析奠定基础的第一步。再加上文本清理,删除了不必要的字符、数字和符号,标记化确保使用原始的、可理解的语言单位。

#!pip install nltk
# Example Tokenization and Text Cleaning
text = "NLP is amazing! Let's explore its wonders."
tokens = nltk.word_tokenize(text)
cleaned_tokens = [word.lower() for word in tokens if word.isalpha()]
print(cleaned_tokens)

['nlp', 'is', 'amazing', 'let', 'explore', 'its', 'wonders']

2. 常用词删除:

并非所有单词对句子的含义都有同等的贡献。像"the"或"and"这样的常用词通常会被过滤掉,以专注于更有意义的内容。

# Example Stop Words
from nltk.corpus import stopwords
stop_words = set(stopwords.words("english"))
filtered_sentence = [word for word in cleaned_tokens if word not in stop_words]
print(filtered_sentence)

['nlp', 'amazing', 'let', 'explore', 'wonders']

3. 词干提取和词形还原

词干提取和词形还原化都是自然语言处理 (NLP) 中使用的文本规范化技术,用于将单词简化为其基本或根形式。虽然它们有着简化单词的共同目标,但它们在应用的语言知识方面却有所不同。

词干提取:简化为根形式

词干提取涉及切断单词的前缀或后缀以获得它们的词根或基本形式,称为词干。目的是将具有相似含义的单词视为相同。词干提取是一种基于规则的方法,并不总是产生有效的单词,但它的计算强度较低。

词形还原:转换为字典形式

另一方面,词形还原涉及将单词简化为基本形式或字典形式,称为引理。它考虑了句子中单词的上下文并应用形态分析。与词干化相比,词形还原会产生有效的单词,并且在语言上更具信息性。

何时使用词干提取与词形还原:

词干提取:

  • 优点: 简单且计算成本更低。
  • 缺点:可能并不总是产生有效的单词。

词形还原:

  • 优点:产生有效的单词;考虑语言上下文。
  • 缺点:比词干提取更耗费计算量。

词干提取和词形还原之间的选取:

词干提取和词形还原之间的选择取决于 NLP 任务的具体要求。如果需要一种快速直接的文本分析方法,那么词干提取可能就足够了。但是,如果语言准确性至关重要,尤其是在信息检索或问答等任务中,则通常首选词形还原。

在实践中,选择通常取决于基于 NLP 应用程序的特定特征的计算效率和语言准确性之间的权衡。

# Example Stemming, and Lemmatization 
from nltk.stem import PorterStemmer, WordNetLemmatizer

stemmer = PorterStemmer()
lemmatizer = WordNetLemmatizer()

stemmed_words = [stemmer.stem(word) for word in filtered_sentence]
lemmatized_words = [lemmatizer.lemmatize(word) for word in filtered_sentence]

print(stemmed_words)
print(lemmatized_words)

['nlp', 'amaz', 'let', 'explor', 'wonder']
['nlp', 'amazing', 'let', 'explore', 'wonder']

4. 词性标签:

词性标记(POS 标记)是一项自然语言处理任务,其目标是为给定文本中的每个单词分配一个语法类别(例如名词、动词、形容词等)。这样可以更深入地了解句子中每个单词的结构和功能。

Penn Treebank POS 标签集是一种广泛使用的标准,用于在英语文本中表示这些词性标签。

# Example Part-of-Speech Tagging 
from nltk import pos_tag
pos_tags = nltk.pos_tag(filtered_sentence)
print(pos_tags)

[('nlp', 'RB'), ('amazing', 'JJ'), ('let', 'NN'), ('explore', 'NN'), ('wonders', 'NNS')]

5. 命名实体识别 (NER):

NER 通过识别和分类给定文本中的名称、位置、组织等实体,将语言理解提升到一个新的水平。这对于从非结构化数据中提取有意义的信息至关重要。

# Example Named Entity Recognition (NER) 
from nltk import ne_chunk

ner_tags = ne_chunk(pos_tags)
print(ner_tags)

(S nlp/RB amazing/JJ let/NN explore/NN wonders/NNS)

NLP预处理步骤的实际应用

社交媒体情绪分析中的标记化和文本清理

在社交媒体情绪分析中,标记化和文本清理至关重要。例如,在分析推文以衡量公众对新产品的情绪时,标记化有助于将推文分解为单个单词或短语。文本清理用于消除社交媒体文本中常见的主题标签、提及和 URL 等噪音。

import re
def clean_tweet(tweet):
    tweet = re.sub(r'@\w+', '', tweet)  # Remove mentions
    tweet = re.sub(r'#\w+', '', tweet)  # Remove hashtags
    tweet = re.sub(r'http\S+', '', tweet)  # Remove URLs
    return tweet

tweet = "Loving the new #iPhone! Best phone ever! @Apple"
clean_tweet(tweet)

'Loving the new ! Best phone ever! '

搜索引擎中的常用词删除

搜索引擎广泛使用常用词删除。在处理搜索查询时,通常会删除"the"、"is"和"in"等常用词,以专注于更有可能与搜索结果相关的关键字。

文本分类中的词干提取和词形还原

新闻机构和内容聚合器经常使用词干提取和词形还原进行文本分类。通过将单词简化为基本形式或词根形式,算法可以更轻松地将新闻文章分类为"体育"、"政治"或"娱乐"等主题。

语音助手中的词性标记

亚马逊的Alexa或苹果的Siri等语音助手使用词性标记来改善语音识别和自然语言理解。通过确定单词的语法上下文,这些助手可以更准确地解释用户请求。

客户支持自动化中的命名实体识别 (NER)

NER广泛用于客户支持聊天机器人。通过识别和分类产品名称、位置或用户问题等实体,聊天机器人可以对客户查询提供更有效和量身定制的响应。

这些例子突出了NLP预处理步骤在各个行业中的实际意义,使抽象的概念更加具体和易于掌握。了解这些应用程序不仅可以提供背景信息,还可以激发未来项目的想法。!

相关推荐
千天夜38 分钟前
激活函数解析:神经网络背后的“驱动力”
人工智能·深度学习·神经网络
大数据面试宝典39 分钟前
用AI来写SQL:让ChatGPT成为你的数据库助手
数据库·人工智能·chatgpt
封步宇AIGC44 分钟前
量化交易系统开发-实时行情自动化交易-3.4.1.2.A股交易数据
人工智能·python·机器学习·数据挖掘
m0_523674211 小时前
技术前沿:从强化学习到Prompt Engineering,业务流程管理的创新之路
人工智能·深度学习·目标检测·机器学习·语言模型·自然语言处理·数据挖掘
HappyAcmen1 小时前
IDEA部署AI代写插件
java·人工智能·intellij-idea
噜噜噜噜鲁先森1 小时前
看懂本文,入门神经网络Neural Network
人工智能
InheritGuo2 小时前
It’s All About Your Sketch: Democratising Sketch Control in Diffusion Models
人工智能·计算机视觉·sketch
weixin_307779132 小时前
证明存在常数c, C > 0,使得在一系列特定条件下,某个特定投资时刻出现的概率与天数的对数成反比
人工智能·算法·机器学习
封步宇AIGC2 小时前
量化交易系统开发-实时行情自动化交易-3.4.1.6.A股宏观经济数据
人工智能·python·机器学习·数据挖掘
Jack黄从零学c++2 小时前
opencv(c++)图像的灰度转换
c++·人工智能·opencv