代码推荐方法、装置、电子设备和介质制造方法及图纸

技术编号:38345623 阅读:13 留言:0更新日期:2023-08-02 09:25
本公开提出了一种代码推荐方法、装置、电子设备和介质,涉及自然语言处理等人工智能领域,方法包括获取原始代码片段的代码推荐位置上的推荐代码片段;获取原始代码片段中,位于代码推荐位置后的剩余代码片段;识别推荐代码片段和剩余代码片段中,进行代码融合操作所需的目标符号;根据目标符号对推荐代码片段和剩余代码片段进行融合,得到推荐给原始代码片段的目标推荐代码片段。本公开中,降低了目标推荐代码片段的格式与原始代码片段的格式的差异程度,实现了目标推荐代码片段与原始代码片段的格式的一致性,提高了用户采纳目标推荐代码片段的可能性,优化了用户的使用体验。优化了用户的使用体验。优化了用户的使用体验。

【技术实现步骤摘要】
代码推荐方法、装置、电子设备和介质


[0001]本公开涉及代码推荐领域,尤其涉及自然语言处理等人工智能领域。

技术介绍

[0002]在进行代码编辑的过程中,当编辑操作满足了预设的代码推荐触发条件时,相关技术中的代码推荐工具会为用户进行代码的推荐,其中,代码推荐工具为用户推荐的代码的显示位置可能为代码的行中位置。
[0003]在该场景下,为用户推荐的代码与用户编辑的代码之间可能存在格式上的差异,进而导致用户体验感欠佳。

技术实现思路

