Latest posts

This is a simplified image of a computer display.  It also includes the following text: Looking at Python through the eyes of a neural net.

从神经网络的角度看 Python

JetBrains Python 整行代码补全插件现已推出公测版。 我们想谈谈一些用于创建插件的技术和算法,并分享我们收集的有关 Python 编程的统计数据。 什么是“整行代码补全”? 代码补全的作用是向用户建议下一个键入的单词。 如果您对代码补全还不熟悉,可以阅读我们的系列介绍文章(一、二、三、四)。 整行代码补全通过建议更大的代码段来扩展服务。 它还可以为您填写方法调用形参或编写错误消息文本。 在用户体验方面,它类似于普通的代码补全,并使用相同的弹出窗口呈现结果: 但是,这种扩展补全形式背后是截然不同的技术。 标准代码补全使用静态分析确定从当前位置可见的类、方法、字段变量和关键字,然后应用机器学习选择最佳推荐。 从预定集合中选择最佳条目是判别建模的形式。 整行补全则提供了由多个“单词”组成的新代码块。 编写代码看起来像是一个创造性的过程,并且计算量更大。 这是生成建模的形式。 神经网络是一种典型的生成建模工具,我们也在使用。 我们想带您进行一次整行代码补全引擎的幕后导览,并从几个有趣的方面展示它的工作原理。 今天的问题是:神经网络如何看待您的程序? 搭配编程语言的算法使用自然语言处理中的多种技术。 神经网络不