你的位置:首页 > 信息动态 > 新闻中心
信息动态
联系我们

危机!感觉Python开发者要失业了

2021-10-19 17:38:29

2020年6月OpenAI发布了最新的GPT-3模型,它不仅能够实现一些强大的自然语言处理功能,还带来了另外一项有趣的突破–能够生成React代码。

在Python代码中,很多工程相关的代码也是使用各种第三方工具包进行完成。以数据分析为例,会在很多地方用到pandas,但是,往往繁琐的命令和复杂的语法很难记住。然而,在一些博客和网站找到对应的代码片段又需要修改一些变量和列名。

收到GPT-3的启发,开发人员考虑,是否可以把自动生成代码引入到Jupyter Notebook中,开发一款Jupyter Notebook插件,让它能够实现通过自然语言描述轻松转化成代码。

于是,本文的主角–Text2Code就应用而生了,本文就来介绍一下它的使用。

Text2Code

功能

Text2Code[1]是一款Jupyte Noteboo插件,它能够实现从英文自然语言描述到Python代码的轻松转换。

危机!感觉Python开发者要失业了

换句话说,你只需要用英文描述一下你想完成的功能,Text2Code就可以把它转化成Python代码。最后,如果你的时间不是很紧张,并且又想快速的python提高,最重要的是不怕吃苦,建议你可以价位@762459510 ,那个真的很不错,很多人进步都很快,需要你不怕吃苦哦!大家可以去添加上看一下~

例如,你给出一段英文描述:

group the df by heroes_gender and get min, max, mean and sum of episode_duration

然后,它就会在cell中生成代码片段:

df[['heroes_gender', 'episode_duration']].group_by(['heroes_gender']).agg(['min', 'max', 'mean', 'sum'])

实现

Text2Code建立在可扩展的监督模型基础上进行开发而成,它主要包含如下部分:

  • 生成/收集训练数据
  • 意图匹配:用户想要做什么?
  • 命名实体识别:识别句子中的变量(实体)
  • 填充模板:在固定模板中使用提取的实体生成代码
  • 封装Jupyter Notebook扩展

使用方法

Jupyter Notebook的安装步骤如下:

$ git clone https://github.com/deepklarity/jupyter-text2code.git$ cd jupyter-text2code$ pip install .

使用详细说明如下:

  • 打开Jupyter Notebook
  • 如果前面安装成功,那么第一次从 tensorflow_hub 下载 Universal Sentence Encoder 模型
  • 点击菜单上出现的Terminal图标(激活扩展)
  • 键入 "help "查看当前支持的命令列表

生成训练数据

为了生成训练数据,开发者模拟用户要向系统查询的内容,先用一下自己认为的格式给出一段英文描述。

危机!感觉Python开发者要失业了

找出一段英文描述中的关键词,然后用生成器去生成一些关键词,来替代实现数据集中的内容,以此来生成训练数据。

意图匹配

危机!感觉Python开发者要失业了

在生成数据后,这些数据被映射为特定意图的唯一 “intent_id”,然后使用Universal Sentence Encoder来获取用户查询的嵌入,并找到与预定义意图查询(生成数据)的余弦相似性。Universal Sentence Encoder类似于word2vec,它可以生成嵌入,但针对的是句子而不是单词。

命名实体识别

危机!感觉Python开发者要失业了

生成的数据可以用来训练一个自定义的实体识别模型,它可以检测列名、变量、库名。为此,开发人员探索了HuggingFace模型,但最终还是使用Spacy来训练自定义模型,主要是因为HuggingFace模型是基于变换器的模型,相对于Spacy来说有点重。最后,如果你的时间不是很紧张,并且又想快速的python提高,最重要的是不怕吃苦,建议你可以价位@762459510 ,那个真的很不错,很多人进步都很快,需要你不怕吃苦哦!大家可以去添加上看一下~

填充模板

危机!感觉Python开发者要失业了

只要正确识别实体,正确匹配意图,填写模板就非常容易。例如,"show 5 rows from df "查询会得到两个实体:一个是变量,一个是数字。对此,模板代码的编写很直接。