CN112214511A - 一种基于wtp-wcd算法的api推荐方法 - Google Patents

一种基于wtp-wcd算法的api推荐方法 Download PDF

Info

Publication number
CN112214511A
CN112214511A CN202011078740.9A CN202011078740A CN112214511A CN 112214511 A CN112214511 A CN 112214511A CN 202011078740 A CN202011078740 A CN 202011078740A CN 112214511 A CN112214511 A CN 112214511A
Authority
CN
China
Prior art keywords
api
wcd
similarity
wtp
algorithm
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.)
Pending
Application number
CN202011078740.9A
Other languages
English (en)
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.)
Nantong University
Original Assignee
Nantong University
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 Nantong University filed Critical Nantong University
Priority to CN202011078740.9A priority Critical patent/CN112214511A/zh
Publication of CN112214511A publication Critical patent/CN112214511A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/20Natural language analysis
    • G06F40/205Parsing
    • G06F40/216Parsing using statistical methods
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/20Software design
    • G06F8/24Object-oriented

Abstract

本发明提供一种基于WTP‑WCD算法的API推荐方法,包括如下步骤:步骤1)、收集API数据集;步骤2)、对数据集预处理;步骤3)、建立模型,将数据进行向量化处理;步骤4)、对生成的词向量进行加权处理;步骤5)、对需要查询的问题内容同样进行步骤二、三、四处理操作;步骤6)、进行相似度计算。本发明主要用于解决在软件开发中向用户推荐API的问题,能够有效辅助软件开发人员使用API来完成开发任务,具有较高的精确率和效率。本发明不仅可以向用户精确推荐API,而且能有效提高API推荐的效率。

Description

