CN111857660B - 一种基于查询语句的情境感知api推荐方法及终端 - Google Patents

一种基于查询语句的情境感知api推荐方法及终端 Download PDF

Info

Publication number
CN111857660B
CN111857660B CN202010640743.0A CN202010640743A CN111857660B CN 111857660 B CN111857660 B CN 111857660B CN 202010640743 A CN202010640743 A CN 202010640743A CN 111857660 B CN111857660 B CN 111857660B
Authority
CN
China
Prior art keywords
query
word
api
user
java
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN202010640743.0A
Other languages
English (en)
Other versions
CN111857660A (zh
Inventor
周宇
陈晨
王永超
黄志球
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Nanjing University of Aeronautics and Astronautics
Original Assignee
Nanjing University of Aeronautics and Astronautics
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Nanjing University of Aeronautics and Astronautics filed Critical Nanjing University of Aeronautics and Astronautics
Priority to CN202010640743.0A priority Critical patent/CN111857660B/zh
Publication of CN111857660A publication Critical patent/CN111857660A/zh
Application granted granted Critical
Publication of CN111857660B publication Critical patent/CN111857660B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/20Software design
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/953Querying, e.g. by the use of web search engines
    • G06F16/9535Search customisation based on user profiles and personalisation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/22Matching criteria, e.g. proximity measures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/20Natural language analysis
    • G06F40/253Grammatical analysis; Style critique
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/20Natural language analysis
    • G06F40/279Recognition of textual entities
    • G06F40/284Lexical analysis, e.g. tokenisation or collocates

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Artificial Intelligence (AREA)
  • Computational Linguistics (AREA)
  • Health & Medical Sciences (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • General Health & Medical Sciences (AREA)
  • Software Systems (AREA)
  • Evolutionary Computation (AREA)
  • Evolutionary Biology (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Bioinformatics & Computational Biology (AREA)
  • Bioinformatics & Cheminformatics (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明公开了一种基于查询语句的情境感知API推荐方法及终端,步骤如下:从Github收集Java项目并进行筛选;针对Java文件构建抽象语法树提取方法注释、方法名、API以及情境信息;根据查询语句数据集构建语言模型,根据用户当前查询语句检索历史相似的查询;利用检索到的历史相似的查询与用户当前查询语句构建张量;提取用户当前编程代码信息,即情境元组,利用Smith‑Waterman算法进行情境匹配,选择出与用户当前情境最相似的情境,然后根据张量里的元素值的大小排序API推荐给用户。与现有技术相比,本发明将情境信息融入到基于查询语句的API推荐,使其能把更相关的API推荐给用户。

Description

一种基于查询语句的情境感知API推荐方法及终端
技术领域
本发明属于代码推荐技术领域,具体涉及一种基于查询语句的情境感知API推荐方法及终端。
背景技术
应用程序编程接口(API)是构建大规模软件系统的基本构建块。由于API库中含有大量的API,开发人员往往并不能全部掌握,当面对一个不熟悉的编程任务时,通常会通过查询的方式寻找需要使用的API。
现有研究提出各种各样的API推荐方法来实现高效的开发。这些API推荐方法通常根据输入可以分为两类:有显示查询和无显示查询。有显示查询的方法通常需要良好的设计的查询语句来捕获用户的编程意图,这种方法被定义为一个信息检索方法,它将查询语句转化为一个词向量,然后使用文本匹配的方法来寻找最匹配的API。由于自然语言和代码之间的词法差异,通常会使用额外的构件包括API文档,API调用图,问答网站中的帖子等辅助API推荐。无显示查询由于没有显示查询作为输入,因此必须利用情境信息来推断用户需要使用哪些API,情境信息一般包括周围的代码片段,API调用图等。现实中一个很常见的现象是开发人员在已经完成了一个编程任务的部分代码后,由于不知道如何编写下面的代码,通过查询语句寻找正确的API继续编程。现有的API推荐方法要么依赖于查询语句,要么依赖于已经编写的代码片段。然而这些方法有时不能推荐出用户真正想要的API。比如下述查询语句:Copy a file in java,该查询语句在编程情境已经明确使用高效字符缓冲流(java.io.BufferedReader,java.io.BufferedWriter)来完成时,该查询语句推荐出来的API可能是java.io.FileReader.read,并不能帮助用户完成编程任务。而单纯利用情境信息,有时无法捕捉用户的编程意图,当情境信息很少甚至没有时,根本无法推荐出用户想要的API。
因此,本发明拟将情境信息融入到基于查询语句的API推荐任务进行优化。针对标准的基于查询语句的推荐,一种典型的方法就是使用一个矩阵表示查询语句和API的二元关系。然而,随着情境信息的引入,本发明采用三阶张量来表示查询语句,API,情境的三元关系。采用张量分解的方法对缺失值进行填补,从而根据当前用户查询语句以及情境将相关API推荐给用户。
发明内容
针对于上述现有技术的不足,本发明的目的在于提供一种基于查询语句的情境感知API推荐方法及终端,以解决现有技术中推荐结果列表中的API与情境不匹配的问题。本发明利用情境信息提高基于查询语句的API推荐的准确性。
为达到上述目的,本发明采用的技术方案如下:
本发明的一种基于查询语句的情境感知API推荐方法,步骤如下:
(1)从Github收集Java项目并进行筛选;针对Java文件构建抽象语法树提取方法注释、方法名、API以及情境信息;
(2)根据查询语句数据集构建语言模型,根据用户输入的查询语句检索历史相似的查询;
(3)利用检索到的历史相似的查询与用户输入的查询语句构建张量,并采用非负张量分解对缺失值进行填补;
(4)针对用户当前编程环境采用步骤(1)提取情境信息的方法提取用户当前编程代码信息,即情境元组,利用Smith-Waterman算法进行情境匹配,选择出与用户当前情境最相似的情境,然后根据张量里的元素值的大小排序API推荐给用户。
优选地,所述步骤(1)具体包括:对从Github收集到的Java项目去除低质量的项目(即项目星标数为0),提取java项目中的java文件,针对每一个Java文件利用Eclipse JDT构建抽象语法树,从中提取方法注释,方法名,API以及情境信息。
优选地,所述步骤(1)具体还包括:
方法注释:提取方法注释的第一句话作为用户的查询语句;
方法名:将其按照Java方法名命名规则“驼峰”命名法对其进行分解;
API:针对Java方法调用API进行推荐,提取Java方法调用的API;
情境信息:情境信息指编程人员在编写一个编程任务(即一个Java方法定义)过程中的方法体内的上下文信息;通过遍历方法体的抽象语法树,用Java包名.类名的形式表示提取Java类的实例化,用Java包名.类名.方法名的形式表示提取到的Java方法调用,以及用自定义的映射控制结点与字符的编码表来表示提取到的控制API调用的结点来对情境信息编码;情境信息用一个字符串表示。
优选地,所述步骤(2)中根据查询语句构建语言模型,具体包括:对步骤(1)提取到的查询语句分词和提取词干后采用word2vec训练词向量并计算每个词idf值,从而构建一个语言模型。
其中,逆文档频率(idf)是一个词语普遍重要性的度量,某一特定词语的idf计算公式如下:
Figure BDA0002570994650000021
优选地,所述步骤(2)中根据用户当前查询语句检索历史相似的查询,具体包括:将方法名加入到查询语句后,检索历史相似的查询;对历史查询语句进行遍历,计算当前查询语句与历史查询语句的相似度,计算公式如下:
Figure BDA0002570994650000031
其中,querySim(Q1,Q2)表示两个查询语句Q1和Q2之间的相似度;wordSim(Q1,Q2)表示查询Q1中所有单词与查询Q2之间的相似度;同理,wordSim(Q2,Q1)表示查询Q2中所有单词与Q1之间的相似度:
Figure BDA0002570994650000032
Figure BDA0002570994650000033
其中,ω1表示查询Q1中的单词,ω2表示查询Q2中的单词;idf(ω1)表示单词ω1的idf值,idf(ω2)表示单词ω2的idf值;将单词ω1与单词ω2的相似度记为sim(ω1,ω2),simmax(ω1,Q2)是单词ω1与查询Q2中单词相似度的最大值,即sim(ω1,ω2)的最大值;同理,将单词ω2与单词ω1的相似度记为sim(ω2,ω1),simmax(ω2,Q1)是单词ω2与查询Q1中单词相似度的最大值,即sim(ω2,ω1)的最大值;sim(ω1,ω2)和sim(ω2,ω1)的余弦相似度计算公式如下:
Figure BDA0002570994650000034
Figure BDA0002570994650000035
其中,
Figure BDA0002570994650000036
表示单词ω1的向量,
Figure BDA0002570994650000037
表示单词ω2的向量,
Figure BDA0002570994650000038
表示单词ω1的向量的模,
Figure BDA0002570994650000039
表示单词ω2的向量的模。
根据相似度计算公式,将检索到的最相似的Top-k个历史查询用来构建张量。
优选地,所述步骤(3)具体包括:根据检索到的历史相似的查询和当前的查询语句以及情境信息所构成的三元组<查询语句,API,情境>集合Rsim根据如下公式构建张量:
Figure BDA00025709946500000310
其中,q代表经过分词和提取词干后的查询语句,a代表API,c代表情境。
优选地,所述步骤(4)具体包括:利用Smith-Waterman算法查询到两个情境序列C和D的局部最大匹配序列,局部最大匹配序列的长度记为SLength(C,D),根据如下公式计算序列C和D的相似度:
Figure BDA0002570994650000041
其中,SLength(·)表示序列·的长度,利用序列相似度计算公式计算得到与当前的编程情境最相似的历史情境,然后根据张量里面元素值的大小对API进行排序,推荐给用户。
本发明还提供一种基于查询语句的情境感知API推荐终端,包括:
一个或多个处理器;
存储器,用于存储一个或多个程序;
当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器实现上述的方法。
本发明的有益效果:
本发明将情境信息融入到基于查询的API推荐,采用张量分解的方法进行建模,充分考虑用户当前的编程信息,更能把用户想要的API推荐给用户。
附图说明
图1为本发明方法的原理示意图。
具体实施方式
为了便于本领域技术人员的理解,下面结合实施例与附图对本发明作进一步的说明,实施方式提及的内容并非对本发明的限定。
参照图1所示,本发明的一种基于查询语句的情境感知API推荐方法,步骤如下:
(1)从Github收集Java项目并进行筛选;针对Java文件构建抽象语法树提取方法注释、方法名、API以及情境信息;
所述步骤(1)具体包括:对从Github收集到的Java项目去除低质量的项目(即项目星标数为0),提取java项目中的java文件,针对每一个Java文件利用Eclipse JDT构建抽象语法树,从中提取方法注释,方法名,API以及情境信息;
方法注释:提取方法注释的第一句话作为用户的查询语句;
方法名:将其按照Java方法名命名规则“驼峰”命名法对其进行分解;
API:针对Java方法调用API进行推荐,提取Java方法调用的API;
情境信息:情境信息指编程人员在编写一个编程任务(即一个Java方法定义)过程中的方法体内的上下文信息;通过遍历方法体的抽象语法树,用Java包名.类名的形式表示提取Java类的实例化,用Java包名.类名.方法名的形式表示提取到的Java方法调用,以及用自定义的映射控制结点与字符的编码表来表示提取到的控制API调用的结点来对情境信息编码;情境信息用一个字符串表示。
将获得一个包含58万条<查询语句,APIs,情境>元组数据集。自定义的映射控制结点与字符的编码表如下表1所示:
表1
AST Node Type Symbol AST Node Type Symbol
EnhancedForStatement A...a ThrowStatemen H
IfStatement B…b SwitchStatement I…i
ForStatement C…c SynchronizedStatement J…j
ReturnStatement D AssertStatement K
BreakStatement E CatchClause L…l
WhileStatement F…f ContinueStatement M
TryStatement G…g DoStatemen N…n
其中一个大写字母代表一个重要AST结点的声明,其小写字母代表该AST结点声明的结束。
(2)根据查询语句数据集(其通过上述方法注释构造的)构建语言模型,根据用户输入的查询语句检索历史相似的查询;
对步骤(1)提取到的查询语句分词和提取词干后采用word2vec训练词向量并计算每个词idf值,其中,逆文档频率(idf)是一个词语普遍重要性的度量,某一特定词语的idf计算公式如下:
Figure BDA0002570994650000051
通过相似度计算公式计算当前用户输入的查询语句与历史查询的相似度,从而得到Top-k个相似的历史查询。由于Java方法的方法名通常能表达用户的编程意图,将其加在查询语句后面一起进行相似度计算。
根据用户当前查询语句检索历史相似的查询,具体包括:将方法名加入到查询语句后,检索历史相似的查询;对历史查询语句进行遍历,计算当前查询语句与历史查询语句的相似度,计算公式如下:
Figure BDA0002570994650000052
其中,querySim(Q1,Q2)表示两个查询语句Q1和Q2之间的相似度;wordSim(Q1,Q2)表示查询Q1中所有单词与查询Q2之间的相似度;同理,wordSim(Q2,Q1)表示查询Q2中所有单词与Q1之间的相似度:
Figure BDA0002570994650000061
Figure BDA0002570994650000062
其中,ω1表示查询Q1中的单词,ω2表示查询Q2中的单词;idf(ω1)表示单词ω1的idf值,idf(ω2)表示单词ω2的idf值;将单词ω1与单词ω2的相似度记为sim(ω1,ω2),simmax(ω1,Q2)是单词ω1与查询Q2中单词相似度的最大值,即sim(ω1,ω2)的最大值;同理,将单词ω2与单词ω1的相似度记为sim(ω2,ω1),simmax(ω2,Q1)是单词ω2与查询Q1中单词相似度的最大值,即sim(ω2,ω1)的最大值;sim(ω1,ω2)和sim(ω2,ω1)的余弦相似度计算公式如下:
Figure BDA0002570994650000063
Figure BDA0002570994650000064
其中,
Figure BDA0002570994650000065
表示单词ω1的向量,
Figure BDA0002570994650000066
表示单词ω2的向量,
Figure BDA0002570994650000067
表示单词ω1的向量的模,
Figure BDA0002570994650000068
表示单词ω2的向量的模。
根据相似度计算公式,将检索到的最相似的Top-k个历史查询用来构建张量。
(3)利用检索到的历史相似的查询与用户当前查询语句构建张量,并采用非负张量分解对缺失值进行填补;
根据检索到的历史相似的查询和当前的查询语句以及情境信息所构成的三元组<查询语句,API,情境>集合Rsim根据如下公式构建张量:
Figure BDA0002570994650000069
其中,q代表经过分词和提取词干后的查询语句,a代表API,c代表情境。
(4)针对用户当前编程环境采用步骤(1)提取情境信息的方法提取用户当前编程代码信息,即情境元组,利用Smith-Waterman算法进行情境匹配,选择出与用户当前情境最相似的情境,然后根据张量里的元素值的大小排序API推荐给用户;
利用Smith-Waterman算法查询到两个情境序列C和D的局部最大匹配序列,局部最大匹配序列的长度记为SLength(C,D),根据如下公式计算序列C和D的相似度:
Figure BDA0002570994650000071
其中,Length(·)表示序列·的长度,利用序列相似度计算公式计算得到与当前的编程情境最相似的历史情境,然后根据张量里面元素值的大小对API进行排序,推荐给用户。
以下采用实验的方式来体现本发明方法的性能;
实验的主要内容为:模拟用户真实的编程场景,对用户当前编程的方法不断添加代码。
实验采用的数据,来自于Github项目集提取后的数据;
算法评价指标采用MRR,MAP,SuccessRate,Recall,Precision,NDCG,示例中分别对推荐结果Top-k(k∈{1,5})进行了统计;随机选择提取数据集中的1000个元组作为测试数据,并将一个方法的编程过程情境信息长度分为五个编程阶段(0%,20%,40%,60%,80%)。本发明在推荐Java方法调用实验结果记录为表2所示,在推荐Java类实验结果为表3所示:
表2
Figure BDA0002570994650000072
Figure BDA0002570994650000081
表3
Figure BDA0002570994650000082
Figure BDA0002570994650000091
实验表明本发明方法在推荐的准确率上已经取到较高的结果。
其中,Top-1准确率提升最大,在推荐Java方法调用API的任务中,CARTF的平均SuccessRate@1为70.9%比BIKER的22.9%高209.6%,且CARTF的平均SuccessRate@5为79.9%比BIKER的50.0%高59.8%;在推荐Java类API的任务中,CARTF的平均SuccessRate@1为72.7%比BIKER的59.6%高21.9%,且CARTF的平均SuccessRate@5为84.8%比BIKER的82.7%高2.5%。该实验结果表明,CARTF能有效地将用户所需要的API推荐,在编程的不同阶段所有指标均能超过对比方法。
本发明具体应用途径很多,以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以作出若干改进,这些改进也应视为本发明的保护范围。

Claims (7)

1.一种基于查询语句的情境感知API推荐方法,其特征在于,步骤如下:
(1)从Github收集Java项目并进行筛选;针对Java文件构建抽象语法树提取方法注释、方法名、API以及情境信息;
(2)根据查询语句数据集构建语言模型,根据用户输入的查询语句检索历史相似的查询;
(3)利用检索到的历史相似的查询与用户输入的查询语句构建张量,并采用非负张量分解对缺失值进行填补;
(4)针对用户当前编程环境采用步骤(1)提取情境信息的方法提取用户当前编程代码信息,即情境元组,利用Smith-Waterman算法进行情境匹配,选择出与用户当前情境最相似的情境,然后根据张量里的元素值的大小排序API推荐给用户;
所述步骤(2)中根据用户当前查询语句检索历史相似的查询,具体包括:将方法名加入到查询语句后,检索历史相似的查询;对历史查询语句进行遍历,计算当前查询语句与历史查询语句的相似度,计算公式如下:
Figure FDA0003133106520000011
其中,querySim(Q1,Q2)表示两个查询语句Q1和Q2之间的相似度;wordSim(Q1,Q2)表示查询Q1中所有单词与查询Q2之间的相似度;同理,wordSim(Q2,Q1)表示查询Q2中所有单词与Q1之间的相似度:
Figure FDA0003133106520000012
Figure FDA0003133106520000013
其中,ω1表示查询Q1中的单词,ω2表示查询Q2中的单词;idf(ω1)表示单词ω1的idf值,idf(ω2)表示单词ω2的idf值;将单词ω1与单词ω2的相似度记为sim(ω1,ω2),simmax(ω1,Q2)是单词ω1与查询Q2中单词相似度的最大值,即sim(ω1,ω2)的最大值;同理,将单词ω2与单词ω1的相似度记为sim(ω2,ω1),simmax(ω2,Q1)是单词ω2与查询Q1中单词相似度的最大值,即sim(ω2,ω1)的最大值;sim(ω1,ω2)和sim(ω2,ω1)的余弦相似度计算公式如下:
Figure FDA0003133106520000021
Figure FDA0003133106520000022
其中,
Figure FDA0003133106520000023
表示单词ω1的向量,
Figure FDA0003133106520000024
表示单词ω2的向量,
Figure FDA0003133106520000025
表示单词ω1的向量的模,
Figure FDA0003133106520000026
表示单词ω2的向量的模。
2.根据权利要求1所述的基于查询语句的情境感知API推荐方法,其特征在于,所述步骤(1)具体包括:对从Github收集到的Java项目去除低质量的项目,提取java项目中的java文件,针对每一个Java文件利用Eclipse JDT构建抽象语法树,从中提取方法注释,方法名,API以及情境信息。
3.根据权利要求2所述的基于查询语句的情境感知API推荐方法,其特征在于,所述步骤(1)具体还包括:
方法注释:提取方法注释的第一句话作为用户的查询语句;
方法名:将其按照Java方法名命名规则驼峰命名法对其进行分解;
API:针对Java方法调用API进行推荐,提取Java方法调用的API;
情境信息:通过遍历方法体的抽象语法树,用Java包名.类名的形式表示提取Java类的实例化,用Java包名.类名.方法名的形式表示提取到的Java方法调用,以及用自定义的映射控制结点与字符的编码表来表示提取到的控制API调用的结点来对情境信息编码。
4.根据权利要求1所述的基于查询语句的情境感知API推荐方法,其特征在于,所述步骤(2)中根据查询语句构建语言模型,具体包括:对步骤(1)提取到的查询语句分词和提取词干后采用word2vec训练词向量并计算每个词idf值,从而构建一个语言模型。
5.根据权利要求1所述的基于查询语句的情境感知API推荐方法,其特征在于,所述步骤(3)具体包括:根据检索到的历史相似的查询和当前的查询语句以及情境信息所构成的三元组<查询语句,API,情境>集合Rsim根据如下公式构建张量:
Figure FDA0003133106520000027
式中,q代表经过分词和提取词干后的查询语句,a代表API,c代表情境。
6.根据权利要求1所述的基于查询语句的情境感知API推荐方法,其特征在于,所述步骤(4)具体包括:利用Smith-Waterman算法查询到两个情境序列C和D的局部最大匹配序列,局部最大匹配序列的长度记为SLength(C,D),根据如下公式计算序列C和D的相似度:
Figure FDA0003133106520000031
其中,Length(·)表示序列·的长度,利用序列相似度计算公式计算得到与当前的编程情境最相似的历史情境,根据张量里面元素值的大小对API进行排序,推荐给用户。
7.一种基于查询语句的情境感知API推荐终端,其特征在于,包括:
一个或多个处理器;
存储器,用于存储一个或多个程序;
当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器实现如权利要求1-6中所述任一的方法。
CN202010640743.0A 2020-07-06 2020-07-06 一种基于查询语句的情境感知api推荐方法及终端 Active CN111857660B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010640743.0A CN111857660B (zh) 2020-07-06 2020-07-06 一种基于查询语句的情境感知api推荐方法及终端

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010640743.0A CN111857660B (zh) 2020-07-06 2020-07-06 一种基于查询语句的情境感知api推荐方法及终端

Publications (2)

Publication Number Publication Date
CN111857660A CN111857660A (zh) 2020-10-30
CN111857660B true CN111857660B (zh) 2021-10-08

Family

ID=73153472

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010640743.0A Active CN111857660B (zh) 2020-07-06 2020-07-06 一种基于查询语句的情境感知api推荐方法及终端

Country Status (1)

Country Link
CN (1) CN111857660B (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112966095B (zh) * 2021-04-06 2022-09-06 南通大学 一种基于jean的软件代码推荐方法
CN113761162B (zh) * 2021-08-18 2023-12-05 浙江大学 一种基于上下文感知的代码搜索方法
CN114385781B (zh) * 2021-11-30 2022-09-27 南京数睿数据科技有限公司 基于语句模型的接口文件推荐方法、装置、设备和介质

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109344332A (zh) * 2018-10-31 2019-02-15 郑州云海信息技术有限公司 一种Web API组合推荐方法、装置及电子设备
CN110347428A (zh) * 2018-04-08 2019-10-18 北京京东尚科信息技术有限公司 一种代码相似度的检测方法和装置
CN110806861A (zh) * 2019-10-10 2020-02-18 南京航空航天大学 一种结合用户反馈信息的api推荐方法及终端

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8825561B2 (en) * 2009-08-10 2014-09-02 International Business Machines Corporation Method and system of determining a prioritized list of users related to a given goal
WO2013029233A1 (en) * 2011-08-30 2013-03-07 Nokia Corporation Method and apparatus for providing recommendations based on context-aware group modeling
KR101363171B1 (ko) * 2012-05-30 2014-02-14 (주)유엠텍 하이브리드 협업적 여과 방법을 이용한 코사인 유사도 기반 전문가 추천 장치 및 방법
US20180276305A1 (en) * 2016-09-01 2018-09-27 Xiaomo Liu Legal research recommendation system
CN106649657B (zh) * 2016-12-13 2020-11-17 重庆邮电大学 面向社交网络基于张量分解的上下文感知推荐系统及方法
CN106997389B (zh) * 2017-03-30 2020-04-07 浙江鸿程计算机系统有限公司 一种基于多数据集和协同张量分解的旅游景点推荐方法
CN108717423B (zh) * 2018-04-24 2020-07-07 南京航空航天大学 一种基于深度语义挖掘的代码段推荐方法
CN108563794B (zh) * 2018-05-03 2020-07-31 广东机电职业技术学院 基于高阶奇异值分解的上下文推荐方法及装置
CN108717470B (zh) * 2018-06-14 2020-10-23 南京航空航天大学 一种具有高准确度的代码片段推荐方法
CN109522011B (zh) * 2018-10-17 2021-05-25 南京航空航天大学 一种基于编程现场上下文深度感知的代码行推荐方法
CN109960506B (zh) * 2018-12-03 2023-05-02 复旦大学 一种基于结构感知的代码注释生成方法
CN109670022B (zh) * 2018-12-13 2023-09-29 南京航空航天大学 一种基于语义相似度的Java应用程序接口使用模式推荐方法
CN110046501B (zh) * 2019-03-09 2020-09-29 中国人民解放军战略支援部队信息工程大学 一种受生物基因启发的恶意代码检测方法
CN110297657B (zh) * 2019-06-11 2023-07-21 东南大学 一种基于层次上下文的api推荐方法
CN110598123B (zh) * 2019-08-14 2023-12-29 平安科技(深圳)有限公司 基于画像相似性的信息检索推荐方法、装置及存储介质

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110347428A (zh) * 2018-04-08 2019-10-18 北京京东尚科信息技术有限公司 一种代码相似度的检测方法和装置
CN109344332A (zh) * 2018-10-31 2019-02-15 郑州云海信息技术有限公司 一种Web API组合推荐方法、装置及电子设备
CN110806861A (zh) * 2019-10-10 2020-02-18 南京航空航天大学 一种结合用户反馈信息的api推荐方法及终端

Also Published As

Publication number Publication date
CN111857660A (zh) 2020-10-30

Similar Documents

Publication Publication Date Title
CN110569353B (zh) 一种基于注意力机制的Bi-LSTM的标签推荐方法
CN111857660B (zh) 一种基于查询语句的情境感知api推荐方法及终端
CN111444320B (zh) 文本检索方法、装置、计算机设备和存储介质
Navarro Spaces, trees, and colors: The algorithmic landscape of document retrieval on sequences
CN110929038B (zh) 基于知识图谱的实体链接方法、装置、设备和存储介质
CN108460011B (zh) 一种实体概念标注方法及系统
CN109448793B (zh) 基因序列的权利范围标注、检索及信息标注方法、系统
CN112035730B (zh) 一种语义检索方法、装置及电子设备
CN102609449B (zh) 一种基于维基百科构建概念型知识地图的方法
CN106708929B (zh) 视频节目的搜索方法和装置
US8356245B2 (en) System and method of automatically mapping a given annotator to an aggregate of given annotators
WO2020056977A1 (zh) 知识点推送方法、装置及计算机可读存储介质
CN111611452B (zh) 搜索文本的歧义识别方法、系统、设备及存储介质
CN113569050B (zh) 基于深度学习的政务领域知识图谱自动化构建方法和装置
CN109522396B (zh) 一种面向国防科技领域的知识处理方法及系统
CN112015907A (zh) 一种学科知识图谱快速构建方法、装置及存储介质
CN106570196B (zh) 视频节目的搜索方法和装置
CN116701325B (zh) 基于二进制文件缓存加载xbrl分类标准的方法
CN110717014B (zh) 一种本体知识库动态构建方法
CN109902162B (zh) 基于数字指纹的文本相似性的识别方法、存储介质及装置
Pandi et al. A novel similarity measure for sequence data
CN112698831B (zh) 一种代码自动生成质量评估方法
Pu et al. A vision-based approach for deep web form extraction
CN114722160B (zh) 文本数据比较方法及装置
CN113569974B (zh) 编程语句纠错方法、装置、电子设备及存储介质

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant