问题改写方法、问答处理方法及对应装置与流程
- 国知局
- 2024-10-15 10:12:20
本技术涉及人工智能,特别是涉及一种问题改写方法、问题处理方法及对应装置。
背景技术:
1、随着编程辅助工具的发展,尤其是深度学习和自然语言处理领域的进步,基于用户查询的代码自动检索工具已经变得越来越普遍。在这些工具的帮助下,开发者可以通过提问来快速查找到相应的代码实例,提高了编程效率。
2、然而,现实中用户提出的问题往往是自然语言文本,自然语言文本通常是非结构化的、随意的,甚至含有模糊或不具体的词语。用户问题的不准确性导致传统的直接使用自然语言问题进行代码检索的方法难以准确地定位到最相关的代码片段,从而降低了检索结果的质量和用户的体验。
技术实现思路
1、本技术提供了一种问题改写方法、问题处理方法及对应装置,以对用户的自然语言问题进行更贴合代码检索需求的改写。
2、本技术提供了如下方案:
3、第一方面,提供了一种问题改写方法,所述方法包括:
4、获取自然语言问题文本;
5、将所述自然语言问题文本在关键信息集合中进行匹配,得到一个以上的候选关键信息,其中所述关键信息集合包括的关键信息是从代码库包含的代码片段中提取的;
6、利用所述自然语言问题文本和所述候选关键信息构建提示文本,将所述提示文本输入大语言模型以得到针对所述自然语言问题文本的一个以上的改写后问题文本,所述改写后问题文本用于在所述代码库中进行代码片段的检索。
7、根据本技术实施例中一可实现的方式,所述方法还包括:
8、利用静态分析工具对所述代码库包含的代码片段进行解析,以提取关键信息构成所述关键信息集合;
9、其中所述关键信息包括文件名、函数名、关键字以及上下文信息中的至少一种。
10、根据本技术实施例中一可实现的方式,所述方法还包括:对所述关键信息集合中的各关键信息分别进行编码处理,得到各关键信息的向量表示;
11、将所述自然语言问题文本在关键信息集合中进行匹配,得到一个以上的候选关键信息包括:对所述自然语言问题文本进行编码处理,得到所述自然语言问题文本的向量表示;将所述自然语言问题文本的向量表示与所述各关键信息的向量表示进行相似度计算,将对应相似度满足相似度要求的关键信息作为候选关键信息。
12、根据本技术实施例中一可实现的方式,利用所述自然语言问题文本和所述候选关键信息构建提示文本包括:
13、将所述自然语言问题文本和所述候选关键信息填入预设的提示模板,得到所述提示文本;
14、其中所述提示模板包括:提示大语言模型从所述候选关键信息中选择关键信息以对所述自然语言问题文本进行改写的指令。
15、根据本技术实施例中一可实现的方式,所述提示模板还包括:提示所述大语言模型输出选择的关键信息以及选择原因的指令;
16、所述方法还包括:获取所述大语言模型输出的所述选择的关键信息以及选择原因。
17、根据本技术实施例中一可实现的方式,所述方法还包括:
18、分别利用所述自然语言问题文本以及所述改写后问题文本,在所述代码库中进行匹配,以得到目标代码片段;
19、利用所述目标代码片段生成针对所述自然语言问题文本的答复。
20、根据本技术实施例中一可实现的方式,分别利用所述自然语言问题文本以及所述改写后问题文本,在所述代码库中进行匹配,以得到目标代码片段包括:
21、分别利用所述自然语言问题文本以及所述改写后问题文本,在所述代码库中进行匹配,得到候选代码片段;
22、对所述候选代码片段进行过滤和排序中的至少一种处理;
23、基于处理结果从所述候选代码片段中确定目标代码片段。
24、根据本技术实施例中一可实现的方式,对所述候选代码片段进行过滤包括:
25、对所述自然语言问题文本进行意图识别,得到所述自然语言问题文本对应的意图类别;
26、过滤掉所述候选代码片段中与所述意图类别不匹配的候选代码片段。
27、根据本技术实施例中一可实现的方式,对所述候选代码片段进行排序包括:
28、基于各候选代码片段与所述自然语言问题文本之间的语义相似度,确定各候选代码片段的第一排序得分;
29、基于各候选代码片段对关键词特征的命中状况,确定各候选代码片段的第二排序得分,其中所述关键词特征是利用从所述自然语言问题文本和所述改写后问题文本提取出的符合预设要求的关键词得到的;
30、利用各候选代码片段的第一排序得分和第二排序得分对各候选代码片段进行综合排序。
31、第二方面,提供了一种问答处理方法,应用于云端服务器,所述方法包括:
32、获取来自用户终端的自然语言问题文本;
33、将所述自然语言问题文本在关键信息集合中进行匹配,得到一个以上的候选关键信息,其中所述关键信息集合包括的关键信息是从代码库包含的代码片段中提取的;
34、利用所述自然语言问题文本和所述候选关键信息构建提示文本,将所述提示文本输入大语言模型以得到针对所述自然语言问题文本的一个以上的改写后问题文本;
35、分别利用所述自然语言问题文本以及所述改写后问题文本,在所述代码库中进行匹配,得到目标代码片段;
36、利用所述目标代码片段生成针对所述自然语言问题文本的答复;
37、将所述答复返回给所述用户终端。
38、第三方面,提供了一种问题改写装置,所述装置包括:
39、问题获取单元,被配置为获取自然语言问题文本;
40、第一匹配单元,被配置为将所述自然语言问题文本在关键信息集合中进行匹配,得到一个以上的候选关键信息,其中所述关键信息集合包括的关键信息是从代码库包含的代码片段中提取的;
41、改写处理单元,被配置为利用所述自然语言问题文本和所述候选关键信息构建提示文本,将所述提示文本输入大语言模型以得到针对所述自然语言问题文本的一个以上的改写后问题文本,所述改写后问题文本用于在所述代码库中进行代码片段的检索。
42、第四方面,提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现上述第一方面和第二方面中任一项所述的方法的步骤。
43、第五方面,提供了一种电子设备,包括:
44、一个或多个处理器;以及
45、与所述一个或多个处理器关联的存储器,所述存储器用于存储程序指令,所述程序指令在被所述一个或多个处理器读取执行时,执行上述第一方面和第二方面中任一项所述的方法的步骤。
46、第六方面,提供了一种计算机程序产品,包括计算机程序,其特征在于,该计算机程序被处理器执行时实现上述第一方面和第二方面中任一项所述方法的步骤。
47、根据本技术提供的具体实施例,本技术公开了以下技术效果:
48、1)本技术从代码库包含的代码片段中提取关键信息构成关键信息集合,通过将自然语言问题文本在关键信息集合中进行匹配得到候选关键信息,建立了自然语言问题文本与关键信息之间的关联,大语言模型能够利用候选关键信息来准确改写问题,使改写后的问题更容易贴合代码检索的需求,提升了代码检索的准确率和用户体验。
49、2)本技术通过静态分析工具对代码库包含的代码片段进行解析,将文件名、函数名等作为关键信息从代码片段中抽取出来构建关键信息集合,使得大语言模型能够参考代码片段本身的信息来改写自然语言问题文本,使改写后的问题文本能符合代码检索需求。
50、3)本技术对关键信息和自然语言问题文本均进行编码处理得到向量表示,通过计算自然语言问题文本的向量表示与各关键信息的向量表示之间的相似度来选择候选关键信息,提高了候选关键信息筛选的准确率,进而使改写后的问题文本更符合代码检索需求。
51、4)本技术通过预设提示模板得到提示文本,并且通过限定提示模板的内容,提示大语言模型执行相应的操作,提高了提示文本生成的效率和准确率,从而对大语言模型的工作进行了更精确的指导,并且改写后问题文本本质上缩小了代码检索的范围,结合大语言模型的准确改写,优化了代码检索的效率和成本。
52、5)本技术将自然语言问题文本和改写后问题文本,在代码库中进行匹配,得到目标代码片段,利用目标代码片段生成针对自然语言问题文本的答复,提高了答复的准确率。
53、6)本技术对候选代码片段通过过滤和排序中的至少一种处理得到目标代码片段,提高了目标代码片段的质量,从而提高了答复的准确率。
54、7)本技术对候选代码片段进行过滤时,过滤掉候选代码片段中与自然语言问题文本意图类别不匹配的候选代码片段,提高了候选代码片段与自然语言问题文本的匹配程度,进而提高了检索得到的目标代码片段与用户真实意图的匹配程度,从而提高了答复的准确率。
55、8)本技术在对候选代码段进行排序时,除了考虑候选代码片段与自然语言问题文本在语义上的相似度之外,还考虑了各候选代码片段与从自然语言问题文本和改写后问题中提取的关键词特征在表述上的相似性(即命中状况),提升了排序的准确率,提高了目标代码片段的质量,从而提高了答复的准确率。
56、当然,实施本技术的任一产品并不一定需要同时达到以上所述的所有优点。
本文地址:https://www.jishuxx.com/zhuanli/20241015/316777.html
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 YYfuon@163.com 举报,一经查实,本站将立刻删除。
下一篇
返回列表