一种基于WTP-WCD算法的API推荐方法
技术领域
本发明信息检索的技术领域,具体涉及一种基于WTP-WCD算法的API推荐方法,主要用于解决在软件开发中向用户推荐API的问题
背景技术
随着软件技术的飞速发展,各种编程语言中的库不断改进,软件在开发过程中,越来越多的开发人员将倾向于使用现有的库来完成开发任务。因此API是许多开发人员选择调用的工具。然而,由于库实现的功能不同以及API的复杂性和多样性很难让开发人员学习。在这种情况下,一些有经验的开发人员可能知道如何使用API,但是对于缺乏开发经验的开发人员或初学者非常不友好。同时,API的类型和函数有上万种,API帮助文档的内容也不尽相同,使用方式也在不断变化。这些因素使得学习和使用API来提高开发效率变得非常困难。
软件开发人员更倾向于仅提供需求描述以获得适当的API。现有的关键字检索方法难以识别需求描述和API文档之间的词法和语法差异,从而导致API推荐效率低下。基于WTP-WCD算法的API推荐方法是一种基于词嵌入技术的,这种方法是通过对文本进行结构化,充分挖掘文本中的语义信息,并计算出用户查询问题与API文档中描述信息之间的相似度,为开发人员推荐满足开发需求的API,以提高开发者的软件开发效率。
发明内容
本发明要解决的技术问题是提供一种基于WTP-WCD算法的API推荐方法,能够有效辅助软件开发人员使用API来完成开发任务,具有较高的精确率和效率。
为解决上述技术问题,本发明的实施例提供一种基于WTP-WCD算法的API推荐方法,包括如下步骤:
步骤1)、收集API数据集;
步骤2)、对数据集预处理;
步骤3)、建立模型,将数据进行向量化处理;
步骤4)、对生成的词向量进行加权处理;
步骤5)、对需要查询的问题内容同样进行步骤二、三、四处理操作;
步骤6)、进行相似度计算。
其中,步骤1)的具体步骤如下:
(1-1)收集API数据集来构造数据库:爬虫调用requests库来获取API信息文档的url,然后通过BeautifulSoup库来解析url所在的网站,最后利用正则表达式来获取标签爬取API的对象、API函数方法以及API注释,然后将爬取的内容存储在数据库中;
(1-2)提取问答网站中Java项目的API推荐信息,提取的Q&A对中要包含Java标签,对提取后的问题进行筛选,首先问题的答案要包含API实体,保证数据的有效性,然后给问题本身的评分设定一个阈值,低于这个阈值的数据就剔除,并且它的答案的分数应为正,最后将提取的数据存储在数据库中。
其中,步骤2)的具体步骤如下:
(2-1)首先语句之间要进行分句,用标点符号进行分离,使用nltk包中的sent_tokenize方法进行分句;
(2-2)分词中删除标点符号时使用punctuation方法先找出所有的标点符号,然后使用replace方法用空格代替标点符号,并以空格切分字符串,形成单个单词,最后将所有的单词转化为小写;
(2-3)删除频率小于10的低频词和停用词;
(2-4)将缩写形式的单词改写成完整形式;
(2-5)对单词列表进行词性标记,使用nltk包中pos_tag()方法进行标记,并返回标记列表;
(2-6)最后使用snowballstemner()方法,还原在时态下和被动语态中出现的的‘ed’和‘ing’,恢复复数和第三人称单数的‘s’和‘es’,减少重复,并提取相似的词干。
其中,步骤3)中建立的模型模型结构分为三层:输入层、隐层和softmax层,其中,输入层输入的是onehot向量,在输入层和隐层之间有一个权重矩阵w,将隐层设置为300维特征,权重矩阵w和onehot向量进行相乘会得到一个300维特征向量,再通过wx+b函数,之后softmax,得到概率输出;
模型训练时设置参数如下:embedding_size:100,skip_window:5,num_skips:2,num_steps:100000,num_sampled:64,vocab_size:50000,learning_rate:0.0001,epoch:100,batch_size:100。
其中,步骤4)的具体步骤如下:
对于数据集里每个特征项mi,计算每个特征项mi在数据集中的词频TF,然后计算数据集中每个特征项mi的逆文档频率IDF,得到TF-IDF(mi)值,TF-IDF(mi)=TF*IDF,将每个特征项的TF-IDF(mi)值与步骤3)中的模型生成的词向量va进行加权结合,得到一个新的向量表示公式:
vb=va*TF-IDF(mi) (1);
进一步通过提取词性影响值和信息熵值对上述得到的新的向量再进行加权,对于每个特征项mi,如果这个特征项为名词,将其词性影响值设置为
POV(mi)=0.55;如果这个特征项为动词,将其词性影响值设置为POV(mi)=0.25;如果这个特征项为副词或者形容词,将其词性影响值设置为POV(mi)=0.15;除上述以外的词,将其词性影响值设置为POV(mi)=0.05;然后计算每个特征项的信息熵值P,P=log2n/H(mi),将提取到的词性影响值和信息熵值对上述得到的新的向量再进行加权,得到个新的向量表示公式:
vc=vb*POV(mi)*P (2);
最后对于数据集的每个文档使用特征项的加权向量表示:c={vc1,vc2,...,vcm}。
其中,步骤5)中,得到问题的加权词向量表示:
c’={vc1’,vc2’,...,vcn’}。
其中,步骤6)的具体步骤如下:
使用改进的WMD算法WCD算法计算两个文档之间的WCD距离并使用归一化的词频处理,根据WCD距离与相似度的相反关系,得出c和c’之间的相似度计算公式:
Figure BDA0002717376580000041
其中,λ为平衡因子,一般取值为1。
进一步,在API推荐中,使用相似度公式(3)进行三次相似度计算:
第一次相似度计算:需要进行计算的是需要查询的问题和数据库中提取的问答网站中问题的相似度,使用相似度计算公式得到的相似度记为Sima,然后按Sima排序得到top-10个与需要查询的问题最相关的问题列表,通过这十个问题列表中的答案得到相对应的API,即获得候选API列表;
第二次相似度计算:需要通过第一次计算后得到的候选API列表在有关API信息文档中找到对应的API描述信息,使用相似度计算公式计算需要查询的问题和候选API列表中API描述信息的相似度,记为Simb;
第三次相似度计算:为了避免Sima和Simb之间相差过大,采取Sima和Simb几何平均数作为最后的相似度得分,记为Simc;
Figure BDA0002717376580000042
最后按照Simc的分数排序来推荐Top-5个API。
本发明的上述技术方案的有益效果如下:本发明提供了一种基于WTP-WCD算法的API推荐方法,主要用于解决在软件开发中向用户推荐API的问题,能够有效辅助软件开发人员使用API来完成开发任务,具有较高的精确率和效率。
附图说明
图1为本发明中预处理的流程图;
图2为本发明中三种API推荐算法的结果图;
图3为本发明中两种模型建模时间的结果图;
图4为本发明中比较使用两种模型推荐API的结果图。
具体实施方式
为使本发明要解决的技术问题、技术方案和优点更加清楚,下面将结合附图及具体实施例进行详细描述。
本发明提供一种基于WTP-WCD算法的API推荐方法,包括如下步骤:
步骤1)、收集API数据集;具体步骤如下:
(1-1)收集API数据集来构造数据库:有关API信息文档通常都是以HTML格式存储在网站上,利用爬虫技术就可以爬取API相关内容。爬虫调用requests库来获取有关API信息文档的url,然后通过BeautifulSoup库来解析url所在的网站,最后利用正则表达式来获取标签爬取了API的对象、API函数方法以及API注释,然后将爬取的内容存储在数据库中;
(1-2)提取问答网站中Java项目的API推荐信息,提取的Q&A对中要包含Java标签,对提取后的问题还要进行筛选,首先问题的答案要包含API实体,这样从而保证了数据的有效性,然后给问题本身的评分设定一个阈值,低于这个阈值的数据就剔除,并且它的答案的分数应为正,最后将提取的数据存储在数据库中。
步骤2)、对数据集预处理;具体步骤如下:
(2-1)首先语句之间要进行分句,用标点符号进行分离,使用nltk包中的sent_tokenize方法进行分句;
(2-2)分词中删除标点符号时使用punctuation方法先找出所有的标点符号,然后使用replace方法用空格代替标点符号,并以空格切分字符串,形成单个单词,最后将所有的单词转化为小写;
(2-3)删除一些频率小于10的低频词和停用词,因为过于低频的词和停用词会对结果造成一些干扰;
(2-4)将缩写形式的单词改写成完整形式;
(2-5)对单词列表进行词性标记,使用nltk包中pos_tag()方法进行标记,并返回标记列表;
(2-6)最后使用snowballstemner()方法,还原了在时态下和被动语态中出现的的‘ed’和‘ing’,恢复复数和第三人称单数的‘s’和‘es’,减少重复,并提取了相似的词干。
步骤3)、建立模型,将数据进行向量化处理;
本步骤中,建立的模型模型结构分为三层:输入层、隐层和softmax层,其中,输入层输入的是onehot向量,在输入层和隐层之间有一个权重矩阵w,将隐层设置为300维特征,权重矩阵w和onehot向量进行相乘会得到一个300维特征向量,再通过wx+b函数,之后softmax,得到概率输出;
模型训练时设置参数如下:embedding_size:100,skip_window:5,num_skips:2,num_steps:100000,num_sampled:64,vocab_size:50000,learning_rate:0.0001,epoch:100,batch_size:100。
步骤4)、对生成的词向量进行加权处理;具体步骤如下:
对于数据集里每个特征项mi,计算每个特征项mi在数据集中的词频TF,然后计算数据集中每个特征项mi的逆文档频率IDF,得到TF-IDF(mi)值,TF-IDF(mi)=TF*IDF,将每个特征项的TF-IDF(mi)值与步骤3)中的模型生成的词向量va进行加权结合,得到一个新的向量表示公式:
vb=va*TF-IDF(mi) (1);
进一步通过提取词性影响值和信息熵值对上述得到的新的向量再进行加权,对于每个特征项mi,如果这个特征项为名词,将其词性影响值设置为
POV(mi)=0.55;如果这个特征项为动词,将其词性影响值设置为POV(mi)=0.25;如果这个特征项为副词或者形容词,将其词性影响值设置为POV(mi)=0.15;除上述以外的词,将其词性影响值设置为POV(mi)=0.05;然后计算每个特征项的信息熵值P,P=log2n/H(mi),将提取到的词性影响值和信息熵值对上述得到的新的向量再进行加权,得到个新的向量表示公式:
vc=vb*POV(mi)*P (2);
最后对于数据集的每个文档使用特征项的加权向量表示:c={vc1,vc2,...,vcm}。
步骤5)、对需要查询的问题内容同样进行步骤二、三、四处理操作;本步骤中,得到问题的加权词向量表示如下:
c’={vc1’,vc2’,...,vcn’}。
步骤6)、进行相似度计算;具体步骤如下:
使用改进的WMD算法WCD算法计算两个文档之间的WCD距离并使用归一化的词频处理,根据WCD距离与相似度的相反关系,得出c和c’之间的相似度计算公式:
Figure BDA0002717376580000071
其中,λ为平衡因子,一般取值为1。
在API推荐中,使用相似度公式(3)进行三次相似度计算:
第一次相似度计算:需要进行计算的是需要查询的问题和数据库中提取的问答网站中问题的相似度,使用相似度计算公式得到的相似度记为Sima,然后按Sima排序得到top-10个与需要查询的问题最相关的问题列表,通过这十个问题列表中的答案得到相对应的API,即获得候选API列表;
第二次相似度计算:需要通过第一次计算后得到的候选API列表在有关API信息文档中找到对应的API描述信息,使用相似度计算公式计算需要查询的问题和候选API列表中API描述信息的相似度,记为Simb;
第三次相似度计算:为了避免Sima和Simb之间相差过大,采取Sima和Simb几何平均数作为最后的相似度得分,记为Simc;
Figure BDA0002717376580000072
最后按照Simc的分数排序来推荐Top-5个API。
下面结合具体实施例进一步阐述本发明的技术方案。
从Stack Overflow(问答网站)公布的data dump数据集中收集了十万多条带有Java标签的问答对作为数据集,并对数据集进行筛选,提取的问答对中给问题本身的评分的阈值设定为6分,低于这个得分的把这条数据剔除掉,问题的答案中应该包含有API实体,并且答案的得分应该是正评分。通过这种筛选,保证了从Stack Overflow中获取数据的有效性。data dump数据集已XML形式保存,并使用python的xml.sax库提取数据存放在数据库中。
API帮助文档包含了详细的API信息,并且是以HTLM格式来存储在网站上的,利用爬虫技术爬取了Java SE8帮助文档中的API信息,爬取了API的对象,API函数方法,以及API注释,然后将爬取的内容存储在数据库中。
将API帮助文档中的描述进行如图1流程所示的预处理。预处理的作用有两个方面:一个是减少数据的噪声以及干扰数据的影响,使数据规整;二是通过预处理后的数据进行数据向量化能提高效率。
数据预处理后进行词嵌入建模,词嵌入模型选择Word2Vec模型,Word2Vec模型中的参数配置:embedding_size:100,skip_window:5,num_skips:2,num_steps:100000,num_sampled:64,vocab_size:50000,learning_rate:0.0001,epoch:100,batch_size:100。将数据处理成词嵌入模型所需要的输入格式,然后进行模型训练。建模时间约50分钟。
从Stack Overflow随机抽取一个Java编程问题:How to initialise an arrayin Java with a constant value efficiently?然后输入这个问题,输入后首先对这个问题进行预处理,预处理之后的结果为:“'how','initialis','array','java','constant','valu','effici'”,再使用Word2Vec模型计算相似度,第一次计算的是需要查询的问题和Stack Overflow中的问题的相似度计算,得到了Top-10个候选问题如下表。
Figure BDA0002717376580000081
Figure BDA0002717376580000091
在通过这十个问题列表中的答案得到相对应的API信息,即获得候选API列表。然后在API帮助文档中查询到对应的API描述信息,计算出需要查询的问题和API帮助文档中所对应的API描述信息的相似度得分,最后调和这两个相似度得分得到最终的相似度得分和Top-5条API推荐如下表。
Figure BDA0002717376580000092
下面通过评价指标验证本发明的有效性。
实施例的评价指标是平均倒数排名MRR和平均准确率均值MAP。
MRR是一个国际上通用的对搜索算法进行评价的机制,即第一个结果匹配,分数为1,第二个匹配分数为0.5,第n个匹配分数为1/n,如果没有匹配的句子分数为0。最终的分数为所有得分之和,它的计算公式为:
Figure BDA0002717376580000093
其中,|Q|是查询的个数,ranki是第i个查询。
MAP是计算查询多个问题时的查询准确率的均值。平均准确率AP,假使当我们使用google搜索某个关键词,返回了10个结果。当然最好的情况是这10个结果都是我们想要的相关信息。但是假如只有部分是相关的,比如5个,那么这5个结果如果被显示的比较靠前也是一个相对不错的结果。但是如果这个5个相关信息从第6个返回结果才开始出现,那么这种情况便是比较差的。
这便是AP所反映的指标。
Figure BDA0002717376580000094
其中,i为检索结果中的位置,P(i)为前i个结果的准确率,rel(i)表示为第i个位置的文档是否相关,相关就为1,不相关就为0。
MAP表示所有查询u的AP再取均值,计算公式如下:
Figure BDA0002717376580000101
使用不同的相似度算法来对比对API推荐的影响。WTP-WCD算法对比的相似度算法有VSM-TF-IDF方法(向量空间模型)和WV-TF-IDF方法(Word2Vec模型)。
三种相似度算法的推荐结果如图2所示,可以发现VSM-TF-IDF算法的推荐结果没有另外两种算法好,这是因为VSM-TF-IDF算法使用的是空间向量模型,这就使得VSM-TF-IDF算法不考虑单词中的语义信息,仅仅考虑依据关键词的匹配来完成相似度的计算,导致这种算法就有很大的误差。
WTP-WCD算法比WV-TF-IDF算法在MRR和MAP评价度量上分别提高了0.9%和1.5%。这两种算法都使用的是Word2Vec模型,并且也都考虑了TF-IDF值。而WTP-WCD算法中因为考虑了词性影响值和信息熵值对TF-IDF算法中的IDF值进行了加权,因此提高了搜索性能,从而也验证了WTP-WCD算法的有效性。
此外,API推荐对问题完成查询的响应时间,是由相似度算法决定的。通过实验可以得到使用WTP-WCD算法和WV-TF-IDF算法的平均响应时间为3.5秒和2.0秒。虽然来说WTP-WCD算法在相似度计算上比WV-TF-IDF算法多花费了35%的时间,但是考虑到使用WTP-WCD算法推荐API的精确性上面,多花费35%的相似度计算时间对用户来说是可以接受的。
WTP-WCD算法使用的词嵌入技术是基于Word2Vec模型的。而现在有很多种词嵌入模型,如GloVe词嵌入模型,因此可以使用GloVe模型来当做使用Word2Vec模型的比较对象。
首先,将Stack Overflow中的问题作为建模的数据库,数据库中一共包含346324个问题,然后对问题进行预处理操作,下一步分别使用Word2Vec模型和GloVe模型来建模,让其转化为维数相同的词向量,设置为300维度,两种模型的建模时间的结果如图3所示。
然后比较这两种模型对API推荐的影响,得出了两种词嵌入模型的结果如图4所示。
可以发现使用了Word2Vec模型的API推荐效果比使用GloVe模型的推荐效果结果要更好。使用Word2Vec模型在MAP和MRR两个度量的结果上面分别比使用GloVe模型的MAP和MRR提高了2.2%和2.0%。在训练模型时,尽管GloVe模型在训练的时间上要少于Word2Vec模型,但是使用Word2Vec模型在推荐API上精确度更高,因此选择了基于Word2Vec模型来进行词嵌入。
本发明相关的叙词表如下:
Figure BDA0002717376580000111
Figure BDA0002717376580000121
以上所述是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明所述原理的前提下,还可以作出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。

Claims (8)

1.一种基于WTP-WCD算法的API推荐方法,其特征在于,包括如下步骤:
步骤1)、收集API数据集;
步骤2)、对数据集预处理;
步骤3)、建立模型,将数据进行向量化处理;
步骤4)、对生成的词向量进行加权处理;
步骤5)、对需要查询的问题内容同样进行步骤二、三、四处理操作;
步骤6)、进行相似度计算。
2.根据权利要求1所述的基于WTP-WCD算法的API推荐方法,其特征在于,步骤1)的具体步骤如下:
(1-1)收集API数据集来构造数据库:爬虫调用requests库来获取API信息文档的url,然后通过BeautifulSoup库来解析url所在的网站,最后利用正则表达式来获取标签爬取API的对象、API函数方法以及API注释,然后将爬取的内容存储在数据库中;
(1-2)提取问答网站中Java项目的API推荐信息,提取的Q&A对中要包含Java标签,对提取后的问题进行筛选,首先问题的答案要包含API实体,保证数据的有效性,然后给问题本身的评分设定一个阈值,低于这个阈值的数据就剔除,并且它的答案的分数应为正,最后将提取的数据存储在数据库中。
3.根据权利要求1所述的基于WTP-WCD算法的API推荐方法,其特征在于,步骤2)的具体步骤如下:
(2-1)首先语句之间要进行分句,用标点符号进行分离,使用nltk包中的sent_tokenize方法进行分句;
(2-2)分词中删除标点符号时使用punctuation方法先找出所有的标点符号,然后使用replace方法用空格代替标点符号,并以空格切分字符串,形成单个单词,最后将所有的单词转化为小写;
(2-3)删除频率小于10的低频词和停用词;
(2-4)将缩写形式的单词改写成完整形式;
(2-5)对单词列表进行词性标记,使用nltk包中pos_tag()方法进行标记,并返回标记列表;
(2-6)最后使用snowballstemner()方法,还原在时态下和被动语态中出现的的‘ed’和‘ing’,恢复复数和第三人称单数的‘s’和‘es’,减少重复,并提取相似的词干。
4.根据权利要求1所述的基于WTP-WCD算法的API推荐方法,其特征在于,步骤3)中建立的模型模型结构分为三层:输入层、隐层和softmax层,其中,输入层输入的是onehot向量,在输入层和隐层之间有一个权重矩阵w,将隐层设置为300维特征,权重矩阵w和onehot向量进行相乘会得到一个300维特征向量,再通过wx+b函数,之后softmax,得到概率输出;
模型训练时设置参数如下:embedding_size:100,skip_window:5,num_skips:2,num_steps:100000,num_sampled:64,vocab_size:50000,learning_rate:0.0001,epoch:100,batch_size:100。
5.根据权利要求1所述的基于WTP-WCD算法的API推荐方法,其特征在于,步骤4)的具体步骤如下:
对于数据集里每个特征项mi,计算每个特征项mi在数据集中的词频TF,然后计算数据集中每个特征项mi的逆文档频率IDF,得到TF-IDF(mi)值,TF-IDF(mi)=TF*IDF,将每个特征项的TF-IDF(mi)值与步骤3)中的模型生成的词向量va进行加权结合,得到一个新的向量表示公式:
vb=va*TF-IDF(mi) (1);
进一步通过提取词性影响值和信息熵值对上述得到的新的向量再进行加权,对于每个特征项mi,如果这个特征项为名词,将其词性影响值设置为POV(mi)=0.55;如果这个特征项为动词,将其词性影响值设置为POV(mi)=0.25;如果这个特征项为副词或者形容词,将其词性影响值设置为POV(mi)=0.15;除上述以外的词,将其词性影响值设置为POV(mi)=0.05;然后计算每个特征项的信息熵值P,P=log2n/H(mi),将提取到的词性影响值和信息熵值对上述得到的新的向量再进行加权,得到个新的向量表示公式:
vc=vb*POV(mi)*P (2);
最后对于数据集的每个文档使用特征项的加权向量表示:c={vc1,vc2,...,vcm}。
6.根据权利要求1所述的基于WTP-WCD算法的API推荐方法,其特征在于,步骤5)中,得到问题的加权词向量表示:
c’={vc1’,vc2’,...,vcn’}。
7.根据权利要求1所述的基于WTP-WCD算法的API推荐方法,其特征在于,步骤6)的具体步骤如下:
使用改进的WMD算法WCD算法计算两个文档之间的WCD距离并使用归一化的词频处理,根据WCD距离与相似度的相反关系,得出c和c’之间的相似度计算公式:
Figure FDA0002717376570000031
其中,λ为平衡因子,一般取值为1。
8.根据权利要求7所述的基于WTP-WCD算法的API推荐方法,其特征在于,在API推荐中,使用相似度公式(3)进行三次相似度计算:
第一次相似度计算:需要进行计算的是需要查询的问题和数据库中提取的问答网站中问题的相似度,使用相似度计算公式得到的相似度记为Sima,然后按Sima排序得到top-10个与需要查询的问题最相关的问题列表,通过这十个问题列表中的答案得到相对应的API,即获得候选API列表;
第二次相似度计算:需要通过第一次计算后得到的候选API列表在有关API信息文档中找到对应的API描述信息,使用相似度计算公式计算需要查询的问题和候选API列表中API描述信息的相似度,记为Simb;
第三次相似度计算:采取Sima和Simb几何平均数作为最后的相似度得分,记为Simc;
Figure FDA0002717376570000032
最后按照Simc的分数排序来推荐Top-5个API。
CN202011078740.9A 2020-10-10 2020-10-10 一种基于wtp-wcd算法的api推荐方法 Pending CN112214511A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202011078740.9A CN112214511A (zh) 2020-10-10 2020-10-10 一种基于wtp-wcd算法的api推荐方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202011078740.9A CN112214511A (zh) 2020-10-10 2020-10-10 一种基于wtp-wcd算法的api推荐方法

