您好、欢迎来到现金彩票网!
当前位置:打鱼赢现金注册送5元 > 扣扣空间 >

所以补全速度上基本和 Pycharm 自带的工具差不多

发布时间:2019-08-17 04:59 来源:未知 编辑:admin

  2. 程序元素间的逻辑关系:程序代码的不同元素之间存在着不同的关系,例如程序变量之间的引用关系、类之间的继承关系、方法与参数之间的调用关系等等。程序本身又可以表示为多种图,例如控制流图、数据流图、调用关系图等等。aiXcoder 借助图神经网络能够对程序元素之间的多种关系进行建模,从而能够对程序元素之间的复杂关系进行分析和推理。

  aiXcoder 官方也将产品和其他代码补全工具进行了对比,包括 Kite 和 TabNine 等。

  3. 程序语言序列模型:当然,程序语言也具有与自然语言相似的一面,因此可以利用程序标识符之间的序列关系建立程序语言模型。aiXcoder 也使用了最新的深度学习语言模型对程序中的序列信息进行建模。

  换句话说,尽管代码生成的意图较为清楚,但是实现该意图的代码数据却比较稀疏,而且即便对于相同的意图,其对应的实现代码之间仍存在较大差距,因此这样的任务是非常难学习的。

  同时,代码文本本身的结构非常复杂。例如,代码的语义与代码结构(如行与行的缩进)之间存在较大的关联性,代码语义依赖于代码结构进行表达。这是预训练语言模型难以表示的特征。

  机器之心在 Pycharm 上试用了社区版/专业版,它们都是需要在线推断。不同的地方在于专业版还需要额外的内存,因为每一个 Pro 用户都需要额外的缓冲区来储存模型「学到的」用户习惯。当然,Pro 用户的缓冲区是是只有该插件能访问的。

  1. 程序的结构语义特征:程序语言是一种结构性很强的语言,程序的结构信息也体现着程序的语义。例如,抽象语法树是对代码进行解析的一种较为通用的结构,它体现了代码的语义特征,aiXcoder 便充分利用了抽象语法树,对程序员已经写下的代码的语义进行解读。

  这样一来,由于图像数据异常的稠密,而标签集又有足够清晰的边界,那么这就相当于一个标签拥有大量的数据可以学习。这样的映射关系是比较容易建立的,这也是机器学习中和图像相关的任务相对较为容易完成的原因。

  提起代码补全,有些人可能会下意识的认为这仅仅是一个普通的语言建模任务,模型只需要根据开发者之前写的代码预测之后的代码即可。因此使用最先进的预训练语言模型,再在代码数据上进行微调说不定是一种好方法。

  对于一些变量,aiXcoder 可根据变量类型提出该变量可能的操作,比如,对于下图的变量「m」,aiXcoder 提出了一个对字符串进行增加的代码:

  首先是代码文本中存在的语义抽象性问题。代码的语义(功能语义)与其字面表示之间存在更大的差距。我们无法根据字面确定代码的准确语义。例如,在代码中,只改变一个字符就有可能完全改变整行代码的功能,因此处理代码的语言并准确提取其含义相比自然语言处理任务更棘手。

  而由于自然语言处理中的文本数据相比图像数据更为稀疏,因此自然语言处理相关的任务更难取得较好的模型性能。

http://dylanbconnell.com/koukoukongjian/43.html

锟斤拷锟斤拷锟斤拷QQ微锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷微锟斤拷
关于我们|联系我们|版权声明|网站地图|
Copyright © 2002-2019 现金彩票 版权所有