Python自然语言处理只需要5行代码

本文涉及的产品
NLP 自学习平台,3个模型定制额度 1个月
NLP自然语言处理_高级版,每接口累计50万次
NLP自然语言处理_基础版,每接口每天50万次
简介: Python自然语言处理只需要5行代码

一、前言

人工智能是Python语言的一大应用热门,而自然语言处理又是人工智能的一大方向。 自然语言处理( natural language processing )简称NLP,是研究人同计算机之间用自然语言通信的一种方法。我们都知道,计算机本质上只认识0和1,但是通过编程语言我们可以使用编程语言同计算机交流。这实际上就是程序员同计算机之间的通信,而我们日常生活中使用的是自然语言,是一种带有情感的语言。那么要怎么使计算机理解这种带有情感的语言呢?这就是自然语言处理研究的内容了。

语言的情绪识别是自然语言处理的一种操作,如果要我们从0开始实现情绪识别是比较繁琐的。首先我们需要准备好足够的数据,为了让计算机更好的理解,我们还需要对数据进行预处理,之后需要训练数据,有了训练数据我们才能开始情绪识别。识别的准确率在于数据的相关性和数据量,数据相关性越高,数据量越大,识别的准确率就越高。

然而,我们使用paddlehub可以很快的实现情绪识别,我们先看看如何安装。

二、安装paddlehub

paddlehub是百度飞桨PaddlePaddle中的一个模型库,使用paddlepaddle可以很快的实现多种多样的操作,其中就有我们今天要说到的文字情绪识别,而且代码非常简单。首先我们需要安装paddlepaddle,我们进入官网 https://www.paddlepaddle.org.cn/install/quick ,进入官网后可以看到如下界面:

在这里插入图片描述

我们可以根据自己Python版本,计算机系统等选择安装方式。关于paddlepaddle支持版本等信息可以在官网中查看,这里就不赘述了。我使用的是Python3.7,这里直接使用pip安装,我们在控制台执行下列语句

python -m pip install paddlepaddle -i https://mirror.baidu.com/pypi/simple

然后在控制台查看是否安装成功。先输入Python,然后执行import paddle.fluid,再执行 paddle.fluid.install_check.run_check()如下:

