如何使用Blenderbot建立一个情感分析应用程序

260 阅读4分钟

将机器学习模型转化为其他人可以使用的实际应用,在大多数人工智能和机器学习教程中都没有涉及。

在这篇文章中,我们将使用Gradio和Hugging face变换器创建一个端到端的AI情感分析网络应用。

什么是情感分析?

pic-1.jpg

根据维基百科的说法:

情感分析是使用自然语言处理、文本分析、计算语言学和生物统计学来系统地识别、提取、量化和研究情感状态和主观信息。

简单地说,情感分析是人工智能分析一个句子或文本块并获得该句子或文本块背后的情感的能力。

什么是Gradio?

gradio-logo.png

Gradio是一个开源的Python库,你可以用它来为你的ML模型、任何API或任何任意函数快速创建和定制易于使用的UI组件,只需几行代码。

Gradio使你非常容易建立图形用户界面和部署机器学习模型。

什么是Hugging Face?

Hugging Face是一个库,为机器学习工程师提供预训练和开源的自然语言处理模型和数据集。

它是一个开源的机器学习社区,你可以下载预训练的机器学习模型,并在你自己的项目中使用它们。

建立我们项目的时间

前提条件

这里是项目的GitHub仓库

安装依赖项

在这里,我们将安装构建情感分析应用程序所需的库。

如何安装变换器

在这里,我们要安装Transformers库。这个库将使我们能够访问拥抱脸部的API:

#In a jupyter notebook
!pip install transformers

#In terminal
pip install transformers

如何安装PyTorch

我们将安装PyTorch深度学习库。访问PyTorch网站并安装你的专业版本:

pytorch-install.jpg

下面是我安装的PyTorch的版本:

#install in jupyter notebook
!pip3 install torch==1.9.1+cu111 torchvision==0.10.1+cu111 torchaudio===0.9.1 -f https://download.pytorch.org/whl/torch_stable.html

#Install in Terminal
pip3 install torch==1.9.1+cu111 torchvision==0.10.1+cu111 torchaudio===0.9.1 -f https://download.pytorch.org/whl/torch_stable.html

导入和设置管道

在这里,我们将使用Hugging Face管道来导入和设置我们的情感分析模型

Hugging Face提供了一个自动管道,帮助处理诸如标记化、预处理、编码和解码等事情,让你专注于模型优化等核心事情。

#setting up hugging face pipeline
from transformers import pipeline
classifier = pipeline("sentiment-analysis")

上面我们导入并实例化了管道对象,然后我们把句子分析模型作为参数传给了它。

如何定义Gradio函数

我们将定义一个Gadio函数,它将帮助我们为我们的网络应用提供情感分析功能。

如果你读过我过去写的关于使用Gradio为机器学习模型构建图形用户界面(GUI)的文章,你会知道Gradio允许你为模型构建图形组件,它们通过函数提供模型的预测功能。

#model function for gradio

def func(utterance):
  return classifier(utterance)

上面我们创建了一个名为func 的函数,并添加了utterance(也就是要被模型分析为情感的词)作为我们函数的参数。然后,我们让我们的函数返回先前传递的语料的情感分析,这将使我们进入下一步。

如何建立我们的Gradio界面

在这里,我们将创建我们的Gradio网络应用,为其添加图形组件,然后我们将启动该应用。

#getting gradio library
import gradio as gr
descriptions = "This is an AI sentiment analyzer which checks and gets the emotions in a particular utterance. Just put in a sentence and you'll get the probable emotions behind that sentence"

app = gr.Interface(fn=func, inputs="text", outputs="text", title="Sentiment Analayser", description=descriptions)
app.launch()

上面我们导入了Gradio库,然后我们添加了我们项目的描述,这将被传递给我们的网络应用。

然后我们创建了一个Gradio接口实例,在那里我们将提供关于我们的网络应用的细节。我们将模型的功能传入fn 参数,然后我们提供了输入的类型。

Gradio允许你创建你所选择的任何形式的输入,无论是文本、无线电、复选框、数字,等等。但在这里,我们将使用我们的输入为文本。

接下来,我们提供了输出格式,就像Gradio允许你挑选你的输入格式一样(即文本、数字、复选框等等)。它也允许你挑选你的输出格式。

在这种情况下,我们也要使用文本。在传递了输出参数后,我们给我们的网络应用程序一个标题。

最后,我们启动该应用程序:

Screenshot (36).png

现在你可以使用你的新的情感分析工具了!

谢谢你的阅读。

重要资源