Publications (1)

Publication Number Publication Date
CN112214511A true CN112214511A (zh) 2021-01-12

Family

ID=74053376

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011078740.9A Pending CN112214511A (zh) 2020-10-10 2020-10-10 一种基于wtp-wcd算法的api推荐方法

Country Status (1)

Country Link
CN (1) CN112214511A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114201669A (zh) * 2021-11-19 2022-03-18 西安电子科技大学 一种基于词嵌入与协同过滤技术的api推荐方法

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107562717A (zh) * 2017-07-24 2018-01-09 南京邮电大学 一种基于Word2Vec与词共现相结合的文本关键词抽取方法
CN108763477A (zh) * 2018-05-29 2018-11-06 厦门快商通信息技术有限公司 一种短文本分类方法及系统
CN109165291A (zh) * 2018-06-29 2019-01-08 厦门快商通信息技术有限公司 一种文本匹配方法及电子设备
CN110990003A (zh) * 2019-11-15 2020-04-10 南通大学 一种基于词嵌入技术的api推荐方法
US20200250376A1 (en) * 2019-12-13 2020-08-06 Beijing Xiaomi Intelligent Technology Co., Ltd. Keyword extraction method, keyword extraction device and computer-readable storage medium

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107562717A (zh) * 2017-07-24 2018-01-09 南京邮电大学 一种基于Word2Vec与词共现相结合的文本关键词抽取方法
CN108763477A (zh) * 2018-05-29 2018-11-06 厦门快商通信息技术有限公司 一种短文本分类方法及系统
CN109165291A (zh) * 2018-06-29 2019-01-08 厦门快商通信息技术有限公司 一种文本匹配方法及电子设备
CN110990003A (zh) * 2019-11-15 2020-04-10 南通大学 一种基于词嵌入技术的api推荐方法
US20200250376A1 (en) * 2019-12-13 2020-08-06 Beijing Xiaomi Intelligent Technology Co., Ltd. Keyword extraction method, keyword extraction device and computer-readable storage medium

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
刘拼拼: "领域问答系统中问句相似度计算方法研究", 《中国优秀博硕士学位论文全文数据库(硕士)信息科技辑》 *
李航等: "融合多特征的TextRank关键词抽取方法", 《情报杂志》 *

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114201669A (zh) * 2021-11-19 2022-03-18 西安电子科技大学 一种基于词嵌入与协同过滤技术的api推荐方法
CN114201669B (zh) * 2021-11-19 2023-02-03 西安电子科技大学 一种基于词嵌入与协同过滤技术的api推荐方法

