百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 编程字典 > 正文

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

toyiye 2024-06-21 12:43 10 浏览 0 评论

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

相关推荐

为何越来越多的编程语言使用JSON(为什么编程)

JSON是JavascriptObjectNotation的缩写,意思是Javascript对象表示法,是一种易于人类阅读和对编程友好的文本数据传递方法,是JavaScript语言规范定义的一个子...

何时在数据库中使用 JSON(数据库用json格式存储)

在本文中,您将了解何时应考虑将JSON数据类型添加到表中以及何时应避免使用它们。每天?分享?最新?软件?开发?,Devops,敏捷?,测试?以及?项目?管理?最新?,最热门?的?文章?,每天?花?...

MySQL 从零开始:05 数据类型(mysql数据类型有哪些,并举例)

前面的讲解中已经接触到了表的创建,表的创建是对字段的声明,比如:上述语句声明了字段的名称、类型、所占空间、默认值和是否可以为空等信息。其中的int、varchar、char和decimal都...

JSON对象花样进阶(json格式对象)

一、引言在现代Web开发中,JSON(JavaScriptObjectNotation)已经成为数据交换的标准格式。无论是从前端向后端发送数据,还是从后端接收数据,JSON都是不可或缺的一部分。...

深入理解 JSON 和 Form-data(json和formdata提交区别)

在讨论现代网络开发与API设计的语境下,理解客户端和服务器间如何有效且可靠地交换数据变得尤为关键。这里,特别值得关注的是两种主流数据格式:...

JSON 语法(json 语法 priority)

JSON语法是JavaScript语法的子集。JSON语法规则JSON语法是JavaScript对象表示法语法的子集。数据在名称/值对中数据由逗号分隔花括号保存对象方括号保存数组JS...

JSON语法详解(json的语法规则)

JSON语法规则JSON语法是JavaScript对象表示法语法的子集。数据在名称/值对中数据由逗号分隔大括号保存对象中括号保存数组注意:json的key是字符串,且必须是双引号,不能是单引号...

MySQL JSON数据类型操作(mysql的json)

概述mysql自5.7.8版本开始,就支持了json结构的数据存储和查询,这表明了mysql也在不断的学习和增加nosql数据库的有点。但mysql毕竟是关系型数据库,在处理json这种非结构化的数据...

JSON的数据模式(json数据格式示例)

像XML模式一样,JSON数据格式也有Schema,这是一个基于JSON格式的规范。JSON模式也以JSON格式编写。它用于验证JSON数据。JSON模式示例以下代码显示了基本的JSON模式。{"...

前端学习——JSON格式详解(后端json格式)

JSON(JavaScriptObjectNotation)是一种轻量级的数据交换格式。易于人阅读和编写。同时也易于机器解析和生成。它基于JavaScriptProgrammingLa...

什么是 JSON:详解 JSON 及其优势(什么叫json)

现在程序员还有谁不知道JSON吗?无论对于前端还是后端,JSON都是一种常见的数据格式。那么JSON到底是什么呢?JSON的定义...

PostgreSQL JSON 类型:处理结构化数据

PostgreSQL提供JSON类型,以存储结构化数据。JSON是一种开放的数据格式,可用于存储各种类型的值。什么是JSON类型?JSON类型表示JSON(JavaScriptO...

JavaScript:JSON、三种包装类(javascript 包)

JOSN:我们希望可以将一个对象在不同的语言中进行传递,以达到通信的目的,最佳方式就是将一个对象转换为字符串的形式JSON(JavaScriptObjectNotation)-JS的对象表示法...

Python数据分析 只要1分钟 教你玩转JSON 全程干货

Json简介:Json,全名JavaScriptObjectNotation,JSON(JavaScriptObjectNotation(记号、标记))是一种轻量级的数据交换格式。它基于J...

比较一下JSON与XML两种数据格式?(json和xml哪个好)

JSON(JavaScriptObjectNotation)和XML(eXtensibleMarkupLanguage)是在日常开发中比较常用的两种数据格式,它们主要的作用就是用来进行数据的传...

取消回复欢迎 发表评论:

请填写验证码