当前位置: 首页 > Linux

这个图书馆很棒,自动补全Python代码,节省50%打字时间

时间:2023-04-06 20:02:25 Linux

原文:https://blog.csdn.net/qq_4320...摘要:介绍一个优秀的代码自动补全工具库。近日,Reddit上的一则帖子引起网友热议。帖子“mlvpj”的作者说:“我们用深度学习完成了一个可以自动完成Python代码的简单项目。”据介绍,该项目基于LSTM模型。训练完成后,它负责补全代码中缺失的部分。评估模型的方法是判断保存了多少击键信息——即模型建议长度为L的代码,如果与真实代码匹配,则节省L-1次打字操作。实验结果表明,大约可以节省30%-50%的时间打字成本。作者在帖子中表示,他们接下来会尝试不同的架构,提高推理性能。然而,目前的模型推理速度太慢,无法实际使用。作者已经在GitHub上开源了项目代码:链接地址:https://github.com/vpj/python_autocomplete在项目开发中,优秀的代码自动补全工具可以提高工作效率。但是最近的IDE基本都是使用search的方式补全,在某些场景下效果不是很好。最近,一些开源项目使用深度学习模型来完成代码,显示出非常有希望的结果。我们知道很多IDE都提供了自动补全的功能,那么这个工具有什么区别呢?与IDE的自动补全有什么区别项目对Python代码的自动补全与传统的IDE(如PyCharm)不同。IDE补全是基于搜索的方法,需要从已有代码中搜索。以PyCharm中的BasicCompletion方法为例。基本补全可以帮助补全可见区域的类、方法、关键字代码。使用时,PyCharm会分析补全用法并在当前位置提供可能的选择。如果您要完成空格、参数或变量声明,PyCharm将根据类别提供一系列可能的名称。当定义的类、函数、模块和变量出现时,基本完成就会启动。此外,PyCharm还提供了智能补全等其他补全功能,但基本上都是需要搜索已有的文本,根据位置和类型判断补全方式。这些方法都没有配置机器学习模型。Pycharm的自动补全介绍:https://www.jetbrains.com/hel...网友评论该项目开源后,有网友质疑作者:“我们已经有很多好用的自动补全工具了,比如,kite(一个可以在IDE上使用的插件),何苦构建机器学习模型呢?”在讨论中,有人提出一些无良的自动补全工具会悄悄上传代码到他们的服务器,(自训练的深度学习模型没有这个问题)。也有人提出没有必要使用LSTM模型,隐马尔可夫模型在处理序列数据方面也很有效。另外,有网友建议使用CuDNN来加速LSTM的推理过程。这样可以大大提高推理速度,并有可能集成到IDE中。您对使用深度学习自动完成代码有何看法?欢迎朋友们留言评论。如果有帮助,请点赞+转发分享。欢迎大家关注米公公的公众号:米公公的技术之路