您是否曾经写过一段文字(电子邮件、信息等),并且您觉得您的语气似乎过于随意,您的信息可能会被误解,您想改变您的文字语气但不知道怎么做?

随着越来越多的人工智能进入世界,越来越多的情商必须进入领导层。 -阿米特·雷

在本文中,我们将构建一个神经网络驱动的人工智能应用程序,使您能够将文本的基调从休闲到正式正式到休闲活跃-to-Passive,Passive-to-Active,我们还将在 Hugging Face 空间上托管我们的应用程序。

在本文中,我们将使用开源库PyTorchStyleFormer和Gradio。

![](data:image/svg+xml,%3csvg%20xmlns=%27http://www.w3.org/2000/svg%27%20version=%271.1%27%20width=%27800%27%20height=%27452%27/%3e)Styleformer-cover.jpg

<img altu003d"Styleformer-cover.jpg" srcsetu003d"/_next/image?urlu003dhttps%3A%2F%2Fcdn.hackernoon.com%2Fimages%2Fckyxqbfyx-006-x-0-bs-67-gfa- 6-y-6-v.jpg&wu003d828&qu003d75 1x, /_next/image?urlu003dhttps%3A%2F%2Fcdn.hackernoon.com%2Fimages%2Fckyxqbfyx-006-x-0-bs-67-gfa -6-y-6-v.jpg&wu003d1920&qu003d75 2x" srcu003d"/_next/image?urlu003dhttps%3A%2F%2Fcdn.hackernoon.com%2Fimages%2Fckyxqbfyx-006-x-0-bs -67-gfa-6-y-6-v.jpg&wu003d1920&qu003d75" 解码u003d"async" data-nimgu003d"intrinsic" styleu003d"position:absolute;top:0;left:0;bottom:0;右:0;框大小:边框框;填充:0;边框:无;边距:自动;显示:块;宽度:0;高度:0;最小宽度:100%;最大宽度:100%;最小高度:100%;最大高度:100%;对象拟合:包含“类u003d“图像”加载u003d“懒惰”>

Styleformer-cover.jpg

什么是 StyleFormer

StyleFormer 在我们上面的 3 个项目中相对不为人知,我觉得如果我们能清楚地了解 StyleFormer 的含义,那将是有益的。

StyleFormer 是一个神经语言风格迁移框架,可以在正式/休闲、主动/被动等细粒度语言风格之间平滑地传输自然语言文本。它由Prithiviraj Damodaran创建。

项目工作流程

先决条件

为了有效地跟进这篇文章:

  • 您必须安装Python

  • 已安装IDE或Jupyter Notebook

  • 具备基本的 Python 知识。

如果在教程中的任何时候,您可以随时参考:

  • 代码库

  • 托管应用程序

安装依赖

安装Gradio

pip install gradio

在 jupyter 单元格中:

!pip install gradio

安装 StyleFormer

pip install git+https://github.com/PrithivirajDamodaran/Styleformer.git

在 Jupyter 细胞中:

!pip install git+https://github.com/PrithivirajDamodaran/Styleformer.git

安装 Pytorch

要安装 Pytorch,您必须安装专用版本,在下面的照片中您会找到我的个性化版本,请随意使用适合您系统要求的版本。

要安装您的 PyTorch 版本,请访问PyTorch 网站并安装您的专用版本。

![](data:image/svg+xml,%3csvg%20xmlns=%27http://www.w3.org/2000/svg%27%20version=%271.1%27%20width=%27800%27%20height=%27600%27/%3e)Pytorch-install.png

<img altu003d"Pytorch-install.png" srcsetu003d"/_next/image?urlu003dhttps%3A%2F%2Fcdn.hackernoon.com%2Fimages%2Fckyxqbfyz-006-y-0-bs-6-dob- 4-ch-7-y.jpg&wu003d828&qu003d75 1x, /_next/image?urlu003dhttps%3A%2F%2Fcdn.hackernoon.com%2Fimages%2Fckyxqbfyz-006-y-0-bs-6-dob -4-ch-7-y.jpg&wu003d1920&qu003d75 2x" srcu003d"/_next/image?urlu003dhttps%3A%2F%2Fcdn.hackernoon.com%2Fimages%2Fckyxqbfyz-006-y-0-bs -6-dob-4-ch-7-y.jpg&wu003d1920&qu003d75" 解码u003d"async" data-nimgu003d"intrinsic" styleu003d"position:absolute;top:0;left:0;bottom:0;右:0;框大小:边框框;填充:0;边框:无;边距:自动;显示:块;宽度:0;高度:0;最小宽度:100%;最大宽度:100%;最小高度:100%;最大高度:100%;对象拟合:包含“类u003d“图像”加载u003d“懒惰”>

Pytorch-install.png

导入依赖

在这里,我们将导入我们安装的依赖项。

#Importingdependancies
from styleformer import Styleformer
import gradio as gr
import torch
import warnings
warnings.filterwarnings("ignore")

上面我们导入了依赖库并告诉 python 忽略最后一行中的所有警告。

套种

def set_seed(seed):
  torch.manual_seed(seed)
  if torch.cuda.is_available():
    torch.cuda.manual_seed_all(seed)

set_seed(1234)

上面我们将火炬种子设置为 other 以实现可重复性。不幸的是,解释这超出了本文的范围,但如果您想了解有关此功能的更多信息,请查看PyTorch 文档

下载和实例化风格转移模型

#Casual-Formal
sf_0 = Styleformer(style=0)

#Formal-Casual
sf_1 = Styleformer(style=1)

#Active-Passive
sf_2 = Styleformer(style=2)

#Passive-Active
sf_3 = Styleformer(style=3)

上面我们安装并实例化了所有将构成我们应用程序功能的模型。

注意: 对于样式参数,您将 0 用于休闲到正式模型,1 用于正式到休闲模型,2 用于主动到被动模型,3 用于被动到主动模型。

建立梯度函数

复制

复制

def func(text, tone):
  if tone=="Casual-Formal":
    return sf_0.transfer(text)
  elif tone=="Formal-Casual":
    return sf_1.transfer(text)
  elif tone=="Active-Passive":
    return sf_2.transfer(text)
  eliif tone=="Passive-Active":
    return sf_3.transfer(text)
  else:
    return "No available Transfers"

上面我们创建了一个函数,它将作为一个工作流来告诉 gradio 我们计划如何处理我们的输入文本,我们创建了条件语句,这将使 gradio 能够有效且正确地将文本输入发送到用户请求的模型。

初始化 Gradio 应用程序

复制

复制

#Initalizing Gradio App
app_description = "This model transforms the tone of the text, from formal to informal, from Active to Passive. Choose your option below."
app_title = "Tone Transfer"

app = gr.Interface(func,["text",gr.inputs.Radio(["Casual-Formal", "Formal-Casual", "Active-Passive","Passive-Active"])],"text",description=app_description, title=app_title)

app.launch()

上面我们写下了我们的应用程序的描述和标题。稍后我们会将变量传递到我们的应用程序接口中。

对于应用程序界面,我们传递了我们的包装函数,我们的输入 UI 组件由一个文本框组成,该文本框将接收用户的文本,然后是一个收音机,用户可以在其中选择他想要执行的样式过程或者休闲正式到正式正式到休闲等。

然后,我们传递了我们的 descriptiontitle 变量。

最后,我们启动了我们的渐变应用程序。

托管在 Hugging Face Spaces 上

Hugging Face Spaces本质上是 Hugging face 为模型提供的免费托管,它提供了容器,工程师可以免费托管、运行和共享他们的应用程序。

要在 Hugging Face Spaces 上托管,请创建一个Hugging Face帐户,然后进入HuggingFace Space 页面并单击创建空间按钮,选择gradio 作为您的选项,然后按照结果页面上的说明进行操作。

Requirements.txt 项目

为了让 Hugging Face 能够使用它们的容器构建您的应用程序,您必须提供您的应用程序所依赖的库列表,这就是您的 requirements.txt 文件所在的位置。

当您想将包含app.py文件的最终存储库推送到渐变空间时,还需要添加一个 requirements.txt 文件并放入下面列出的项目。

git+https://github.com/PrithivirajDamodaran/Styleformer.git
torch

重要链接

  • 代码库

  • 托管应用程序

尾注

人工智能工具正在迅速接管过去由人类执行的大部分无聊任务,StyleFormer 就是其中之一。

Logo

Python社区为您提供最前沿的新闻资讯和知识内容

更多推荐