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


原文:https://blog.csdn.net/qq_4320...html

摘要:介绍一个优秀代码自动补全工具库。python

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

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

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

做者在帖子中表示,他们接下来会尝试不一样的架构,并提升推断的表现。而如今的模型推断很慢,不能实际使用。做者已在 GitHub 开源了项目代码:服务器

连接地址: https://github.com/vpj/python_autocomplete架构

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

咱们知道不少 IDE 提供自动补全功能,这款工具又有什么区别呢? 机器学习

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

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

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

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

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

Pycharm 的自动补全介绍:https://www.jetbrains.com/hel...

网友评价

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

「咱们已经有不少很好用的自动补全工具了,好比 kite(一个能够在 IDE 上使用的插件),为何还要费心搞个机器学习模型?」

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

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

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

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

欢迎小伙伴留言评论。若有帮助,欢迎点赞+转发分享。

欢迎你们关注民工哥的公众号:民工哥技术之路
image.png

相关文章
相关标签/搜索