CN110929165A - 一种基于JAVA Doc知识图谱的多维评估推荐方法 - Google Patents
一种基于JAVA Doc知识图谱的多维评估推荐方法 Download PDFInfo
- Publication number
- CN110929165A CN110929165A CN201911298005.6A CN201911298005A CN110929165A CN 110929165 A CN110929165 A CN 110929165A CN 201911298005 A CN201911298005 A CN 201911298005A CN 110929165 A CN110929165 A CN 110929165A
- Authority
- CN
- China
- Prior art keywords
- class
- data
- recommendation
- model
- establishing
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/953—Querying, e.g. by the use of web search engines
- G06F16/9535—Search customisation based on user profiles and personalisation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/28—Databases characterised by their database models, e.g. relational or object models
- G06F16/284—Relational databases
- G06F16/288—Entity relationship models
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/951—Indexing; Web crawling techniques
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/23—Clustering techniques
- G06F18/232—Non-hierarchical techniques
- G06F18/2321—Non-hierarchical techniques using statistics or function optimisation, e.g. modelling of probability density functions
- G06F18/23213—Non-hierarchical techniques using statistics or function optimisation, e.g. modelling of probability density functions with fixed number of clusters, e.g. K-means clustering
Landscapes
- Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Life Sciences & Earth Sciences (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Evolutionary Biology (AREA)
- Evolutionary Computation (AREA)
- Bioinformatics & Computational Biology (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Artificial Intelligence (AREA)
- Probability & Statistics with Applications (AREA)
- Stored Programmes (AREA)
Abstract
本发明提供了一种基于Java Doc知识图谱的多维评估推荐方法,涉及数据库推荐技术领域,其特征在于,所述方法包括:通过对Java Doc文档的爬取以及分析建立一个Java类知识图谱,根据所述建立好的Java Doc知识图谱,通过类与外界的关系分析实体间的路径关系,建立推荐函数对数据进行挖掘,通过类和类之间的关系确定类推荐域;对类之间进行聚类,将聚类结果作为所述推荐域的补集;对所述推荐域的候选项进行量化评分,根据所述评分建立综合量化评分模型。该方法引入了知识图谱技术来构建API之间的联系,能够在API推荐时准确率更高、响应速度更快。
Description
技术领域
本发明涉及数据库推荐技术领域,特别是涉及一种基于Java Doc知识图谱的多维评估推荐方法。
背景技术
目前,公开了一种API推荐得方法,包括建立知识库、问题和回答模式抽取、查询语句解释、文档搜索、答案排序五个步骤、该方法可以实现根据相关问题推荐相似API的效果,但该方法的准确度较低。该方法存在的问题是在推荐相似API的时候只考虑到了API文档描述上的相似,而没有充分利用API在其本身组织结构上的内在联系。
发明内容
本发明提供一种基于Java Doc知识图谱的多维评估推荐方法,通过建立知识图谱来构建API之间的联系,再通过相似内置类推荐算法生成推荐域,减少了推荐的数据量,来提高API推荐时的准确率和响应速度。
本发明采用的技术方案如下:建立Java Doc的知识图谱,用Python中的BeautifulSoup工具包来爬取数据,之后对爬取的数据进行筛选,知识扩充,知识纠错,得到一个数据集;通过对数据的分析以及遍历进行类模型的建立,接口模型的建立和整体RDF模型的建立,并将数据存入图数据库,数据存入数据库后进行知识图谱的可视化。
根据建立好的Java Doc知识图谱,通过类与外界的关系分析实体间的路径关系,建立推荐函数对数据进行挖掘,通过类和类之间的关系确定推荐的推荐域。
通过基于文本的K-means聚类方法进行类之间的聚类,并将结果作为对知识图谱挖掘的推荐域的补集。
基于三个评分标准:
1.通过Page Rank算法进行衡量类和类接口的关系;
2.类和类在知识图谱中的亲密中心性;
3.类在知识图谱中的中介中心性;
为每一个推荐域的候选项进行评分,建立综合量化评分模型,将以上多个维度同构模型进行相似度量化评分,并将推荐域中类的量化评分返回给用户。
优选的,所述数据获取采用Python中的Beautiful Soup工具包爬取格式文件为HTML的Java Doc中的数据,通过对头部标签实现接口标签和直接子类标签进行爬取获得内部数据。
优选的,所述HTML文件选取Java Doc中的java.util包进行数据获取。
优选的,所述数据规范化,通过将内容和标题的标签一通抓取,并记录上一个出现的标题,按标题将内容存入相应数组,并利用过滤器进行数据处理。
优选的,所述知识纠错,运用正则表达式处理类名称书写不一致的问题,公式如下:
CN={X|X∈prePart(CN)}
其中CN为待匹配类名,X为应匹配的类组,prePart为类目匹配函数。
优选的,所述类模型的建立包括:
1.类和类内部成分关系模型建立,将类中最小的单位作为节点使得模型变为1-N的关系结构;
2.类和外部关系模型的建立,为降低每个节点的复杂度,针对节点的关系建模为单项向量,将类和类之间的继承和子类关系,类和接口的实现和扩展关系通过如下公式定义:
X:Class A,Y:Class B,I:Interface
公式如下:
优选的,所述接口模型的建立公式如下:
X:Interface A,Y:Interface B,I:Class A
其中X表示接口A,Y表示接口B,I表示类A。
优选的,知识图谱的存储选取Neo4J作为图形数据库,它可以通过RDF结构来表示所有实体和实体间的关系,并且可以灵活的对数据节点进行修改,删除和添加。Neo4j通过图的模式匹配快速地位到本发明要找的子图在通过深度和广度遍历子图找到所需的节点,并全面支持ACID的数据库操作。
优选的,所述推荐域通过实体的外在联系来确定,定义了relate函数:寻找相似功能和属性的类,为了确保推荐域的全面性,只并入了从输出类的下一层子类,和上一层父类,并将同父节点的所有直系子类也并入到了推荐域中,即:
X:Class A Y:Class B M:Class C Z:Class D N:Class E S:Class F
结果形成了一个推荐函数的有限集合T:T={X|X∈relate(input Class)}。
区别现有的技术的情况,本发明的有益效果是:本发明通过对HTML文件中标签的锁定以及遍历,通过Python对数据的爬取,获得了类名以及类和外部间的关系,获取了类内部的方法及其属性,建立了RDF模型,构建了Java Doc的知识图谱,更好的利用了API在其本身组织结构上的内在联系,根据建立好的知识图谱,能够通过用户所输入的函数名称快速通过模型中节点之间的联系生成推荐域,减少了可推荐的数据量,再通过对推荐域数据的量化评分进行推荐,提高了API推荐的准确率和响应速度。
附图说明
图1是本发明的流程图;
具体实施方式
在下面的描述中对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本发明的一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明的实施例提供了一种基于Java Doc知识图谱的多维评估推荐方法,包括知识图谱的建立与基于知识图谱的相似内置类推荐算法。
如图1所示知识图谱的建立包括以下步骤:
数据抽取,数据规范化,知识扩充,知识纠错,存储代码知识图谱。
1.数据抽取:采用Python中的Beautiful Soup工具包爬取数据了,选取了JavaDoc中的java.util包进行数据获取,通过对Java Doc中的头部标签以及实现接口标签<dt>Direct Known Subclasses<dt>,<dt>ALL Implemented<dt>,直接子类标签进行爬取,获取其内部数据,通过爬虫获得所有包含在文档中的实体。
2.数据规范化:对于ArrayList类所实现的接口和父类在类声明和类介绍部分重复出现的这类情况本发明只对每一个出现过的类和接口的名称记录一次,而不是记录多次。对于标签多次嵌套导致定位错误或者多次定位的情况,通过正则表达式筛选并过滤。
3.知识纠错:对于类名称书写不一致问题,例如ArrayList<T>和ArrayList,通过运用正则表达式对其前半部分进行对比,将其纠正到同一类的名称下,公式如下:
CN={X|X∈prePart(CN)}
其中CN为待匹配类名,X为应匹配的类组,prePart为类目匹配函数。
4.存储代码知识图谱:对获取的数据按照RDF模型存入知识库。本发明实施例采用了Neo4J作为知识图谱的存储数据库。在数据导入的过程中使用了py2neo的工具包进行数据库和程序的链接以及数据库操作整个数据输入的过程就是知识图谱建立的过程。知识图谱的建立分为了两个部分:第一次遍历数据进行了类和接口的独立节点的建立,将类中最小的单位作为一个节点,使得模型成为1-N的关系结构,通过公式:
X:Class A,Y:Class B,I:Interface
降低了检索过程中的时间复杂度和每个节点的复杂度。
第二次遍历过程建立类与类,类与接口,接口与接口之间的联系,公式如下:
X:Interface A,Y:Interface B,I:Class A
其中,X表示接口A,Y表示接口B,I表示类A。
本发明的实施例在建立完知识图谱后,提供了一种基于知识图谱的相似内置类推荐算法,内容如下:
根据Java中类之间的关系定义relate函数:
X:Class A Y:Class B M:Class C Z:Class D N:Class E S:Class F
通过relate函数找到相似功能和属性的类,根据用户输入的函数名称,通过所建立的模型中节点之间的联系能够准确快速的确定一个相似函数的推荐域:T={X|X∈relate(input Class)},即类的推荐域,缩小了所推荐API的数据量,提高了API推荐的响应速度。
为从推荐域中获得期望的类推荐,针对类建立了一个基于图论的评分模型,对推荐域中的所有类和输入类进行相似度评分,选取了亲密中心性、中介中心性和PageRank算法能够充分运用代码图谱优势的特征来进行相似度评分,最终给用户一个量化的判断结果提高了推荐的准确度。
本发明并不局限于前述的具体实施方式。本发明扩展到任何在本说明书中披露的新特征或任何新的组合,以及披露的任一新的方法或过程的步骤或任何新的组合。
Claims (10)
1.一种基于JAVA Doc知识图谱的多维评估推荐方法,其特征在于,所述方法包括:
通过对Java Doc文档的爬取以及分析建立一个Java类知识图谱,所述Java Doc是HTML格式的静态网页文件;
根据所述建立好的Java Doc知识图谱,通过类与外界的关系分析实体间的路径关系,建立推荐函数对数据进行挖掘,通过类和类之间的关系确定类推荐域;
对类之间进行聚类,将聚类结果作为所述推荐域的补集;
对所述推荐域的候选项进行量化评分,根据所述评分建立综合量化评分模型。
2.如权利要求1所述的基于JAVA Doc知识图谱的多维评估推荐方法,其特征在于,所述知识图谱的建立包括:
数据的抽取:Java Doc文档的爬取采用Python中的Beautiful Soup工具包来获取内容信息;
数据规范化:对获取的原始数据中存在的大量杂质及噪音进行过滤处理,知识纠错;
建立RDF模型:分析数据建立数据的RDF模型,包括类模型的建立,接口模型的建立以及整体RDF结构模型的建立;
数据可视化:将数据以RDF的形式存入数据库系统中。
3.如权利要求2所述的基于JAVA Doc知识图谱的多维评估推荐方法,其特征在于,所述内容信息包括:类所包含的所有方法,方法的描述,声明,参数,返回值,抛出异常等所有包含在HTML中的数据,类名以及类和外部间的关系,类内部的方法及其属性。
4.如权利要求2所述的基于JAVA Doc知识图谱的多维评估推荐方法,其特征在于,所述杂质包括:
类的声明中所包含实现接口和继承父类以及拥有子类的信息存在重复出现的情况;
由于HTML文件中标签的重复出现,导致在获取某一特定位置的内容会出现定位错误或者多次定位的情况;
由于有些函数不存在参数或者异常,但有些函数却存在多个参数和异常,在HTML中每一个参数和异常都以标签的形式不定次数,不定位置的出现;
所述知识纠错是通过正则表达式对类名称书写不一致的问题进行纠正。
5.如权利要求2所述的基于JAVA Doc知识图谱的多维评估推荐方法,其特征在于,所述类模型的建立包括:
类和类内部成分的关系模型建立:首先建立类中方法的数据模型,将类中最小的单位作为一个节点,定义每个节点的标签、属性和内容以及节点和节点之间关系的标签与内容,对每一个数据单元都建立自己的节点,使每个数据都拥有自己的特性及内容,使得模型变为了一个1-N的关系结构,在建立完类中方法的数据模型后,根据类中包含的属性开始建立类本体的模型;
类和类外部关系模型的建立:类和类的关系分为继承和子类,类和接口的关系分为实现和扩展,对类节点和其它节点的外部关系建模为单项向量,降低了检索过程中的时间复杂度。
6.如权利要求2所述的基于JAVA Doc知识图谱的多维评估推荐方法,其特征在于,所述接口模型的建立,根据接口和接口之间的继承关系以及接口和类的实现关系建模。
7.如权利要求2所述的基于JAVA Doc知识图谱的多维评估推荐方法,其特征在于,所述整体RDF结构模型的建立,对节点之间进行组合,来更好的分析整个建模的效率和完整性。
8.如权利要求2所述的基于JAVA Doc知识图谱的多维评估推荐方法,其特征在于,所述数据可视化是将数据按照RDF模型存入知识图谱的数据库,在进行数据导入的过程中使用py2neo的工具包进行数据库和程序的链接以及数据库操作。
9.如权利要求1所述的基于JAVA Doc知识图谱的多维评估推荐方法,其特征在于,所述知识图谱建立的过程就是数据导入的过程,通过分为独立节点的建立和节点关系的建立两个部分避免了重复节点的产生和关系节点的缺失。
10.如权利要求1所述的基于JAVA Doc知识图谱的多维评估推荐方法,其特征在于,所述推荐域通过实体的外在联系确定,建立一个推荐函数的有限集合,根据用户输入的函数名称来确定一个相似函数的推荐域,所述推荐域包括了与输入类通过一层的类,共同父类和同一层的下一层子类,所述实体的外在联系通过定义的relate函数确定。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911298005.6A CN110929165A (zh) | 2019-12-17 | 2019-12-17 | 一种基于JAVA Doc知识图谱的多维评估推荐方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911298005.6A CN110929165A (zh) | 2019-12-17 | 2019-12-17 | 一种基于JAVA Doc知识图谱的多维评估推荐方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN110929165A true CN110929165A (zh) | 2020-03-27 |
Family
ID=69863916
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911298005.6A Pending CN110929165A (zh) | 2019-12-17 | 2019-12-17 | 一种基于JAVA Doc知识图谱的多维评估推荐方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110929165A (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111737471A (zh) * | 2020-06-28 | 2020-10-02 | 中国农业科学院农业信息研究所 | 一种基于知识图谱的档案管理模型构建方法及系统 |
CN111797296A (zh) * | 2020-07-08 | 2020-10-20 | 中国人民解放军军事科学院军事医学研究院 | 基于网络爬取的毒物-靶标文献知识挖掘方法及系统 |
CN112329964A (zh) * | 2020-11-24 | 2021-02-05 | 北京百度网讯科技有限公司 | 用于推送信息的方法、装置、设备以及存储介质 |
CN112927793A (zh) * | 2021-01-26 | 2021-06-08 | 天津大学 | 基于Web的意识障碍脑电数据分析系统 |
CN113312038A (zh) * | 2021-06-18 | 2021-08-27 | 浪潮云信息技术股份公司 | 一种生成Java代码类继承结构的实现方法 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110874431A (zh) * | 2019-11-20 | 2020-03-10 | 云南财经大学 | 基于JAVA Doc知识图谱的多维评估推荐方法 |
-
2019
- 2019-12-17 CN CN201911298005.6A patent/CN110929165A/zh active Pending
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110874431A (zh) * | 2019-11-20 | 2020-03-10 | 云南财经大学 | 基于JAVA Doc知识图谱的多维评估推荐方法 |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111737471A (zh) * | 2020-06-28 | 2020-10-02 | 中国农业科学院农业信息研究所 | 一种基于知识图谱的档案管理模型构建方法及系统 |
CN111737471B (zh) * | 2020-06-28 | 2023-10-13 | 中国农业科学院农业信息研究所 | 一种基于知识图谱的档案管理模型构建方法及系统 |
CN111797296A (zh) * | 2020-07-08 | 2020-10-20 | 中国人民解放军军事科学院军事医学研究院 | 基于网络爬取的毒物-靶标文献知识挖掘方法及系统 |
CN111797296B (zh) * | 2020-07-08 | 2024-04-09 | 中国人民解放军军事科学院军事医学研究院 | 基于网络爬取的毒物-靶标文献知识挖掘方法及系统 |
CN112329964A (zh) * | 2020-11-24 | 2021-02-05 | 北京百度网讯科技有限公司 | 用于推送信息的方法、装置、设备以及存储介质 |
CN112329964B (zh) * | 2020-11-24 | 2024-03-29 | 北京百度网讯科技有限公司 | 用于推送信息的方法、装置、设备以及存储介质 |
CN112927793A (zh) * | 2021-01-26 | 2021-06-08 | 天津大学 | 基于Web的意识障碍脑电数据分析系统 |
CN113312038A (zh) * | 2021-06-18 | 2021-08-27 | 浪潮云信息技术股份公司 | 一种生成Java代码类继承结构的实现方法 |
CN113312038B (zh) * | 2021-06-18 | 2022-05-31 | 浪潮云信息技术股份公司 | 一种生成Java代码类继承结构的实现方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110929165A (zh) | 一种基于JAVA Doc知识图谱的多维评估推荐方法 | |
Zhai et al. | Web data extraction based on partial tree alignment | |
JP4637113B2 (ja) | 階層データの好ましいビューを構築するための方法 | |
Pivk et al. | Transforming arbitrary tables into logical form with TARTAR | |
Wang et al. | Querying business process model repositories: A survey of current approaches and issues | |
CN110472068A (zh) | 基于异构分布式知识图谱的大数据处理方法、设备及介质 | |
TW201250492A (en) | Method and system of extracting web page information | |
CN109582831B (zh) | 一种支持非结构化数据存储与查询的图数据库管理系统 | |
CN111488406B (zh) | 一种图数据库管理方法 | |
Fumarola et al. | Extracting general lists from web documents: A hybrid approach | |
US20060161525A1 (en) | Method and system for supporting structured aggregation operations on semi-structured data | |
US20040078355A1 (en) | Information management system | |
Vrgoc et al. | Millenniumdb: A persistent, open-source, graph database | |
Omari et al. | Cross-supervised synthesis of web-crawlers | |
CN110874431B (zh) | 基于JAVA Doc知识图谱的多维评估推荐方法 | |
Wu et al. | Modeling and extracting deep-web query interfaces | |
Ghrab et al. | Topograph: an end-to-end framework to build and analyze graph cubes | |
Wu et al. | Leveraging double simulation to efficiently evaluate hybrid patterns on data graphs | |
Liu et al. | Automatically extracting user reviews from forum sites | |
Elmasri et al. | Conceptual modeling for customized XML schemas | |
CN113360496B (zh) | 一种构建元数据标签库的方法及装置 | |
US11416511B2 (en) | Method, apparatus, and computer-readable medium for extracting a subset from a database | |
CN104537047A (zh) | 一种基于Lucene的服装基样板检索系统 | |
JP2002202973A (ja) | 構造化文書管理装置 | |
Goyal | Qp-subdue: Processing queries over graph databases |
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 | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20200327 |