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

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

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

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

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

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

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

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

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

当出现已定义的类、函数、模块和变量时,基本补全就会启动。Python学习q-u-n七八四,七五八,二一四教程视频,工具,各类实战操作分享

此外,PyCharm 也提供智能补全等其他补全功能,但基本上都需要对已有文本进行搜索,根据位置和类型判断补全的方法。这些方法都没有配置机器学习模型。

网友评价

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

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

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

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

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

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

python自动补全库_这个库厉害了,自动补全Python代码,节省50%敲码时间相关推荐

  1. python最新技术开锁工具_这个库厉害了,自动补全 Python 代码,节省 50% 敲码时间...

    摘要:介绍一个优秀代码自动补全工具库. 近日,Reddit 上的一篇帖子引起了网友的热议.帖子作者「mlvpj」称: 「我们使用深度学习完成了一个简单的项目,可以自动进行 Python 代码补全.」 ...

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

    点击"小詹学Python",选择"星标"公众号 第一时间速享重磅干货 本文转自 机器之心,禁止二次转载 摘要:介绍一个优秀代码自动补全工具库. 近日,Reddi ...

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

    原文: https://blog.csdn.net/qq_4320... 摘要:介绍一个优秀代码自动补全工具库. 近日,Reddit 上的一篇帖子引起了网友的热议.帖子作者「mlvpj」称: 「我们使 ...

  4. python自动补全库_叼炸天的库! 自动补全 Python 代码,能节省 60% 敲码时间

    近日,Reddit 上的一篇帖子引起了网友的热议.帖子作者「mlvpj」称: 「我们使用深度学习完成了一个简单的项目,可以自动进行 Python 代码补全.」 根据介绍,该项目基于 LSTM 模型,训 ...

  5. anaconda如何卸载库_小白必看!Anaconda安装全攻略

    本文作者:戴    雯文字编辑:方    言技术总编:张馨月 爬虫俱乐部云端课程来袭! 爬虫俱乐部将于2020年8月25日至28日在线上举行Stata数据分析法律与制度专题训练营,主要是为了让学员掌握 ...

  6. python相对路径库_如何最简单、通俗地理解Python的搜索路径、相对路径、绝对路径?...

    目录: 一.笔记 二.我的自学路线 三.笔记目录 一.笔记 1) 搜索路径 ① 能导入模块的话,表示搜索路径中有这个模块文件. ② 当你导入一个模块,Python解析器对模块位置的搜索顺序是:1. 当 ...

  7. 华为python有必要学吗_【华为云技术分享】这个 Python 库有必要好好学学

    这里看一个最基本的例子,这里给到一个 User 的 Class 定义,再给到一个 data 数据,像这样: 1 class User(object):2 def __init__(self, name ...

  8. python hack库_这里有123个黑客必备的Python工具!

    123个Python渗透测试工具,当然不仅于渗透~ 如果你想参与漏洞研究.逆向工程和渗透,我建议你时候用Python语言.Python已经有很多完善可用的库,我将在这里把他们列出来. 这个清单里的工具 ...

  9. Python学习笔记011_模块_标准库_第三方库的安装

    容器 -> 数据的封装 函数 -> 语句的封装 类 -> 方法和属性的封装 模块 -> 模块就是程序 , 保存每个.py文件 # 创建了一个hello.py的文件,它的内容如下 ...

最新文章

  1. xcode_6.1_gm_seed_2.dmg 下载分享
  2. leetcode 326. 3的幂(Power of Three)
  3. SWIFT调用C语言
  4. vue安装jsencrypt_vue使用JSEncrypt实现rsa加密及挂载方法
  5. JSP中application的用法
  6. IIS DirectoryEntry
  7. 2口百兆光纤收发器工业导轨式发送机
  8. C语言中实现字符串的拼接
  9. Linux系统无法在spyder5中输入中文的解决办法
  10. 技术负责人如何带领好团队
  11. 百家姓中国心头像大全
  12. [转] 从1个月到2岁半的育儿方案,有了它宝宝都不用去上早教啦
  13. cyclic behavior during switching
  14. python编译 pyd 工具_windows平台 python生成 pyd文件
  15. 节点表征学习与节点预测和边预测
  16. Java开发常用软件列表——持续更新
  17. 梧桐新叶让我怀念父亲
  18. 银行外包996,骑驴找马要跳槽
  19. 学习笔记(1):PR快速入门-认识界面
  20. 什么是亚马逊kyc审核?

热门文章

  1. 修改hostname有几种方式?
  2. Java 文件上传组件 Apache Commons FileUpload 应用指南(二)——FileUpload如何工作?
  3. echarts label加边框_echarts 添加自定义label标签
  4. 怎么用python写名字_python中的__name__ 到底是个什么玩意?应该怎么用到它?
  5. nginx部署与小程序配置
  6. linux中文件属性mtime,linux stat (三个时间属性命令可用来列出文件的 atime、ctime 和 mtime。)...
  7. 用java写的教职工信息管理系统_基于Java的教师信息管理系统的设计与实现论文.doc...
  8. 程序员有哪些可以写博客的网站?
  9. 【APICloud系列|30】UILoading 模块demo源码的实现
  10. 如何玩转CSS的Id 和 Class选择器?