[0004]本公开提出了一种代码推荐方法、装置、电子设备和介质。
[0005]根据本公开的第一方面,提出了一种代码推荐方法,方法包括:获取原始代码片段的代码推荐位置上的推荐代码片段,其中,所述代码推荐位置为所述原始代码片段中触发代码推荐需求的行中位置;获取所述原始代码片段中,位于所述代码推荐位置后的剩余代码片段;识别所述推荐代码片段和所述剩余代码片段中,进行代码融合操作所需的目标符号;根据所述目标符号对所述推荐代码片段和所述剩余代码片段进行融合,得到推荐给所述原始代码片段的目标推荐代码片段。
[0006]根据本公开的第二方面,提出了一种服务需求的推荐装置,装置包括:第一获取模块,用于获取原始代码片段的代码推荐位置上的推荐代码片段,其中,所述代码推荐位置为所述原始代码片段中触发代码推荐需求的行中位置;第二获取模块,用于获取所述原始代码片段中,位于所述代码推荐位置后的剩余代码片段;识别模块,用于识别所述推荐代码片段和所述剩余代码片段中,进行代码融合操作所需的目标符号;融合模块,用于根据所述目标符号对所述推荐代码片段和所述剩余代码片段进行融合,得到推荐给所述原始代码片段的目标推荐代码片段。
[0007]根据本公开的第三方面,提出了一种电子设备,包括:至少一个处理器;以及与所述至少一个处理器通信连接的存储器;其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行上述第一方面所述的代码推荐方法。
[0008]根据本公开的第四方面,提出了一种存储有计算机指令的非瞬时计算机可读存储介质,其中,所述计算机指令用于使所述计算机执行上述第一方面所述的代码推荐方法。
[0009]根据本公开的第五方面,提出了一种计算机程序产品,包括计算机程序,所述计算机程序在被处理器执行时实现上述第一方面所述的代码推荐方法。
[0010]应当理解,本部分所描述的内容并非旨在标识本公开的实施例的关键或重要特征,也不用于限制本公开的范围。本公开的其它特征将通过以下的说明书而变得容易理解。
附图说明
[0011]附图用于更好地理解本方案,不构成对本公开的限定。其中:
[0012]图1为本公开一实施例的代码推荐方法的流程示意图;
[0013]图2为本公开另一实施例的代码推荐方法的流程示意图;
[0014]图3为本公开另一实施例的代码推荐方法的流程示意图;
[0015]图4为本公开另一实施例的代码推荐方法的流程示意图;
[0016]图5为本公开一实施例的代码推荐装置的结构示意图;
[0017]图6为本公开一实施例的电子设备的示意性框图。
具体实施方式
[0018]以下结合附图对本公开的示范性实施例做出说明,其中包括本公开实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本公开的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。
[0019]自然语言处理(Natural Language Processing,NLP),是计算机科学领域与人工智能领域中的一个重要方向。它研究能实现人与计算机之间用自然语言进行有效通信的各种理论和方法。自然语言处理是一门融语言学、计算机科学、数学于一体的科学。因此,这一领域的研究将涉及自然语言,即人们日常使用的语言,所以它与语言学的研究有着密切的联系,但又有重要的区别。自然语言处理并不是一般地研究自然语言,而在于研制能有效地实现自然语言通信的计算机系统。
[0020]人工智能(Artificial Intelligence,AI),是研究、开发用于模拟、延伸和扩展人的智能的理论、方法、技术及应用系统的一门新的技术科学。人工智能是计算机科学的一个分支,它企图了解智能的实质,并生产出一种新的能以人类智能相似的方式做出反应的智能机器,该领域的研究包括机器人、语言识别、图像识别、自然语言处理和专家系统等。人工智能从诞生以来,理论和技术日益成熟,应用领域也不断扩大,可以设想,未来人工智能带来的科技产品,将会是人类智慧的“容器”。人工智能可以对人的意识、思维的信息过程的模拟。
[0021]图1为本公开一实施例的代码推荐方法的流程示意图,如图1所示,该方法包括:
[0022]S101,获取原始代码片段的代码推荐位置上的推荐代码片段,其中,代码推荐位置为原始代码片段中触发代码推荐需求的行中位置。
[0023]本公开实施例中,在用户进行代码的编辑和修改的过程中,当编辑操作出现停顿,且停顿时长达到预设的触发代码推荐需求的时长阈值时,即可确定,当前用户正在编辑和修改的代码触发了代码推荐需求。
[0024]其中,可以将当前用户正在编辑和修改的代码片段确定为原始代码片段。
[0025]可选地,当编辑操作在原始代码片段的行中位置上的停顿时长达到预设的触发代码推荐需求的时长阈值时,该行中位置即为原始代码片段中的代码推荐位置。
[0026]相应地,在该代码推荐位置上推荐显示的代码片段即为原始代码片段的推荐代码片段。
[0027]需要说明的是,推荐代码片段可以由单行代码组成,也可以由多行代码组成,此处
不做具体限定。
[0028]S102,获取原始代码片段中,位于代码推荐位置后的剩余代码片段。
[0029]本公开实施例中,代码推荐位置为原始代码片段的行中位置。
[0030]在该场景下,代码推荐位置后存在代码片段,其中,可以将原始代码片段中存在于代码推荐位置后的代码片段,标识为剩余代码片段。
[0031]S103,识别推荐代码片段和剩余代码片段中,进行代码融合操作所需的目标符号。
[0032]本公开实施例中,推荐代码片段和剩余代码片段之前可能存在格式维度上的差异。
[0033]在该场景下,可以通过调整推荐代码片段和剩余代码片段中的代码符号,使得推荐代码片段和剩余代码片段的格式可以趋于一致。
[0034]可选地,可以基于相关技术中的符号识别算法,对推荐代码片段和剩余代码片段进行算法处理,从而识别推荐代码片段和剩余代码片段中的代码符号。
[0035]作为一种示例,代码符号可以包括分隔符和后缀符,其中,分隔符可以包括“,”、“,”、
“”
、“/”和“//”等,后缀符可以包括“)”、“);”、本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种代码推荐方法,其中,所述方法包括:获取原始代码片段的代码推荐位置上的推荐代码片段,其中,所述代码推荐位置为所述原始代码片段中触发代码推荐需求的行中位置;获取所述原始代码片段中,位于所述代码推荐位置后的剩余代码片段;识别所述推荐代码片段和所述剩余代码片段中,进行代码融合操作所需的目标符号;根据所述目标符号对所述推荐代码片段和所述剩余代码片段进行融合,得到推荐给所述原始代码片段的目标推荐代码片段。2.根据权利要求1所述的方法,其中,所述识别所述推荐代码片段和所述剩余代码片段中,进行代码融合操作所需的目标符号,包括:获取所述推荐代码片段和所述剩余代码片段中的候选分隔符和候选后缀符;从所述候选分隔符中,确定进行代码融合操作所需的目标分隔符;从所述候选后缀符中,确定进行代码融合操作所需的目标后缀符;将所述目标分隔符和所述目标后缀符,确定为所述目标符号。3.根据权利要求2所述的方法,其中,所述从所述候选分隔符中,确定进行代码融合操作所需的目标分隔符,包括:响应于所述候选分隔符中存在所述推荐代码片段的后分隔符和所述剩余代码片段的前分隔符,确定所述后分隔符和所述前分隔符中任一分隔符为所述目标分隔符;响应于所述候选分隔符中仅存在所述推荐代码片段的中分隔符,在所述推荐代码片段对应的后分隔符位置或者所述剩余代码片段对应的前分隔符位置上添加所述中分隔符,作为所述目标分隔符。4.根据权利要求2所述的方法,其中,所述从所述候选后缀符中,确定进行代码融合操作所需的目标后缀符,包括:响应于所述候选后缀符中存在所述推荐代码片段的后缀符和所述剩余代码片段的后缀符,确定所述剩余代码片段的后缀符为所述目标后缀符;响应于所述候选后缀符中仅存在所述推荐代码片段的后缀符,将所述推荐代码片段的后缀符调整为所述剩余代码片段的后缀符,并将所述剩余代码片段的后缀符确定为所述目标后缀符。5.根据权利要求4所述的方法,其中,所述方法还包括:响应于所述候选后缀符中存在所述剩余代码片段存在后缀符且不存在所述推荐代码片段的后缀符,确定所述剩余代码片段的后缀符为所述目标后缀符;响应于所述候选后缀符中不存在所述推荐代码片段的后缀符和所述剩余代码片段的后缀符,确定所述目标后缀符为空。6.根据权利要求1

