这个库厉害了,自动补全Python代码,节省50%敲码时间

近日,Reddit 上的一篇帖子引起了网友的热议。帖子作者「mlvpj」称:

「我们使用深度学习完成了一个简单的项目,可以自动进行 Python 代码补全。」

根据介绍,该项目基于 LSTM 模型,训练后,负责对代码的缺失部分进行补全。评价模型的方法是判断节省了多少的按键信息——即模型给出长度为 L 的代码建议,如果和真实的代码匹配,则节省 L - 1 个键入操作。实验结果说明,大约可以节省 30%-50% 的**时间键入成本**。

作者在帖子中表示,他们接下来会尝试不同的架构,并提高推断的表现。而现在的模型推断很慢,不能实际使用。作者已在 GitHub 开源了项目代码:

链接地址: https://github.com/vpj/python_autocomplete

在项目开发中,优秀的代码自动补全工具可以提升工作效率。然而,近来的 IDE 基本都使用搜索方法进行补全,在一些场景下效果不佳。近日,有开源项目用深度学习模型进行代码补全,显示出非常有潜力的效果。

我们知道很多 IDE 提供自动补全功能,这款工具又有什么区别呢?

和 IDE 的自动补全有什么区别

该项目对 Python 代码的自动补全与传统 IDE(如 PyCharm)等不同。IDE 补全基于检索方法,需要从已有代码中进行搜索。

以 PyCharm 中的基本补全(Basic Completion)方法为例。基本补全可帮助补全可见区域的类、方法、关键词代码。使用时,PyCharm 会分析补全使用情况,并提供当前位置可能的选择。如果是对空间、参数或变量声明进行补全,则 PyCharm 会基于类别提供一系列可能的命名。

当出现已定义的类、函数、模块和变量时,基本补全就会启动。

此外,PyCharm 也提供智能补全等其他补全功能,但基本上都需要对已有文本进行搜索,根据位置和类型判断补全的方法。这些方法都没有配置机器学习模型。大家在学python的时候肯定会遇到很多难题,以及对于新技术的追求,这里推荐一下我们的Python资源分享秋秋裙:855408893 内有安装包,学习视频资料。这里是Python学习者的聚集地,零基础,进阶,都欢迎每日分享一些学习的方法和需要注意的小细节

Pycharm 的自动补全介绍:https://www.jetbrains.com/help/pycharm/auto-completing-code.html

网友评价

项目开源后,有些网友对作者提出了质疑:

「我们已经有很多很好用的自动补全工具了,比如 kite(一个可以在 IDE 上使用的插件),为什么还要费心搞个机器学习模型?」

在讨论中,有人提出,一些无良的自动补全工具会悄悄上传代码到他们的服务器中,(而自行训练的深度学习模型不存在这个问题)。

也有人提出,其实不一定要用 LSTM 模型,隐马尔科夫模型在处理序列数据上效果也很好。

此外,也有网友建议使用 CuDNN 加速 LSTM 的推断过程。这样能大大提升推断速度,集成到 IDE 中也就有了可能。

对于使用深度学习自动补全代码,你有什么想法呢?

原文地址:https://blog.51cto.com/14445003/2419993

时间: 2024-10-05 07:25:35

这个库厉害了,自动补全Python代码,节省50%敲码时间的相关文章

Linux Vim中自动补全Python插件:Pydiction

Pydiction 可以是我们使用Tab键自动补全Python代码在Vim,是一款非常不错的插件. Pydiction不需要安装,所有没有任何依赖包问题,Pydiction主要包含三个文件. python_pydiction.vim  -- Vim plugin that autocompletes Python code. complete-dict         -- Dictionary file of Python keywords, modules, etc. pydiction.p

仿百度自动补全搜索框效果(*附有源码下载)

页面效果及代码,(源码在下面的下载链接) <html> <head> <title></title> <link rel="stylesheet" type="text/css" href="css/semantic.css"> <script type="text/javascript" src="jquery-autocomplete/jquery

vs code使用tab自动补全html代码

使用tab键完成自动补全,提高开发速度. 第一步 下载emmet插件 第二步 打开设置文件setting.json 第三步 完成对seting.json的配置 // 启用后,按 TAB 键时,将展开 Emmet 缩写. "emmet.triggerExpansionOnTab": true, // 添加需要补全的文档格式 "emmet.syntaxProfiles": { "javascript": "jsx", "

安卓代码自动补全及代码自动提示的设置方法

设置代码提示 1.左上角点击File选项,找到Settings 2.点击Settings后,找到Editor 3.点击Editor后,找到General,点击General,找到Code  Completion 从图中我们可以看到Case sensitive completion 里面有三个选择项None,All,First letter All:选择这个的话,意思就是要和你输入的字符进行全匹配,能全匹配起来的字符才会显示在提示列表中,如下图,其实就相当于精确搜索: None:选择这项的话,意思

Ubuntu 16.04.2 LTS 安装python vim自动补全工具pydiction

Pydiction 可以是我们使用Tab键自动补全Python代码在Vim,是一款非常不错的插件. 下载Pydiction mkdir ~/.vim mkidr ~/.vim/tools cd ~/.vim/tools #可以先下载好放到Ubuntu系统中 git clone https://github.com/rkulla/pydiction.git 配置Pydiction #- UNIX/LINUX/OSX: Put python_pydiction.vim in ~/.vim/after

四十七 Python分布式爬虫打造搜索引擎Scrapy精讲—elasticsearch(搜索引擎)用Django实现搜索的自动补全功能

elasticsearch(搜索引擎)提供了自动补全接口 官方说明:https://www.elastic.co/guide/en/elasticsearch/reference/current/search-suggesters-completion.html 1.创建搜索自动补全字段suggest 自动补全需要用到一个字段名称为suggest类型为Completion类型的一个字段 所以我们需要用将前面的elasticsearch-dsl操作elasticsearch(搜索引擎)增加sugg

linux下Tab及shell 补全python

Python自动补全 Python自动补全有vim编辑下和python交互模式下,下面分别介绍如何在这2种情况下实现Tab键自动补全. 一.vim python自动补全插件:pydiction 可以实现下面python代码的自动补全: 简单python关键词补全    python 函数补全带括号    python 模块补全    python 模块内函数,变量补全    from module import sub-module 补全 想为vim启动自动补全需要下载插件,地址如下:http:

mac-Anaconda中spyder设置自动补全功能

问题:Spyder中有时按tab不会自动补全 python——>Preferences: 设置以下两项: 原文地址:https://www.cnblogs.com/jpr-ok/p/12443979.html

linux下git自动补全命令

自动补全命令需要用到源码包: branch master tags 选择相应的版本克隆岛本地 #git clone https://github.com/git/git 也可以直接下载zip的源码包 cp /contrib/completion/git-completion.bash   ~/.git-completion.bash source ~/.git-completion.bash 或者将source写入~/.bashrc 自动加载