CN111309305B - 面向智能合约的代码自动推荐方法、系统、计算机设备和存储介质 - Google Patents

面向智能合约的代码自动推荐方法、系统、计算机设备和存储介质 Download PDF

Info

Publication number
CN111309305B
CN111309305B CN202010087774.8A CN202010087774A CN111309305B CN 111309305 B CN111309305 B CN 111309305B CN 202010087774 A CN202010087774 A CN 202010087774A CN 111309305 B CN111309305 B CN 111309305B
Authority
CN
China
Prior art keywords
intelligent contract
code
description information
relation
extracting
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
CN202010087774.8A
Other languages
English (en)
Other versions
CN111309305A (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.)
Yangzhou University
Original Assignee
Yangzhou 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 Yangzhou University filed Critical Yangzhou University
Priority to CN202010087774.8A priority Critical patent/CN111309305B/zh
Publication of CN111309305A publication Critical patent/CN111309305A/zh
Application granted granted Critical
Publication of CN111309305B publication Critical patent/CN111309305B/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/30Creation or generation of source code
    • G06F8/31Programming languages or programming paradigms
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q40/00Finance; Insurance; Tax strategies; Processing of corporate or income taxes
    • G06Q40/04Trading; Exchange, e.g. stocks, commodities, derivatives or currency exchange
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Business, Economics & Management (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Accounting & Taxation (AREA)
  • Finance (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Development Economics (AREA)
  • General Business, Economics & Management (AREA)
  • Technology Law (AREA)
  • Strategic Management (AREA)
  • Computing Systems (AREA)
  • Marketing (AREA)
  • Economics (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

本发明公开了一种面向智能合约的代码自动推荐方法、系统、计算机设备和存储介质,方法包括:采集智能合约,获取智能合约描述信息以及代码;对智能合约描述信息进行自然语言预处理;抽取智能合约描述信息的动名词短语;识别智能合约描述信息的依存关系,根据依存关系并结合动名词短语构造智能合约描述信息的关系三元组;提取智能合约代码的属性,由属性和关系三元组建立智能合约与代码的映射匹配,构建智能合约映射库;针对新的智能合约描述,查询智能合约映射库,获取为新的智能合约描述推荐的代码。本发明从智能合约描述语言本身的关系和代码属性两方面进行代码的匹配和推荐,提高了智能合约编程过程中代码推荐的准确性。

Description

面向智能合约的代码自动推荐方法、系统、计算机设备和存储 介质
技术领域
本发明属于软件开发领域,具体涉及面向区块链应用中智能合约的代码自动推荐技术领域,特别涉及一种面向智能合约的代码自动推荐方法、系统、计算机设备和存储介质。
背景技术
一个完整的区块链应用离不开用户编写的智能合约,用户的应用程序通过区块链网络的Peer节点,调用智能合约。智能合约,是使用高级语言编写的一段代码,主要用于读取和操作账本上的数据。智能合约是一座连接用户应用和账本的桥梁。用户的应用可直接和智能合约打交道,智能合约也可直接和账本进行交互。在整个区块链系统中,智能合约是系统与用户接触的接口,是应用的载体,是区块链向用户提供服务的用户界面。
随着区块链得到越来越广泛的应用,智能合约相关的编程语言,如solidity语言,也应用的越来越多,这些语言本身也提供了相关的一些库供开发人员去调用,以提高开发效率。但是智能合约编程不同于现有的软件工程过程,一旦智能合约编程上传或发布,即使有缺陷,也无法通过打补丁进行修复。此外,由于区块链应用还处在初期,智能合约编程对于很多开发人员来说却不容易,要搜索可用的智能合约程序代码并不容易。现有的程序搜索技术并没有针对智能合约相关程序进行分析,建立程序库,因此不适用于智能合约程序代码的搜索。
发明内容
本发明的目的在于针对上述技术问题,提供一种面向智能合约的代码自动推荐方法、系统、计算机设备和存储介质。
实现本发明目的的技术解决方案为:一种面向智能合约的代码自动推荐方法,所述方法包括以下步骤:
步骤1,采集智能合约库中的智能合约,获取智能合约描述信息以及代码;
步骤2,对所述智能合约描述信息进行自然语言预处理;
步骤3,抽取所述智能合约描述信息的动名词短语,包括动词短语VP、名词短语NP;
步骤4,对所述智能合约描述信息进行依存句法分析,识别依存关系,提取智能合约描述句子中的语法结构,根据依存关系并结合步骤3提取的动名词短语构造智能合约描述信息的关系三元组(NP,VP,NP);
步骤5,提取所述智能合约代码的属性X,由该属性X和所述关系三元组建立智能合约与代码的映射匹配<(NP,VP,NP),X>,构建智能合约映射库;
步骤6,针对新的智能合约描述,查询所述智能合约映射库,获取为所述新的智能合约描述推荐的代码。
进一步地,步骤2所述对智能合约描述信息进行自然语言预处理,具体包括:对智能合约描述信息进行词语切分和词性标注。
进一步地,步骤3所述抽取智能合约描述信息的动名词短语,具体是通过下表1所示的正则表达式识别;
表1动名词短语识别正则表达式
Figure BDA0002382612820000021
表1中,MD表示情态动词;VB.*表示不同类别的动词,包括:VB-动词基础形式,VBG-动名词现在分词,VBN-动词过去分词,VBD-动词过去式,VBP-动词非第三人称单数,VBZ-动词第三人称单数;POS-词性;NN.*表示不同类别的名词,包括NN-单数或物质名词,NNS-名词复数,NNP-名词单数,NNPS-复数专有名词;JJ表示形容词;RB表示副词;DT表示定冠词;IN*表示任意介词或从属连词;“VVP”表示具有开放式从句的VP;CC表示连词;CD表示数词以及TO作为介词或不定式标记;符号“?”表示前面的字符是可选的;“+”表示前面项目的一个或多个实例;“*”表示前面项目的零个或多个实例;“-”表示连接多个实例。
进一步地,步骤6所述针对新的智能合约描述,查询所述智能合约映射库,获取为所述新的智能合约描述推荐的代码,具体过程包括:
步骤6-1,依据步骤2至步骤4的过程提取所述新的智能合约描述的关系三元组,并由关系三元组中的词构成关键词;
步骤6-2,将步骤6-1提取的关系三元组与所述智能合约映射库进行匹配,并将匹配度最高的代码作为为所述新的智能合约描述推荐的代码。
一种面向智能合约的代码自动推荐系统,所述系统包括依次执行的:
第一信息提取模块,用于采集智能合约库中的智能合约,获取智能合约描述信息以及代码;
预处理模块,用于对所述智能合约描述信息进行自然语言预处理;
第二信息提取模块,用于抽取所述智能合约描述信息的动名词短语,包括动词短语VP、名词短语NP;
关系三元组构建模块,用于对所述智能合约描述信息进行依存句法分析,识别依存关系,提取智能合约描述句子中的语法结构,根据依存关系并结合第二信息提取模块提取的动名词短语构造智能合约描述信息的关系三元组(NP,VP,NP);
智能合约映射库构建模块,用于提取所述智能合约代码的属性X,由该属性X和所述关系三元组建立智能合约与代码的映射匹配<(NP,VP,NP),X>,构建智能合约映射库;
代码推荐模块,用于针对新的智能合约描述,查询所述智能合约映射库,获取为所述新的智能合约描述推荐的代码。
进一步地,所述代码推荐模块包括:
第一信息提取单元,用于依据所述预处理模块至关系三元组构建模块的过程提取所述新的智能合约描述的关系三元组,并由关系三元组中的词构成关键词;
匹配单元,用于对第一信息提取单元提取的关系三元组与所述智能合约映射库进行匹配;
推荐单元,用于将所述匹配单元生成结果中匹配度最高的代码作为为所述新的智能合约描述推荐的代码。
一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行计算机程序时实现以下步骤:
步骤1,采集智能合约库中的智能合约,获取智能合约描述信息以及代码;
步骤2,对所述智能合约描述信息进行自然语言预处理;
步骤3,抽取所述智能合约描述信息的动名词短语,包括动词短语VP、名词短语NP;
步骤4,对所述智能合约描述信息进行依存句法分析,识别依存关系,提取智能合约描述句子中的语法结构,根据依存关系并结合步骤3提取的动名词短语构造智能合约描述信息的关系三元组(NP,VP,NP);
步骤5,提取所述智能合约代码的属性X,由该属性X和所述关系三元组建立智能合约与代码的映射匹配<(NP,VP,NP),X>,构建智能合约映射库;
步骤6,针对新的智能合约描述,查询所述智能合约映射库,获取为所述新的智能合约描述推荐的代码。
一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现以下步骤:
步骤1,采集智能合约库中的智能合约,获取智能合约描述信息以及代码;
步骤2,对所述智能合约描述信息进行自然语言预处理;
步骤3,抽取所述智能合约描述信息的动名词短语,包括动词短语VP、名词短语NP;
步骤4,对所述智能合约描述信息进行依存句法分析,识别依存关系,提取智能合约描述句子中的语法结构,根据依存关系并结合步骤3提取的动名词短语构造智能合约描述信息的关系三元组(NP,VP,NP);
步骤5,提取所述智能合约代码的属性X,由该属性X和所述关系三元组建立智能合约与代码的映射匹配<(NP,VP,NP),X>,构建智能合约映射库;
步骤6,针对新的智能合约描述,查询所述智能合约映射库,获取为所述新的智能合约描述推荐的代码。
本发明与现有技术相比,其显著优点为:1)本方法对智能合约描述信息进行关系三元组抽取,不仅可以串联各个智能合约之间的关系,还使得软件开发人员能够快速的了解智能合约信息;此外,在提取智能合约三元组时选取了合适的词与词之间的依存关系,使得到的关系三元组更准确,减少冗余和噪声;2)本方法能够针对智能合约领域相关的描述和代码进行描述和代码属性的映射库建立,是一种可自增的自动化建库过程,有助于智能合约代码的不断更新和可用;3)本方法从智能合约描述语言本身的关系和代码属性两方面进行代码的匹配和推荐,提高了智能合约编程过程中代码推荐的准确性,进而提高开发人员智能合约编程效率。
下面结合附图对本发明作进一步详细描述。
附图说明
图1为一个实施例中面向智能合约的代码自动推荐方法的流程图。
图2为一个实施例中计算机设备的内部结构图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
本发明针对智能合约编程,根据用户的智能合约需求,进行智能合约代码的推荐,以提高开发人员智能合约编程效率。本发明有效结合智能合约中的描述信息和智能合约的代码特征,对智能合约的描述信息进行自然语言处理,抽取出智能合约的关系三元组,之后基于该合约三元组的匹配实现智能合约代码的自动推荐。
在一个实施例中,结合图1,提供了一种面向智能合约的代码自动推荐方法,该方法包括以下步骤:
步骤1,采集智能合约库中的智能合约,获取智能合约描述信息以及代码;
步骤2,对智能合约描述信息进行自然语言预处理;
步骤3,抽取智能合约描述信息的动名词短语,包括动词短语VP、名词短语NP;
步骤4,对智能合约描述信息进行依存句法分析,识别依存关系,提取智能合约描述句子中的语法结构,根据依存关系并结合步骤3提取的动名词短语构造智能合约描述信息的关系三元组(NP,VP,NP);
这里,主要根据由语法关系定义的49种依存关系来提取关系三元组。
作为一种具体示例,给定某个智能合约的自然语言描述“A requestintermittently sends after satisfying the condition.”,根据下表2所示的依存关系nsubj(sends-4,request-1);dobj(satisfying-6,condition-2),获得一个关系三元组(request-1,condition-2,sends-4)。
表2依存关系
Figure BDA0002382612820000051
Figure BDA0002382612820000061
步骤5,提取智能合约代码的属性X,由该属性X和关系三元组建立智能合约与代码的映射匹配<(NP,VP,NP),X>,构建智能合约映射库;
步骤6,针对新的智能合约描述,查询智能合约映射库,获取为新的智能合约描述推荐的代码。
进一步地,在其中一个实施例中,上述步骤2中对智能合约描述信息进行自然语言预处理,具体包括:对智能合约描述信息进行词语切分和词性标注。
作为一种具体示例,上述自然语言预处理利用Stanford coreNLP自然语言处理工具实现。
进一步地,在其中一个实施例中,上述步骤3中抽取智能合约描述信息的动名词短语,具体是通过上表1所示的正则表达式识别。
进一步地,在其中一个实施例中,上述步骤5中智能合约代码的属性X包括代码中的标识符和所调用的API名称。
进一步地,在其中一个实施例中,上述步骤6中针对新的智能合约描述,查询智能合约映射库,获取为新的智能合约描述推荐的代码,具体过程包括:
步骤6-1,依据步骤2至步骤4的过程提取新的智能合约描述的关系三元组,并由关系三元组中的词构成关键词;
步骤6-2,将步骤6-1提取的关系三元组与智能合约映射库进行匹配,并将匹配度最高的代码作为为新的智能合约描述推荐的代码。
进一步地,在其中一个实施例中,上述步骤6中的匹配具体通过余弦相似度计算实现。
在其中一个实施例中,提供了一种面向智能合约的代码自动推荐系统,该系统包括依次执行的:
第一信息提取模块,用于采集智能合约库中的智能合约,获取智能合约描述信息以及代码;
预处理模块,用于对智能合约描述信息进行自然语言预处理;
这里,自然语言预处理包括:词语切分和词性标注。
第二信息提取模块,用于抽取智能合约描述信息的动名词短语,包括动词短语VP、名词短语NP;
这里,抽取动名词短语具体是通过上表1所示的正则表达式识别;
关系三元组构建模块,用于对智能合约描述信息进行依存句法分析,识别依存关系,提取智能合约描述句子中的语法结构,根据依存关系并结合第二信息提取模块提取的动名词短语构造智能合约描述信息的关系三元组(NP,VP,NP);
智能合约映射库构建模块,用于提取智能合约代码的属性X,由该属性X和关系三元组建立智能合约与代码的映射匹配<(NP,VP,NP),X>,构建智能合约映射库;
这里,智能合约代码的属性X包括代码中的标识符和所调用的API名称等。
代码推荐模块,用于针对新的智能合约描述,查询智能合约映射库,获取为新的智能合约描述推荐的代码。
进一步地,在其中一个实施例中,上述代码推荐模块包括:
第一信息提取单元,用于依据预处理模块至关系三元组构建模块的过程提取新的智能合约描述的关系三元组,并由关系三元组中的词构成关键词;
匹配单元,用于对第一信息提取单元提取的关系三元组与智能合约映射库进行匹配;
推荐单元,用于将匹配单元生成结果中匹配度最高的代码作为为新的智能合约描述推荐的代码。
进一步地,在其中一个实施例中,上述匹配单元实现匹配具体通过余弦相似度计算实现。
在一个实施例中,提供了一种计算机设备,该计算机设备可以是服务器,其内部结构图可以如图2所示。该计算机设备包括通过系统总线连接的处理器、存储器、网络接口和数据库。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的数据库用于存储多系统数据融合数据过程中需要用到的数据。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种多系统数据融合方法。
本领域技术人员可以理解,图2中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在一个实施例中,提供了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行计算机程序时实现以下步骤:
步骤1,采集智能合约库中的智能合约,获取智能合约描述信息以及代码;
步骤2,对智能合约描述信息进行自然语言预处理;
步骤3,抽取智能合约描述信息的动名词短语,包括动词短语VP、名词短语NP;
步骤4,对智能合约描述信息进行依存句法分析,识别依存关系,提取智能合约描述句子中的语法结构,根据依存关系并结合步骤3提取的动名词短语构造智能合约描述信息的关系三元组(NP,VP,NP);
步骤5,提取智能合约代码的属性X,由该属性X和关系三元组建立智能合约与代码的映射匹配<(NP,VP,NP),X>,构建智能合约映射库;
步骤6,针对新的智能合约描述,查询智能合约映射库,获取为新的智能合约描述推荐的代码。
进一步地,在其中一个实施例中,处理器执行计算机程序实现上述抽取智能合约描述信息的动名词短语,具体是通过上表1所示的正则表达式识别。
进一步地,在其中一个实施例中,处理器执行计算机程序实现上述针对新的智能合约描述,查询智能合约映射库,获取为新的智能合约描述推荐的代码,具体实现:
步骤6-1,依据步骤2至步骤4的过程提取新的智能合约描述的关系三元组,并由关系三元组中的词构成关键词;
步骤6-2,将步骤6-1提取的关系三元组与智能合约映射库进行匹配,并将匹配度最高的代码作为为新的智能合约描述推荐的代码。
在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现以下步骤:
步骤1,采集智能合约库中的智能合约,获取智能合约描述信息以及代码;
步骤2,对智能合约描述信息进行自然语言预处理;
步骤3,抽取智能合约描述信息的动名词短语,包括动词短语VP、名词短语NP;
步骤4,对智能合约描述信息进行依存句法分析,识别依存关系,提取智能合约描述句子中的语法结构,根据依存关系并结合步骤3提取的动名词短语构造智能合约描述信息的关系三元组(NP,VP,NP);
步骤5,提取智能合约代码的属性X,由该属性X和关系三元组建立智能合约与代码的映射匹配<(NP,VP,NP),X>,构建智能合约映射库;
步骤6,针对新的智能合约描述,查询智能合约映射库,获取为新的智能合约描述推荐的代码。
进一步地,在其中一个实施例中,计算机程序被处理器执行实现上述抽取智能合约描述信息的动名词短语,具体是通过上表1所示的正则表达式识别。
进一步地,在其中一个实施例中,计算机程序被处理器执行实现上述针对新的智能合约描述,查询智能合约映射库,获取为新的智能合约描述推荐的代码,具体实现:
步骤6-1,依据步骤2至步骤4的过程提取新的智能合约描述的关系三元组,并由关系三元组中的词构成关键词;
步骤6-2,将步骤6-1提取的关系三元组与智能合约映射库进行匹配,并将匹配度最高的代码作为为新的智能合约描述推荐的代码。
本发明对智能合约描述信息进行关系三元组抽取,不仅可以串联各个智能合约之间的关系,还使得软件开发人员能够快速的了解智能合约信息;此外,在提取智能合约三元组时选取了合适的词与词之间的依存关系,使得到的关系三元组更准确,减少冗余和噪声。此外,本发明能够针对智能合约领域相关的描述和代码进行描述和代码属性的映射库建立,是一种可自增的自动化建库过程,有助于智能合约代码的不断更新和可用。综上,本发明从智能合约描述语言本身的关系和代码属性两方面进行代码的匹配和推荐,提高了智能合约编程过程中代码推荐的准确性,进而提高开发人员智能合约编程效率。

Claims (10)

1.一种面向智能合约的代码自动推荐方法,其特征在于,所述方法包括以下步骤:
步骤1,采集智能合约库中的智能合约,获取智能合约描述信息以及代码;
步骤2,对所述智能合约描述信息进行自然语言预处理;
步骤3,抽取所述智能合约描述信息的动名词短语,包括动词短语VP、名词短语NP;
步骤4,对所述智能合约描述信息进行依存句法分析,识别依存关系,提取智能合约描述句子中的语法结构,根据依存关系并结合步骤3提取的动名词短语构造智能合约描述信息的关系三元组(NP,VP,NP);
步骤5,提取所述智能合约代码的属性X,由该属性X和所述关系三元组建立智能合约与代码的映射匹配<(NP,VP,NP),X>,构建智能合约映射库;
步骤6,针对新的智能合约描述,查询所述智能合约映射库,获取为所述新的智能合约描述推荐的代码。
2.根据权利要求1所述的面向智能合约的代码自动推荐方法,其特征在于,步骤2所述对所述智能合约描述信息进行自然语言预处理,具体包括:对智能合约描述信息进行词语切分和词性标注。
3.根据权利要求1或2所述的面向智能合约的代码自动推荐方法,其特征在于,步骤3所述抽取所述智能合约描述信息的动名词短语,具体是通过以下正则表达式识别:
名词短语:
(CD)*(DT)?(CD)*(JJ)*(CD)*(VBD|VBG)*(NN.*)*-
(POS)*(CD)*(VBD|VBG)*(NN.*)*-
(VBD|VBG)*(NN.*)*(POS)*(CD)*(NN.*)+
动词短语:
(MD)*(VB.*)+(CD)*(JJ)*(RB)*(JJ)*(VB.*)?(DT)?(IN*|TO*)+
(MD)*(VB.*)+(JJ)*(RB)*(JJ)*(VB.*)?(DT)?(IN*|TO*)+
(MD)*(VB.*)+(JJ)*(RB)*(JJ)*(VB.*)+
(MD)*(VB.*)+
其中,MD表示情态动词;VB.*表示不同类别的动词,包括:VB-动词基础形式,VBG-动名词现在分词,VBN-动词过去分词,VBD-动词过去式,VBP-动词非第三人称单数,VBZ-动词第三人称单数;POS-词性;NN.*表示不同类别的名词,包括NN-单数或物质名词,NNS-名词复数,NNP-名词单数,NNPS-复数专有名词;JJ表示形容词;RB表示副词;DT表示定冠词;IN*表示任意介词或从属连词;“VVP”表示具有开放式从句的VP;CC表示连词;CD表示数词以及TO作为介词或不定式标记;符号“?”表示前面的字符是可选的;“+”表示前面项目的一个或多个实例;“*”表示前面项目的零个或多个实例;“-”表示连接多个实例。
4.根据权利要求3所述的面向智能合约的代码自动推荐方法,其特征在于,步骤5中所述智能合约代码的属性X包括代码中的标识符和所调用的API名称。
5.根据权利要求4所述的面向智能合约的代码自动推荐方法,其特征在于,步骤6所述针对新的智能合约描述,查询所述智能合约映射库,获取为所述新的智能合约描述推荐的代码,具体过程包括:
步骤6-1,依据步骤2至步骤4的过程提取所述新的智能合约描述的关系三元组,并由关系三元组中的词构成关键词;
步骤6-2,将步骤6-1提取的关系三元组与所述智能合约映射库进行匹配,并将匹配度最高的代码作为为所述新的智能合约描述推荐的代码。
6.根据权利要求5所述的面向智能合约的代码自动推荐方法,其特征在于,步骤6-2中所述匹配具体通过余弦相似度计算实现。
7.一种面向智能合约的代码自动推荐系统,其特征在于,所述系统包括依次执行的:
第一信息提取模块,用于采集智能合约库中的智能合约,获取智能合约描述信息以及代码;
预处理模块,用于对所述智能合约描述信息进行自然语言预处理;
第二信息提取模块,用于抽取所述智能合约描述信息的动名词短语,包括动词短语VP、名词短语NP;
关系三元组构建模块,用于对所述智能合约描述信息进行依存句法分析,识别依存关系,提取智能合约描述句子中的语法结构,根据依存关系并结合第二信息提取模块提取的动名词短语构造智能合约描述信息的关系三元组(NP,VP,NP);
智能合约映射库构建模块,用于提取所述智能合约代码的属性X,由该属性X和所述关系三元组建立智能合约与代码的映射匹配<(NP,VP,NP),X>,构建智能合约映射库;
代码推荐模块,用于针对新的智能合约描述,查询所述智能合约映射库,获取为所述新的智能合约描述推荐的代码。
8.根据权利要求7所述的面向智能合约的代码自动推荐系统,其特征在于,所述代码推荐模块包括:
第一信息提取单元,用于提取所述新的智能合约描述的关系三元组,并由关系三元组中的词构成关键词;
匹配单元,用于对第一信息提取单元提取的关系三元组与所述智能合约映射库进行匹配;
推荐单元,用于将所述匹配单元生成结果中匹配度最高的代码作为为所述新的智能合约描述推荐的代码。
9.一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至6中任一项所述方法的步骤。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至6中任一项所述的方法的步骤。
CN202010087774.8A 2020-02-12 2020-02-12 面向智能合约的代码自动推荐方法、系统、计算机设备和存储介质 Active CN111309305B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010087774.8A CN111309305B (zh) 2020-02-12 2020-02-12 面向智能合约的代码自动推荐方法、系统、计算机设备和存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010087774.8A CN111309305B (zh) 2020-02-12 2020-02-12 面向智能合约的代码自动推荐方法、系统、计算机设备和存储介质