5任一项所述的方法,其中,所述根据所述目标符号对所述推荐代码片段和所述剩余代码片段进行融合,得到推荐给所述原始代码片段的目标推荐代码片段,包括:获取所述目标符号中的目标分隔符和目标后缀符;删除所述推荐代码片段和所述剩余代码片段之间除所述目标分隔符之外的剩余分隔符,以及所述候选后缀符中除所述目标后缀符之外的剩余后缀符,得到删除后的候选推荐代码片段和候选剩余代码片段;
将所述候选推荐代码片段、所述候选剩余代码片段、所述目标分隔符和所述目标后缀符按序进行拼接,得到推荐给所述原始代码片段的所述目标推荐代码片段。7.根据权利要求6所述的方法,其中,所述方法还包括:响应于所述推荐代码片段中包括所述剩余代码片段的代码内容,确定所述推荐代码片段为推荐给所述原始代码片段的所述目标推荐代码片段。8.根据权利要求7所述的方法,其中,所述方法还包括:获取所述目标推荐代码片段的第一代码长度,和所述原始代码片段的代码替换区域的第二代码长度;响应于所述第二代码长度小于所述第一代码长度,调整所述目标推荐代码片段,直至所述第二代码长度大于或者等于调整后的目标推荐代码片段的调整后第一代码长度。9.一种代码推荐装置,其中,所述装置包括:第一获取模块,用于获取原始代码片段的代码推荐位置上的推荐代码片段,其中,所述代码推荐位置为所述原始代码片段中触发代码推荐需求的行中位置;第二获取模块,用于获取所述原始代码片段中,...

【专利技术属性】
技术研发人员:王宁
申请(专利权)人:北京百度网讯科技有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1