C:\Users\zaxwz>python
Python 3.7.6 (tags/v3.7.6:43364a7ae0, Dec 19 2019, 00:42:30) [MSC v.1916 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> import paddle.fluid
>>> paddle.fluid.install_check.run_check()

如果显示Your Paddle is installed successfully! Let's start deep Learning with Paddle now就表示安装成功了。另外我们还需要安装paddlehub,这里同样是使用pip安装,执行语句如下:

pip install -i https://mirror.baidu.com/pypi/simple paddlehub

把paddlepaddle和paddlehub安装成功后我们就可以开始写代码了。

三、情绪识别

(1)情绪识别

使用paddlehub完成情绪识别的步骤如下:

  1. 导入模块
  2. 加载模型
  3. 准备句子
  4. 识别情绪

而完成上面的步骤只需要四行代码,另外我们需要输出一下识别的结果,一共就是五行代码,下面让我们看看这五行神奇的代码:

# 导入模块
import paddlehub as hub
# 加载模型
senta = hub.Module(name='senta_lstm')
# 准备句子
sentence = ['你真美']
# 情绪识别
result = senta.sentiment_classify(data={"text":sentence})
# 输出识别结果
print(result)

识别结果如下:

[{'text': '你真美', 'sentiment_label': 1, 'sentiment_key': 'positive', 'positive_probs': 0.9602, 'negative_probs': 0.0398}]

我们可以看到准备的句子是列表类型,识别的结果也是列表类型,结果中列表的元素是一个字典。在这个字典列表中,就包含了我们识别的结果。下面我们来分析一下这个字典。

(2)结果分析

结果字典中包含了4个字段,我们以表格的形式展示一下:

字段名称 字段含义 解释
text 识别的源文本 识别的源文本
sentiment_label 分类标签 1为积极,0为消极
sentiment_key 分类结果 positive为积极,negative为消极
positive_probs 积极率 情绪为积极的可能性
negative_probs 消极率 情绪为消极的可能性

上面的表格是本人编的,用词不当的地方多见谅。我们对照上述表可以分析一下我们上述程序的结果。其含义就是语句“你真美”中包含了积极的情绪。我们再多看几个例子:

import paddlehub as hub

senta = hub.Module(name='senta_lstm')

sentence = [
    '你真美',
    '你真丑',
    '我好难过',
    '我不开心',
    '这个游戏好好玩',
    '什么垃圾游戏',
]

results = senta.sentiment_classify(data={"text":sentence})

for result in results:
    print(result)

识别结果如下:

{'text': '你真美', 'sentiment_label': 1, 'sentiment_key': 'positive', 'positive_probs': 0.9602, 'negative_probs': 0.0398}
{'text': '你真丑', 'sentiment_label': 0, 'sentiment_key': 'negative', 'positive_probs': 0.0033, 'negative_probs': 0.9967}
{'text': '我好难过', 'sentiment_label': 1, 'sentiment_key': 'positive', 'positive_probs': 0.5324, 'negative_probs': 0.4676}
{'text': '我不开心', 'sentiment_label': 0, 'sentiment_key': 'negative', 'positive_probs': 0.1936, 'negative_probs': 0.8064}
{'text': '这个游戏好好玩', 'sentiment_label': 1, 'sentiment_key': 'positive', 'positive_probs': 0.9933, 'negative_probs': 0.0067}
{'text': '什么垃圾游戏', 'sentiment_label': 0, 'sentiment_key': 'negative', 'positive_probs': 0.0108, 'negative_probs': 0.9892}

上面有6个句子,大多数都成功识别了情绪,但是我好难过识别的结果为积极,很明显是错误的。总体来说,对于简单语句的识别还是比较准的。另外,如果对识别的准确率不满的话,我们还可以训练自己的数据集,详细操作可以参考项目地址 https://github.com/PaddlePaddle/models/tree/develop/PaddleNLP/sentiment_classification

目录
相关文章
|
19天前
|
人工智能 自然语言处理 语音技术
利用Python进行自然语言处理(NLP)
利用Python进行自然语言处理(NLP)
32 1
|
30天前
|
人工智能 自然语言处理 语音技术
利用Python进行自然语言处理(NLP)
利用Python进行自然语言处理(NLP)
28 3
|
3月前
|
机器学习/深度学习 人工智能 自然语言处理
【自然语言处理】python之人工智能应用篇——文本生成技术
文本生成是指使用自然语言处理技术,基于给定的上下文或主题自动生成人类可读的文本。这种技术可以应用于各种领域,如自动写作、聊天机器人、新闻生成、广告文案创作等。
106 8
|
4月前
|
机器学习/深度学习 自然语言处理 TensorFlow
使用Python实现深度学习模型:文本生成与自然语言处理
【7月更文挑战第14天】 使用Python实现深度学习模型:文本生成与自然语言处理
116 12
|
4月前
|
机器学习/深度学习 自然语言处理 机器人
使用Python实现深度学习模型:自然语言理解与问答系统
【7月更文挑战第20天】 使用Python实现深度学习模型:自然语言理解与问答系统
61 0
使用Python实现深度学习模型:自然语言理解与问答系统
|
5月前
|
机器学习/深度学习 人工智能 自然语言处理
Python自然语言处理实战:文本分类与情感分析
本文探讨了自然语言处理中的文本分类和情感分析技术,阐述了基本概念、流程,并通过Python示例展示了Scikit-learn和transformers库的应用。面对多义性理解等挑战,研究者正探索跨域适应、上下文理解和多模态融合等方法。随着深度学习的发展,这些技术将持续推动人机交互的进步。
278 1
|
5月前
|
自然语言处理 监控 数据挖掘
|
5月前
|
机器学习/深度学习 数据采集 人工智能
Python 高级实战:基于自然语言处理的情感分析系统
**摘要:** 本文介绍了基于Python的情感分析系统,涵盖了从数据准备到模型构建的全过程。首先,讲解了如何安装Python及必需的NLP库,如nltk、sklearn、pandas和matplotlib。接着,通过抓取IMDb电影评论数据并进行预处理,构建情感分析模型。文中使用了VADER库进行基本的情感分类,并展示了如何使用`LogisticRegression`构建机器学习模型以提高分析精度。最后,提到了如何将模型部署为实时Web服务。本文旨在帮助读者提升在NLP和情感分析领域的实践技能。
193 0
|
6月前
|
机器学习/深度学习 自然语言处理 PyTorch
【Python 机器学习专栏】自然语言处理中的深度学习应用
【4月更文挑战第30天】本文探讨了深度学习在自然语言处理(NLP)中的应用,包括文本分类、情感分析和机器翻译等任务。深度学习的优势在于自动特征学习、强大的表达能力和处理大规模数据的能力。常见模型如RNN、LSTM、GRU、CNN和注意力机制在NLP中发挥作用。Python的TensorFlow、PyTorch、NLTK和SpaCy等工具支持NLP研究。然而,数据稀缺、模型解释性和计算资源需求高等挑战仍待解决。随着技术进步,未来深度学习将进一步推动NLP发展,实现更智能的语言交互。
87 0
|
1月前
|
机器学习/深度学习 人工智能 自然语言处理
AI技术在自然语言处理中的应用与挑战
【10月更文挑战第3天】本文将探讨AI技术在自然语言处理(NLP)领域的应用及其面临的挑战。我们将分析NLP的基本原理,介绍AI技术如何推动NLP的发展,并讨论当前的挑战和未来的趋势。通过本文,读者将了解AI技术在NLP中的重要性,以及如何利用这些技术解决实际问题。

热门文章

最新文章