Publications (2)

Publication Number Publication Date
CN111309305A CN111309305A (zh) 2020-06-19
CN111309305B true CN111309305B (zh) 2023-06-02

Family

ID=71148936

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010087774.8A Active CN111309305B (zh) 2020-02-12 2020-02-12 面向智能合约的代码自动推荐方法、系统、计算机设备和存储介质

Country Status (1)

Country Link
CN (1) CN111309305B (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112070608B (zh) * 2020-08-20 2024-03-19 财付通支付科技有限公司 信息处理方法、装置、介质及电子设备
CN112613877B (zh) * 2020-12-17 2021-12-07 腾讯科技(深圳)有限公司 应用于区块链网络的智能合约触发方法、装置及相关设备
CN113268732B (zh) * 2021-04-19 2022-12-20 中国人民解放军战略支援部队信息工程大学 Solidity智能合约相似性检测方法及系统
CN113127042A (zh) * 2021-05-08 2021-07-16 中山大学 一种智能合约推荐方法、设备及存储介质

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108459860A (zh) * 2018-03-28 2018-08-28 成都链安科技有限公司 区块链智能合约形式化验证代码转换器及转换方法
CN108985073A (zh) * 2018-07-18 2018-12-11 成都链安科技有限公司 一种高度自动化的智能合约形式化验证系统及方法
CN110688428A (zh) * 2019-09-24 2020-01-14 北京海益同展信息科技有限公司 用于发布智能合约的方法和装置

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10896195B2 (en) * 2018-07-29 2021-01-19 International Business Machines Corporation Automatic generation of smart contracts

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108459860A (zh) * 2018-03-28 2018-08-28 成都链安科技有限公司 区块链智能合约形式化验证代码转换器及转换方法
CN108985073A (zh) * 2018-07-18 2018-12-11 成都链安科技有限公司 一种高度自动化的智能合约形式化验证系统及方法
CN110688428A (zh) * 2019-09-24 2020-01-14 北京海益同展信息科技有限公司 用于发布智能合约的方法和装置

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
孙伟松 ; 孙小兵 ; 李斌 ; 杨辉 ; .软件历史代码库词库自动构建技术及实现.中国科学技术大学学报.2017,(01),80-86. *

Also Published As

Publication number Publication date
CN111309305A (zh) 2020-06-19

Similar Documents

Publication Publication Date Title
CN111309305B (zh) 面向智能合约的代码自动推荐方法、系统、计算机设备和存储介质
CN109933785B (zh) 用于实体关联的方法、装置、设备和介质
CN111459977B (zh) 自然语言查询的转换
CN111046221A (zh) 歌曲推荐方法、装置、终端设备以及存储介质
CN112650858B (zh) 应急协助信息的获取方法、装置、计算机设备及介质
CN112559717B (zh) 搜索匹配方法、装置、电子设备以及存储介质
CN101398858A (zh) 一种基于本体学习的Web服务语义提取方法
CN113779062A (zh) Sql语句生成方法、装置、存储介质及电子设备
CN112883030A (zh) 数据收集方法、装置、计算机设备和存储介质
CN112507089A (zh) 一种基于知识图谱的智能问答引擎及其实现方法
CN110442730A (zh) 一种基于deepdive的知识图谱构建方法
CN116243914A (zh) 国际化软件开发的方法、国际化软件开发系统及服务器
CN117149804A (zh) 数据处理方法、装置、电子设备及存储介质
CN110795547A (zh) 文本识别方法和相关产品
CN112989066B (zh) 数据处理方法和装置、电子设备、计算机可读介质
CN115794857A (zh) 查询请求的处理方法及装置
CN112487154B (zh) 一种基于自然语言的智能搜索方法
CN117827674A (zh) 缺陷与测试用例的匹配方法、装置、电子设备和存储介质
US20230409624A1 (en) Multi-modal hierarchical semantic search engine
Chai et al. Mind: A context-based multimodal interpretation framework in conversational systems
CN117371406A (zh) 基于大型语言模型的注释生成方法、装置、设备及介质
CN110019714A (zh) 基于历史结果的多意图查询方法、装置、设备及存储介质
CN116431481A (zh) 一种基于多代码情况下的代码参数校验方法及装置
CN114625889A (zh) 一种语义消歧方法、装置、电子设备及存储介质
CN114201622A (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