Similar Documents

Publication Publication Date Title
CN110442760B (zh) 一种问答检索系统的同义词挖掘方法及装置
CN110929038B (zh) 基于知识图谱的实体链接方法、装置、设备和存储介质
CN106649818B (zh) 应用搜索意图的识别方法、装置、应用搜索方法和服务器
JP5391633B2 (ja) オントロジー空間を規定するタームの推奨
JP3882048B2 (ja) 質問応答システムおよび質問応答処理方法
CN108280114B (zh) 一种基于深度学习的用户文献阅读兴趣分析方法
US9009134B2 (en) Named entity recognition in query
US8346701B2 (en) Answer ranking in community question-answering sites
CN111444320A (zh) 文本检索方法、装置、计算机设备和存储介质
JP5710581B2 (ja) 質問応答装置、方法、及びプログラム
CN110888991B (zh) 一种弱标注环境下的分段式语义标注方法
CN107844533A (zh) 一种智能问答系统及分析方法
JP2009093650A (ja) 文書の段落分析によるその文書のタグの選択
CN106708929B (zh) 视频节目的搜索方法和装置
WO2020233344A1 (zh) 一种搜索方法、装置及存储介质
CN112989208B (zh) 一种信息推荐方法、装置、电子设备及存储介质
CN112307182B (zh) 一种基于问答系统的伪相关反馈的扩展查询方法
CN103646099A (zh) 一种基于多层图的论文推荐方法
CN110866102A (zh) 检索处理方法
WO2021112984A1 (en) Feature and context based search result generation
CN111325018A (zh) 一种基于web检索和新词发现的领域词典构建方法
CN111753167B (zh) 搜索处理方法、装置、计算机设备和介质
CN113761890A (zh) 一种基于bert上下文感知的多层级语义信息检索方法
CN106570196B (zh) 视频节目的搜索方法和装置
KR20120038418A (ko) 탐색 방법 및 디바이스

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