CN116302042B - 协议要素内容推荐方法、装置和计算机设备 - Google Patents

协议要素内容推荐方法、装置和计算机设备 Download PDF

Info

Publication number
CN116302042B
CN116302042B CN202310596404.0A CN202310596404A CN116302042B CN 116302042 B CN116302042 B CN 116302042B CN 202310596404 A CN202310596404 A CN 202310596404A CN 116302042 B CN116302042 B CN 116302042B
Authority
CN
China
Prior art keywords
protocol
protocol element
content
target
category
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
CN202310596404.0A
Other languages
English (en)
Other versions
CN116302042A (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.)
Southern Power Grid Digital Grid Research Institute Co Ltd
Original Assignee
Southern Power Grid Digital Grid Research Institute Co Ltd
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 Southern Power Grid Digital Grid Research Institute Co Ltd filed Critical Southern Power Grid Digital Grid Research Institute Co Ltd
Priority to CN202310596404.0A priority Critical patent/CN116302042B/zh
Publication of CN116302042A publication Critical patent/CN116302042A/zh
Application granted granted Critical
Publication of CN116302042B publication Critical patent/CN116302042B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/30Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
    • G06F16/33Querying
    • G06F16/3331Query processing
    • G06F16/3332Query translation
    • G06F16/3335Syntactic pre-processing, e.g. stopword elimination, stemming
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/30Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
    • G06F16/33Querying
    • G06F16/3331Query processing
    • G06F16/334Query execution
    • G06F16/3344Query execution using natural language analysis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/30Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
    • G06F16/33Querying
    • G06F16/3331Query processing
    • G06F16/334Query execution
    • G06F16/3346Query execution using probabilistic model
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/30Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
    • G06F16/35Clustering; Classification
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/10Complex mathematical operations
    • G06F17/16Matrix or vector computation, e.g. matrix-matrix or matrix-vector multiplication, matrix factorization

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Computational Linguistics (AREA)
  • Software Systems (AREA)
  • Mathematical Physics (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Artificial Intelligence (AREA)
  • Probability & Statistics with Applications (AREA)
  • Computing Systems (AREA)
  • Algebra (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本申请涉及一种协议要素内容推荐方法、装置和计算机设备。方法包括:将目标项目输入至协议概率预测模型,获取各开源许可协议与目标项目的匹配程度;获取各协议要素对应的协议要素内容的多个内容类别;基于各开源许可协议与目标项目的匹配程度,以及各协议要素对应的多个内容类别,确定各协议要素的多个内容类别与目标项目的第一类别匹配程度;根据各协议要素对应的多个第一类别匹配程度,确定各协议要素的要素集中度,根据各协议要素的要素集中度,获取目标协议要素;根据目标协议要素对应的多个内容类别,确定目标协议要素的目标内容类别,将目标内容类别的协议要素内容作为推荐的协议要素内容。采用本方法能够有效准确推荐协议要素内容。

Description

协议要素内容推荐方法、装置和计算机设备
技术领域
本申请涉及互联网技术领域,特别是涉及一种协议要素内容推荐方法、装置和计算机设备。
背景技术
一个开源软件项目在平台正式发布之前,为保证软件不被商业机构和个人窃取,项目作者和贡献者一般会为软件附上开源许可协议。
开源许可协议对开源项目的使用、复制、修改和分发等行为进行规范和约束,是开源运动的基石,直接影响开发人员的参与积极程度。目前全球现有的开源许可协议种类繁多,覆盖大部分开源项目需求,但因条款相似性、法律复杂度与协议兼容性等多方面因素,开发人员很难对现有开源许可协议进行全面深入的理解,在许可协议的理解与选择上仍存在困难。
从开源许可协议选择工具的角度出发,目前已存在较多基于引导用户的需求与限制条件来进行开源许可协议推荐的工具。然而,使用现有的开源许可协议推荐方法难以有效准确地推荐开源许可协议的协议要素内容。
发明内容
基于此,有必要针对上述技术问题,提供一种能够有效准确地推荐协议要素内容的协议要素内容推荐方法、装置和计算机设备。
第一方面,本申请提供了一种协议要素内容推荐方法,该方法包括:
获取目标项目以及预先设定的多个开源许可协议,并将目标项目输入至预先训练的协议概率预测模型,通过协议概率预测模型,获取各开源许可协议与目标项目之间的匹配程度;
获取多个协议要素在各开源许可协议中的协议要素内容,并对各协议要素对应的协议要素内容分别进行分类,得到各协议要素对应的协议要素内容的多个内容类别;
基于各开源许可协议与目标项目的匹配程度,以及各协议要素对应的协议要素内容的多个内容类别,确定各协议要素对应的多个内容类别与目标项目之间的第一类别匹配程度;其中,目标项目与各协议要素之间均对应有多个第一类别匹配程度;
根据各协议要素对应的多个第一类别匹配程度,确定各协议要素的要素集中度,并根据各协议要素的要素集中度,获取目标协议要素;
根据目标协议要素对应的多个内容类别与目标项目之间的第一类别匹配程度,确定目标协议要素的目标内容类别,将目标内容类别对应的协议要素内容作为针对目标项目进行推荐的协议要素内容。
在其中一个实施例中,根据各协议要素对应的多个第一类别匹配程度,确定各协议要素的要素集中度,包括:
根据各协议要素对应的各内容类别中包含的开源许可协议的数量,得到各协议要素对应的多个内容类别与目标项目之间的第二类别匹配程度;
获取各协议要素对应的多个第一类别匹配程度形成的第一匹配程度集合,以及各协议要素对应的第一匹配程度集合的第一信息熵;
获取各协议要素对应的多个第二类别匹配程度形成的第二匹配程度集合,以及各协议要素对应的第二匹配程度集合的第二信息熵;
根据各协议要素对应的第一信息熵和第二信息熵,确定各协议要素的要素集中度。
在其中一个实施例中,根据各协议要素的要素集中度,获取目标协议要素,包括:
根据各协议要素对应的多个内容类别,得到各协议要素的信息质量;
根据各协议要素的要素集中度,以及各协议要素的信息质量,得到各协议要素的推荐度;
将推荐度满足预设条件的协议要素,作为目标协议要素。
在其中一个实施例中,将推荐度满足预设条件的协议要素,作为目标协议要素,包括:
按照多个协议要素的推荐度,对各协议要素进行降序排序;
将排序在预设位次之前的协议要素,作为目标协议要素;
根据目标协议要素对应的多个内容类别与目标项目之间的第一类别匹配程度,确定目标协议要素的目标内容类别,包括:
从目标协议要素对应的多个内容类别与目标项目之间的第一类别匹配程度中,将最大的第一类别匹配程度对应的内容类别作为目标协议要素的目标内容类别。
在其中一个实施例中,根据各协议要素对应的多个内容类别,得到各协议要素的信息质量,包括:
根据各协议要素对应的多个第一内容类别,得到各协议要素对应的平均轮廓系数;
将各协议要素对应的平均轮廓系数,作为各协议要素的信息质量。
在其中一个实施例中,协议概率预测模型的训练方式,包括:
获取多个样本项目,以及各样本项目分别对应的开源许可协议;
将多个样本项目以及各样本项目分别对应的开源许可协议输入至待训练的协议概率预测模型,对协议概率预测模型进行训练。
在其中一个实施例中,多个样本项目以样本项目表的形式表征;
将多个样本项目以及各样本项目分别对应的开源许可协议输入至待训练的协议概率预测模型之前,包括:
将样本项目表中包含的项目描述内容和读我文档内容进行合并,得到项目文本信息;
将项目文本信息进行向量化处理,得到向量化处理后的项目文本信息;
将多个样本项目以及各样本项目分别对应的开源许可协议输入至待训练的协议概率预测模型,包括:
将向量化处理后的项目文本信息以及各样本项目分别对应的开源许可协议的协议类型输入至待训练的协议概率预测模型。
在其中一个实施例中,基于各开源许可协议与目标项目的匹配程度,以及各协议要素对应的协议要素内容的多个内容类别,确定各协议要素对应的多个内容类别与目标项目之间的第一类别匹配程度,包括:
根据各开源许可协议与目标项目的匹配程度,得到匹配程度向量;
根据各协议要素对应的协议要素内容,与各内容类别的对应关系,形成内容类别矩阵;
根据匹配程度向量和内容类别矩阵,得到各内容类别与目标项目的第一类别匹配程度。
第二方面,本申请还提供了一种协议要素内容推荐装置,该装置包括:
匹配程度获取模块,用于获取目标项目以及预先设定的多个开源许可协议,并将目标项目输入至预先训练的协议概率预测模型,通过协议概率预测模型,获取各开源许可协议与目标项目之间的匹配程度;
内容类别获取模块,用于获取多个协议要素在各开源许可协议中的协议要素内容,并对各协议要素对应的协议要素内容分别进行分类,得到各协议要素对应的协议要素内容的多个内容类别;
类别匹配程度模块,用于基于各开源许可协议与目标项目的匹配程度,以及各协议要素对应的协议要素内容的多个内容类别,确定各协议要素对应的多个内容类别与目标项目之间的第一类别匹配程度;其中,目标项目与各协议要素之间均对应有多个第一类别匹配程度;
目标要素获取模块,用于根据各协议要素对应的多个第一类别匹配程度,确定各协议要素的要素集中度,并根据各协议要素的要素集中度,获取目标协议要素;
要素内容推荐模块,用于根据目标协议要素对应的多个内容类别与目标项目之间的第一类别匹配程度,确定目标协议要素的目标内容类别,将目标内容类别对应的协议要素内容作为针对目标项目进行推荐的协议要素内容。
第三方面,本申请还提供了一种计算机设备。该计算机设备,包括存储器和处理器,存储器存储有计算机程序,处理器执行计算机程序时实现上述的方法的步骤。
上述协议要素内容推荐方法、装置和计算机设备,获取目标项目以及预先设定的多个开源许可协议,并将目标项目输入至预先训练的协议概率预测模型,通过协议概率预测模型,获取各开源许可协议与目标项目之间的匹配程度;获取多个协议要素在各开源许可协议中的协议要素内容,并对各协议要素对应的协议要素内容分别进行分类,得到各协议要素对应的协议要素内容的多个内容类别;基于各开源许可协议与目标项目的匹配程度,以及各协议要素对应的协议要素内容的多个内容类别,确定各协议要素对应的多个内容类别与目标项目之间的第一类别匹配程度;其中,目标项目与各协议要素均之间对应有多个第一类别匹配程度;根据各协议要素对应的多个第一类别匹配程度,确定各协议要素的要素集中度,并根据各协议要素的要素集中度,获取目标协议要素;根据目标协议要素对应的多个内容类别与目标项目之间的第一类别匹配程度,确定目标协议要素的目标内容类别,将目标内容类别对应的协议要素内容作为针对目标项目进行推荐的协议要素内容。与传统技术相比,本申请通过协议概率预测模型,获取各开源许可协议与目标项目之间的匹配程度,能够提高得到各开源许可协议对应的匹配程度的准确性,并且能够通过各开源许可协议与目标项目的匹配程度,确定各协议要素对应的多个内容类别与目标项目之间的第一类别匹配程度,通过第一类别匹配程度,确定进行推荐的目标协议要素,并从目标协议要素对应的多个内容类别中,确定进行推荐的目标内容类别,将目标内容类别对应的协议要素内容进行推荐。如此,能够有效准确地为开源项目提供符合该开源项目的内容的协议要素内容,从而能够提高为开源项目推荐协议要素内容的准确性。
附图说明
图1为一个实施例中协议要素内容推荐方法的应用环境图;
图2为一个实施例中协议要素内容推荐方法的流程示意图;
图3为一个实施例中确定各协议要素的要素集中度步骤的流程示意图;
图4为一个实施例中确定第一类别匹配程度步骤的流程示意图;
图5为一个实施例中协议要素推荐方法的流程架构图;
图6为一个实施例中数据预处理步骤的数据流向架构图;
图7为一个实施例中模型训练以及获取要素集中度和平均轮廓系数的流程架构图;
图8为一个实施例中计算要素集中度的流程架构图;
图9为一个实施例中确定推荐内容并输出结果的数据流向架构图;
图10为一个实施例中协议要素内容推荐装置的结构框图;
图11为一个实施例中计算机设备的内部结构图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
本申请实施例提供的协议要素推荐方法,可以应用于如图1所示的应用环境中。其中,终端102通过网络与服务器104进行通信。数据存储系统可以存储服务器104需要处理的数据。数据存储系统可以集成在服务器104上,也可以放在云上或其他网络服务器上。目标项目可以是用户利用终端102输入的项目,开源许可协议可以预先存储在数据存储系统中。其中,终端102可以但不限于是各种个人计算机、笔记本电脑、智能手机、平板电脑、物联网设备和便携式可穿戴设备。服务器104可以用独立的服务器或者是多个服务器组成的服务器集群来实现。
在一个实施例中,如图2所示,提供了一种协议要素内容推荐方法,以该方法应用于图1中的服务器104为例进行说明,包括以下步骤:
S202,获取目标项目以及预先设定的多个开源许可协议,并将目标项目输入至预先训练的协议概率预测模型,通过协议概率预测模型,获取各开源许可协议与目标项目之间的匹配程度。
其中,目标项目可以是开源项目,可以是需要附带开源许可协议的项目。协议概率预测模型可以是用于进行概率预测的模型;可以通过开源许可协议与目标项目的匹配程度来决定开源许可协议的概率。匹配程度可以是用概率来表征,例如,开源许可协议目标项目在某个开源许可协议上的概率越大,则表示该开源许可协议与目标项目的匹配程度越高,开源许可协议与目标项目的概率越小,则表示开源许可协议与目标项目的匹配程度低。
示例性地,目标项目可以是用户在终端输入的开源项目。服务器可以获取用户在终端输入的开源项目,以及预先存储在数据存储系统的多个开源许可协议。将该开源项目输入到预先训练的协议概率预测模型,通过协议概率预测模型进行预测,得到各开源许可协议与目标项目的匹配程度。
例如,可以是通过协议概率预测模型,得到针对该目标项目的各个开源许可协议的被推荐概率。
S204,获取多个协议要素在各开源许可协议中的协议要素内容,并对各协议要素对应的协议要素内容分别进行分类,得到各协议要素对应的协议要素内容的多个内容类别。
其中,协议要素内容可以是开源许可协议中包含的协议要素的内容;例如,协议要素可以是版权、专利权、商标权、分发限制权、免责声明等,协议要素内容为上述各项协议要素对应的具体内容。内容类别可以是由多个相似的协议要素内容组成的类别;例如,开源许可协议A、B、C均包含有的“版权”这一协议要素,对“版权”在开源许可协议A、B、C中的协议要素内容进行分类,得到“版权”这一要素对应的协议要素内容的内容类别,例如,“版权”对应的内容类别可以有内容类别X和Y这两种内容类别,即,将“版权”对应的协议要素内容划分为了X、Y这两个类别,被划分入同一类别的要素内容相似,代表对应开源许可协议在该协议要素上有相似的保护效用;被划分入不同类别的要素内容差别较大,代表对应开源许可协议在该协议要素的保护作用不同。
示例性地,对于多项协议要素中的每一项协议要素,对该协议要素在各开源许可协议中的协议要素内容进行分类,例如,可以利用K-means 算法对各个协议要素对应的协议要素内容进行聚类,可以得到该协议要素对应的协议要素内容的多个内容类别。例如,针对“版权”这一协议要素,根据其在开源许可协议A、B、C中的协议要素内容进行分类,最终其对应的多个协议要素内容被划分入两个内容类别X、Y。
S206,基于各开源许可协议与目标项目的匹配程度,以及各协议要素对应的协议要素内容的多个内容类别,确定各协议要素对应的多个内容类别与目标项目之间的第一类别匹配程度;其中,目标项目与各协议要素之间均对应有多个第一类别匹配程度。
其中,第一类别匹配程度可以是协议要素内容类别与目标项目之间的匹配程度,例如,可以是该目标项目在该内容类别对应的协议要素内容上的概率。
示例性地,对于多项协议要素中的每一项协议要素,基于各开源许可协议与目标项目的匹配程度,以及该协议要素对应的协议要素内容的多个内容类别,确定该协议要素对应的多个内容类别与目标项目之间的第一类别匹配程度。例如,可以是基于各个开源许可协议与目标项目之间的协议概率向量,以及该协议要素对应的协议要素内容的内容类别矩阵,确定该协议要素对应的多个内容类别与目标项目之间的第一类别概率向量。第一类别概率向量指的是目标项目在多个内容类别上的概率形成的向量。
S208,根据各协议要素对应的多个第一类别匹配程度,确定各协议要素的要素集中度,并根据各协议要素的要素集中度,获取目标协议要素。
其中,要素集中度可以是评估协议要素对于一个开源项目的异质重要性。目标协议要素指的是为目标项目进行推荐的协议要素。例如,如果“版权”为目标协议要素,则将“版权”这一协议要素推荐给目标项目,进一步地,针对“版权”这一协议要素,确定其对应的哪些内容可以作为目标项目的推荐要素内容。
示例性地,对于每一项协议要素而言,可以根据该协议要素对应的多个第一类别匹配程度,确定该协议要素的要素集中度。例如,可以是根据该协议要素对应的内容类别的类别概率向量,确定该协议要素的要素集中度。进一步,可以基于该协议要素的要素集中度,确定该协议要素是否为目标协议要素。例如,可以基于要素集中度,得到各项协议要素的排序,可以将排序前三的协议要素作为目标协议要素进行推荐,进一步还可以确定目标协议要素中进行推荐的年内容类别。
S210,根据目标协议要素对应的多个内容类别与目标项目之间的第一类别匹配程度,确定目标协议要素的目标内容类别,将目标内容类别对应的协议要素内容作为针对目标项目进行推荐的协议要素内容。
其中,目标内容类别可以是表征将内容类别对应的协议要素内容推荐给目标项目对应的内容类别。
示例性地,可以根据各内容类别与目标项目之间的第一类别匹配程度,确定从多个内容类别中确定出需要推荐给目标项目的目标内容类别,可以将目标内容类别对应的协议要素内容推荐给该目标项目。如此,能够实现对开源项目进行协议要素内容的推荐。例如,可以是将最大的第一类别匹配程度对应的内容类别中作为目标内容类别。
本实施例中,获取目标项目以及预先设定的多个开源许可协议,并将目标项目输入至预先训练的协议概率预测模型,通过协议概率预测模型,获取各开源许可协议与目标项目之间的匹配程度;获取多个协议要素在各开源许可协议中的协议要素内容,并对各协议要素对应的协议要素内容分别进行分类,得到各协议要素对应的协议要素内容的多个内容类别;基于各开源许可协议与目标项目的匹配程度,以及各协议要素对应的协议要素内容的多个内容类别,确定各协议要素对应的多个内容类别与目标项目之间的第一类别匹配程度;其中,目标项目与各协议要素均之间对应有多个第一类别匹配程度;根据各协议要素对应的多个第一类别匹配程度,确定各协议要素的要素集中度,并根据各协议要素的要素集中度,获取目标协议要素;根据目标协议要素对应的多个内容类别与目标项目之间的第一类别匹配程度,确定目标协议要素的目标内容类别,将目标内容类别对应的协议要素内容作为针对目标项目进行推荐的协议要素内容。与传统技术相比,本申请通过协议概率预测模型,获取各开源许可协议与目标项目之间的匹配程度,能够提高得到各开源许可协议对应的匹配程度的准确性,并且能够通过各开源许可协议与目标项目的匹配程度,确定各协议要素对应的多个内容类别与目标项目之间的第一类别匹配程度,通过第一类别匹配程度,确定进行推荐的目标协议要素,并从目标协议要素对应的多个内容类别中,确定进行推荐的目标内容类别,将目标内容类别对应的协议要素内容进行推荐。如此,能够有效准确地为开源项目提供符合该开源项目的内容的协议要素内容,从而能够提高为开源项目推荐协议要素内容的准确性。
在一个实施例中,如图3所示,根据各协议要素对应的多个第一类别匹配程度,确定各协议要素的要素集中度,包括:
S302,根据各协议要素对应的各内容类别中包含的开源许可协议的数量,得到各协议要素对应的多个内容类别与目标项目之间的第二类别匹配程度;
S304,获取各协议要素对应的多个第一类别匹配程度形成的第一匹配程度集合,以及各协议要素对应的第一匹配程度集合的第一信息熵;
S306,获取各协议要素对应的多个第二类别匹配程度形成的第二匹配程度集合,以及各协议要素对应的第二匹配程度集合的第二信息熵;
S308,根据各协议要素对应的第一信息熵和第二信息熵,确定各协议要素的要素集中度。
其中,第二类别匹配程度可以是目标项目在各项协议要素的不同类别之间的概率分布。第一匹配程度集合可以是包含有多个第一类别匹配程度的集合,第一类别匹配程度集合可以是第一类别匹配程度形成的向量,可以是概率向量。第二匹配程度集合可以是包含有多个第二类别匹配程度的集合,第二类别匹配程度集合可以是第二类别匹配程度形成的矩阵,可以是概率向量。第一信息熵可以表征第一匹配程度集合中的元素的集中度。第二信息熵可以表征第二匹配程度集合中的元素的集中度。要素集中度可以是根据第一匹配程度集合和第二匹配程度集合得到的信息增益率。
示例性地,在概率预测模型训练前,对于每一项协议要素,根据该协议要素对应的各内容类别中包含的开源许可协议的数量,估计目标项目在不同类别之间的概率分布,该分布可以被视作一种先验分布,得到该协议要素对应的多个内容类别与目标项目之间的第二类别匹配程度。
对于每一项协议要素,可以得到该协议要素对应的多个第一类别匹配程度形成的第一匹配程度集合,例如第一类别概率向量,以及可以得到第一类别概率向量对应的第一信息熵。并且对于每一项协议要素,可以得到该协议要素对应的多个第二类别匹配程度形成的第二匹配程度集合,例如第二类别概率向量(根据内容类别的先验分布得到),可以得到第二类别概率向量对应的第二信息熵。进一步地,根据该协议要素对应的第一信息熵和第二信息熵,确定该协议要素的要素集中度。
例如,第一类别概率向量可以是目标项目在多个内容类别上的概率形成的概率向量。第二类别概率向量可以是先验概率分布确定的,根据协议要素对应的各个协议类别的概率形成的概率向量。
本实施例中,通过根据各协议要素对应的各内容类别中包含的开源许可协议的数量,得到各协议要素对应的多个内容类别与目标项目之间的第二类别匹配程度;获取各协议要素对应的多个第一类别匹配程度形成的第一匹配程度集合,以及各协议要素对应的第一匹配程度集合的第一信息熵;获取各协议要素对应的多个第二类别匹配程度形成的第二匹配程度集合,以及各协议要素对应的第二匹配程度集合的第二信息熵;根据各协议要素对应的第一信息熵和第二信息熵,确定各协议要素的要素集中度。如此,对于每一项协议要素,通过先验分布以及模型预测得到该协议要素的内容类别对应的后验分布,分别得到第一信息熵和第二信息熵,进一步能够根据第一信息熵和第二信息熵确定要素集中度,从而使用要素集中度这一指标定量地评估特定协议要素对于一个开源项目的异质重要性,为开源项目提供有关协议要素及其内容的个性化推荐。
在一个实施例中,根据各协议要素的要素集中度,获取目标协议要素,包括:
根据各协议要素对应的多个内容类别,得到各协议要素的信息质量;
根据各协议要素的要素集中度,以及各协议要素的信息质量,得到各协议要素的推荐度;
将推荐度满足预设条件的协议要素,作为目标协议要素。
其中,信息质量可以是评估多个开源许可协议之间在协议要素上的内容区分度的指标,若内容区分度高,则代表不同开源许可协议针对该协议要素的保护作用的差异性大,在挑选许可协议时该协议要素的重要性高;相反,若内容区分度低,则代表不同开源许可协议针对该协议要素的保护作用相似,在挑选许可协议时无需考虑该协议要素。协议要素的推荐度指的是对协议要素进行推荐的推荐度。预设条件可以是针对推荐度进行预设设置的条件,例如,满足推荐度排名前三可以为满足预设条件。目标协议要素可以指的是为目标项目进行推荐的协议要素。
示例性地,对于每一个协议要素,根据该协议要素对应的多个内容类别,计算得到该协议要素的信息质量。例如,可以根据该协议要素对应的内容类别矩阵,得到该协议要素的信息质量。根据该协议要素的信息质量,以及该协议要素的要素集中度,得到该协议要素的推荐度。如果该协议要素的推荐度能够满足预先设置的条件,则可以将该协议要素作为目标协议要素。例如,如果该协议要素在多项要素中排序前三,则可以将该协议要素作为目标协议要素。
例如,对于每一项协议要素,可以根据以下公式进行该协议要素的推荐度的计算:
R=S×gr
其中,R为推荐度,S为信息质量,gr为要素集中度。
按照协议要素的推荐度大小,对开源许可协议的协议要素进行降序排序,将R排名前三的协议要素内容提供推荐。进一步,对于每一项协议要素,根据该协议要素对应的第一类别概率向量vc,可以获取预测概率最高的内容类别m:
gi为目标协议要素对应的第i个内容类别的第一类别匹配程度。k为目标协议要素对应的内容类别的数量。
该协议要素对应的具体推荐内容为所有被划分入类别m的协议要素内容。
本实施例中,通过根据各协议要素的要素集中度,以及各协议要素的信息质量,得到各协议要素的推荐度;进一步将推荐度满足预设条件的协议要素,作为目标协议要素。如此,能够有效地为目标项目确定值得被推荐的协议要素,进一步能够根据目标协议要素确定出具体推荐的协议要素内容,实现了针对于目标项目的有关协议要素及其内容的个性化推荐。
在一个实施例中,将推荐度满足预设条件的协议要素,作为目标协议要素,包括:
按照多个协议要素的推荐度,对各协议要素进行降序排序;
将排序在预设位次之前的协议要素,作为目标协议要素。
其中,预设位次可以是用户通过终端预先设置的位次。
示例性地,可以按照多个协议要素的推荐度大小,对协议要素进行降序排序,得到各个协议要素的排序顺序,并且将排序顺序前三的三个协议要素作为目标协议要素。进一步,可以将三个目标协议要素对应的协议要素内容对目标项目进行推荐。
根据目标协议要素对应的多个内容类别与目标项目之间的第一类别匹配程度,确定目标协议要素的目标内容类别,包括:
从目标协议要素对应的多个内容类别与目标项目之间的第一类别匹配程度中,将最大的第一类别匹配程度对应的内容类别作为目标协议要素的目标内容类别。
示例性地,可以从三个目标协议要素分别对应的多个内容类别与目标项目之间的第一类别匹配程度中,将最大的第一类别匹配程度对应的内容类别作为该目标协议要素的目标内容类别。即,对于三个目标协议要素中的每一个目标协议要素,从该目标协议要素对应的多个内容类别与目标项目之间的第一类别匹配程度中,将最大的第一类别匹配程度对应的内容类别作为该目标协议要素的目标内容类别。
本实施例中,通过对各协议要素进行降序排序,从排序结果中确定出目标协议要素,从而能够准确地确定出需要推荐的协议要素,提高了对目标项目进行协议要素内容推荐的准确性。
在一个实施例中,根据各协议要素对应的多个内容类别,得到各协议要素的信息质量,包括:
根据各协议要素对应的多个内容类别,得到各协议要素对应的平均轮廓系数;
将各协议要素对应的平均轮廓系数作为各协议要素的信息质量。
示例性地,对于每一个协议要素,在进行聚类时,在最优簇数 k 的情况下进行聚类计算所得的平均轮廓系数,可以作为一种评价开源许可协议的协议要素重要性的指标。对于每一个协议要素,可以将该协议要素对应的平均轮廓系数作为该协议要素对应的信息质量。
本实施例中,通过将各协议要素对应的平均轮廓系数作为各协议要素对应的信息质量,能够提高确定获取目标协议要素的准确性,从而能够提高对目标项目进行协议要素内容推荐的准确性。
在一个实施例中,协议概率预测模型的训练方式,包括:
获取多个样本项目,以及各样本项目分别对应的开源许可协议;
将多个样本项目以及各样本项目分别对应的开源许可协议,输入至待训练的协议概率预测模型,对协议概率预测模型进行训练。
其中,样本项目可以是用于进行模型训练的开源项目。
示例性地,可以将多个样本项目以及各样本项目分别对应的开源许可协议,输入到待训练的协议概率预测模型,训练一个带有L1 正则项的多元逻辑回归模型,将训练好的带有L1 正则项的多元逻辑回归模型作为协议概率预测模型。
本实施例中,通过对协议概率预测模型进行训练,能够将训练好的协议概率预测模型用于进行开源许可协议的概率预测,从而可以实现对开源项目进行协议要素内容的推荐,提高了对开源项目进行协议要素内容推荐的准确性。
在一个实施例中,多个样本项目以样本项目表的形式表征;
将多个样本项目以及各样本项目分别对应的开源许可协议输入至待训练的协议概率预测模型之前,包括:
将样本项目表中包含的项目描述内容和读我文档内容进行合并,得到项目文本信息;
将项目文本信息进行向量化处理,得到向量化处理后的项目文本信息。
其中,样本项目表可以是对软件项目相关信息进行采集,生成的项目表格。项目描述内容和读我文档内容指的是项目表格中包含的表格内容。开源许可协议表可以是对开源许可协议相关信息进行采集,生成的开源许可协议表格。预处理可以是分词、停用词过滤、词干化等文本处理流程。向量化处理可以是将上述内容进行向量化表示。
示例性地,可以将样本项目表中包含的项目描述内容和读我文档内容进行合并,得到项目文本信息。提供项目内容梗概的项目描述内容与包含项目详细介绍的读我文档内容之间的信息重合度较高,若两列分别向量化处理,可能产生的共线性问题,故对其进行合并一同进行向量化。对开源许可协议表中包含的各个协议要素内容进行分词、停用词过滤、词干化等文本处理流程,得到预处理后的协议要素内容。将项目文本信息和预处理后的协议要素内容进行向量化处理,得到向量化处理后的项目文本信息以及向量化处理后的协议要素内容。例如,可以是将项目文本信息和预处理后的协议要素内容作为语料库,输入模型Word2Vec(词向量),进一步生成样本项目的项目文本信息以及协议要素内容的向量化表示。
将多个样本项目以及各样本项目分别对应的开源许可协议输入至待训练的协议概率预测模型,包括:
将向量化处理后的项目文本信息以及各样本项目分别对应的开源许可协议的协议类型输入至待训练的协议概率预测模型。
其中,协议类型指的是开源许可协议所属于的类型。
示例性地,将用向量化表示的项目文本信息及其对应的协议类型输入至待训练的协议概率预测模型。
本实施例中,将项目描述内容与项目读我文档内容进行合并处理一同进行向量化处理,能够提高输入至协议概率预测模型的数据的准确性。将项目文本信息进行向量化处理,统一进行表示能够提高处理效率,并且能够提高对开源项目进行协议要素进行推荐的准确性。
在一个实施例中,如图4所示,基于各开源许可协议与目标项目的匹配程度,以及各协议要素对应的协议要素内容的多个内容类别,确定各协议要素对应的多个内容类别与目标项目之间的第一类别匹配程度,包括:
S402,根据各开源许可协议与目标项目的匹配程度,得到匹配程度向量;
S404,根据各协议要素对应的协议要素内容,与各内容类别的对应关系,形成内容类别矩阵;
S406,根据匹配程度向量和内容类别矩阵,得到各内容类别与目标项目的第一类别匹配程度。
其中,匹配程度向量可以是协议概率向量。内容类别矩阵中包含的元素可以用数值来表示,例如,如果某一协议要素的协议要素内容属于某一内容类别,则对应的数值为1,否则为0,如此,可以确定各协议要素内容与各内容类别的对应关系,以形成内容类别矩阵。各内容类别与目标项目的第一类别匹配程度可以形成概率向量,即通过多个第一类别匹配程度形成类别概率向量。
示例性地,根据各开源许可协议与目标项目的匹配程度,得到协议概率向量。根据各开源许可协议与各内容类别的对应关系,形成内容类别矩阵。并且通过协议概率向量和内容类别矩阵,得到各内容类别和目标项目之间的第一类别匹配程度。
例如,给定一个目标项目,协议概率预测模型可以计算出各个开源许可协议的条件概率分布,即为协议分布。协议分布记为vl,由一个m维向量表示,其中m为开源许可协议表中许可协议的数量,pi为模型预测的项目挑选第i个许可协议的概率:
协议分布可以作为为目标项目挑选合适的开源许可协议的主要参考依据,若pi越大,则开源平台上与其相似度较高的项目选择第i个开源许可协议的数量比重越大,同时表明该开源许可协议越合适。
针对每个开源许可协议的协议要素,可以采用 K-means 算法对协议要素内容进行聚类,具有相似语义的要素内容被划分为同一类,语义差异较大的要素内容将被划分入不同类别,形成内容类别矩阵,记为 M。具体地,M为一个由k行与m列组成的矩阵,其中m为开源许可协议表中开源许可协议的数量,k为聚类形成的簇数或类别数量,di,j为开源许可协议j在类别i上的映射。若di,j 等于 1,则代表开源许可协议j被划分为类别i;若di,j等于 0,则代表开源许可协议j不属于类别i:
结合协议分布与内容类别矩阵,并按下式计算出要素分布,记为Vc
其中Vc为一个m维向量表示,gi为项目挑选的许可协议属于第 i个内容类别的预测概率。
本实施例中,通过根据各开源许可协议与目标项目的匹配程度,得到匹配程度向量;根据各开源许可协议与各内容类别的对应关系,形成内容类别矩阵;根据匹配程度向量和内容类别矩阵,得到各内容类别与目标项目的第一类别匹配程度。如此,能够准确获取各内容类别与目标项目的第一类别匹配程度,从而能够提高对目标项目进行协议要素内容推荐的准确性。
在一个实施例中,提供了一种开源许可协议的协议要素推荐方法,总体流程框架如图5所示,S501,获取开源许可协议表;S502,获取开源软件项目表;S503进行数据清洗;S504,进行协议概率预测模型的训练和评估;S505,确定推荐内容;S506,输出结果。具体包括以下步骤:
采集开源许可协议的要素内容与开源软件项目的基础信息。对开源许可协议与软件项目相关信息进行采集,生成两个表格:(1)开源许可协议表,包括协议名称(License)与简要介绍(Definitions)等基础信息,以及版权(Copyright)、专利权(Patent)、商标权(Trademark)、分发限制权(Redistribution)、免责声明(Disclaimer of Warranty)等协议要素内容;(2)开源软件项目表,包含项目名称(project_name)、项目描述(description)、关键主题(topics)、文件大小(size)、编程语言(language)、推送时间(push_at)、读我文档(readme_text)与开源许可协议(license)。
将项目表中项目描述与读我文档两列合并为一个新列,命名为项目文本信息;将开源许可协议表的所有列(除开源许可协议外)与开源软件项目表的项目文本信息作为语料库,经过分词、停用词过滤、词干化等文本预处理后,计算 word2vec 词向量,并生成开源许可协议的各项要素以及开源软件的项目文本信息的向量化表示;去除开源软件项目表中开源许可协议为空的项目;对开源软件项目表中的类别型变量进行独热编码,如编程语言等;从开源软件项目表中的时间型变量中提取年份数据,并转化为连续型变量,如推送时间等;根据开源软件项目表中的关键主题,构建以项目为节点、共用关键主题为链路的关系网络,并生成若干与开源许可协议相关的特征;合并开源软件项目的不同信息,包括项目文本信息、编程语言、推送年份、网络特征等,生成囊括项目多方面信息的向量。
如图6所示为数据预处理步骤的数据示意图,步骤包括:文本型特征处理步骤、文本型特征处理步骤、时间型特征处理步骤、元组型特征处理步骤。
文本型特征处理步骤包括:开源软件项目表中的项目描述与读我文档两列合并为一列项目文本信息,利用正则化从富文本中提取纯文本,再同开源许可协议表中的各项要素一起,经过分词、停用词过滤、词干化等文本处理流程。将开源许可协议表的所有列(除协议名称外)与开源软件项目表的项目文本信息作为语料库,训练词嵌入模型 Word2Vec,进一步生成项目的项目文本信息以及协议不同要素内容的向量化表示。
该步骤主要目的是将非结构化的文本数据转化为结构化的特征,其中作为项目摘要的项目描述与包含项目详细描述的读我文档的信息重合度较高,若两列分别向量化处理,可能产生的共线性问题,故对其进行合并一同进行向量化。此外,将开源许可协议表与开源软件项目表中的文本内容放入同一语料库,有助于项目文本信息的向量化表示包含更多与许可协议相关的语义信息,提高后续经过训练所得的推荐模型的效果。
类别型特征处理步骤包括:项目集中的分类型变量“编程语言”通过独热编码处理,所有类别值均转化为一个由多个二元变量组成的向量。
时间型特征处理步骤包括:从项目集中的时间型变量“推送时间”提取年份信息,并将其转化为连续性变量,表示项目的发布年份。
此步骤的目的是考虑不同年份之间特定开源许可协议的受欢迎程度的变化,在其他信息不变的情况下,后续推荐模型将会提高最近几年热门的许可协议的预测概率。
元组型特征处理步骤包括:根据项目集中的元组型变量“关键主题”,构建项目之间的关系网络,其中网络的节点代表一个项目样本,共享至少一个 “关键主题” 元素的两个节点之间相连构成链路,项目的许可协议通过独热编码转化为向量形式并作为对应节点的特征值,两个节点共同出现的“关键主题” 元素的数量作为链路的特征值。按照网络结构,生成若干与许可协议相关的特征,从而形成向量化表示。具体地,对于特定项目i,作为网络结构中的一个节点,以链路的特征值作为权重,与项目直接相连的节点的特征值作为数值,进行加权平均运算,最后得到一个基于关系网络的协议分布向量:
其中 wi,j为项目i与项目j之间链路的特征值,voh T为项目i的开源许可协议进行独热编码后的向量化表示,n为开源平台上所有软件项目的数量。若项目不存在与其他项目共享的“关键主题”元素,代表该项目的节点在关系网络中将不与任何其他节点构成链路,其基于关系网络的协议分布向量为:
其中m为许可协议的数量。此步骤的目的是通过由共享 “关键主题”构建的项目关系网,找到与项目主题相似或密切相关的其他项目,并生成总结性的统计指标,为推荐模型提供更多的外部信息。
合并上述步骤中项目不同类型变量转化后的向量化表示,包括项目文本信息、编程语言、推送时间、关键主题等,生成一个新的囊括项目多方面信息的向量,记为项目向量。
如图7所示为模型训练以及获取要素集中度和平均轮廓系数的框图,步骤包括:
模型训练的过程包括:运用带 L1 正则项的多元逻辑回归算法训练协议概率预测模型,其中开源软件项目表中的开源许可协议作为预测变量,开源软件项目表中的其余列作为解释变量,最终输出项目在不同开源许可协议之间的协议分布(协议概率向量)。运用K-means 算法进行聚类,针对每项要素,按照文本相似度将要素内容划分为不同类别。因为开源许可协议表共有六项要素(包括基础内容和权益等),上述聚类过程将进行六次,分别形成一个描述要素内容到对应类别的映射关系的矩阵(内容类别矩阵),所有许可协议的特征均由向量转化为类别型变量。对于每项要素,结合项目的协议分布以及协议要素的内容类别矩阵,得到项目在各项协议要素的不同类别上预测分布(类别概率向量)。
该步骤由三部分组成,分别生成项目的协议分布、许可协议的内容类别矩阵、许可协议要素的内容分布。
生成协议分布(协议概率向量)的步骤包括:给定一个目标项目,协议概率预测模型可以计算出各个开源许可协议的条件概率分布,即为协议分布。协议分布记为vl,由一个m维向量表示,其中m为开源许可协议表中许可协议的数量,pi为模型所预测的项目挑选第i个许可协议的概率:
协议分布可以作为为目标项目挑选合适的开源许可协议的主要参考依据,若pi越大,则开源平台上与其相似度较高的项目选择第i个开源许可协议的数量比重越大,同时表明该开源许可协议越合适。
生成内容类别矩阵的步骤包括:针对每个开源许可协议的协议要素,可以采用K-means 算法对协议要素内容进行聚类,具有相似语义的要素内容被划分为同一类,语义差异较大的要素内容将被划分入不同类别,形成内容类别矩阵,记为 M。具体地,M为一个由k行与m列组成的矩阵,其中 m为开源许可协议表中开源许可协议的数量,k为聚类形成的簇数或类别数量,di,j为开源许可协议j在类别i上的映射。若di,j 等于 1,则代表开源许可协议j被划分为类别i;若di,j等于 0,则代表开源许可协议j不属于类别i:
在进行聚类时,根据平均轮廓系数选择最合适的簇数k,且不同要素的k值不要求保持一致。当开源许可协议的某项要素或权益的内容缺失时,则认为该协议不具备保障此权益的作用,所有缺失此要素的协议被单独划分为一类。此外,在最优簇数k的情况下进行聚类而计算所得的平均轮廓系数,将作为一种评价许可协议要素重要性的指标,其被命名为信息质量并记为S。
生成类别概率向量的步骤包括:结合协议分布与协议类别矩阵,并按下式计算出要素分布,记为vc
其中vc为一个m维向量表示,gi为项目挑选的许可协议属于第 i个协议类别的预测概率。
此步骤的主要目的是,由于不同许可协议之间并不具备互斥性,不同许可协议对权益的保障作用可能相似,所以一个开源项目可能同时适配于多个许可协议。在这种情况下,协议分布将表现为高度分散化,无法直接为项目提供合适的许可协议类型。相反,若不同许可协议对于某项要素或权益的保障作用相似,它们在该要素上的文本内容及其转换后的向量化表示也将具有高相似性,所以即使协议分布呈分散化,当且仅当项目对要素或权益的需求明确,项目仍将在此要素的语义层面上保持高度集中。为便于分析许可协议的要素内容,通过聚类将要素的不同内容由多维向量降维至类别型变量,并用平均轮廓系数评价聚类的效果。聚类结果的好坏,一定程度上反映了该要素在所有许可协议上的信息质量,系数数值越大且接近于1,则说明不同许可协议在该要素上的定义越明确并具有区分度;相反,若系数数值在 0 附近甚至小于 0,则说明许可协议对该要素的定义模糊,保障作用也越弱。
对于每项要素,利用信息增益率衡量项目在每项要素上的内容集中度(协议要素的集中度),该要素集中度作为选择要素时的相对重要程度。
如图8所示为计算要素集中度的流程框图,协议要素的集中度计算的步骤包括:vc可以被理解为一种条件分布(第一类别概率向量),即在考虑项目信息与内容后,模型对项目选择的许可协议的要素内容的预测。相反地,在模型训练前,项目只能根据不同要素类别中许可协议的数量,估计项目在各项要素的不同内容类别之间的概率分布,该分布可以被视作一种先验分布,记为vn(第二类别概率向量)。所以,按照条件分布计算条件熵H(vc),同时按照先验分布计算信息熵H(vn),进一步地计算出信息增益率并将其作为协议要素的集中度的指标,记为gr。具体的计算流程如下所示:
本步骤中,要素集中度指标定量地评估了特定要素对于一个开源项目的异质重要性。具体地,H(vn)与H(vc)分别衡量了要素类别在考虑项目内容前后的不确定性,信息增益H(vn)-H(vc)则度量了项目内容在选择要素的具体类别的过程中提供的信息量,信息增益越大,则表明项目对该项要素重视程度越高且对其背后的权益的保障需求越明确。为保证不同要素之间的可比性,最终采用信息增益率作为要素集中度的代理指标。
如图9所示为确定推荐内容并输出结果的数据流向架构图,步骤包括:根据协议概率向量、内容类别矩阵、第一类别概率向量、第二类别概率向量以及要素推荐度,对开源许可协议的每项要素的信息价值进行综合性评价,并挑选信息质量高且确定性高的内容作为推荐内容,输出结果。
该步骤由两部分组成,分别判断是否直接推荐开源许可协议,以及推荐哪些协议要素的具体内容。前者直接帮助开发者解决了开源许可协议的选择问题,而后者有助于开发者更充分地了解项目最需要受保护的权益及其内容,辅助开发者理解项目与许可协议的内容,从而后续可以自行地进行决策。
判断是否推荐开源许可协议类型包括:对于协议概率向量,设定阙值t(要求0≤t≤1),若存在单个开源许可协议的预测概率pi大于或等于t,则直接推荐该开源许可协议;否则,不直接提供开源许可协议类型。其中,项目开发者可根据自身的风险偏好,选择合适的阙值。
判断推荐的开源许可协议要素及其具体内容的步骤,包括:对于每项许可协议要素,根据其信息质量与集中度,按下式计算要素的推荐度R:
R=S×gr
其中,R为要素推荐度,S为协议要素的信息质量,gr为要素集中度。
按照要素推荐度大小,对开源许可协议要素进行降序排序,将R排名前三的协议要素内容提供推荐。具体地,对于每一项被协议要素内容的要素,根据该协议要素内容对应的第一匹配程度集合vc获取预测概率最高的要素类别m:
gi为候选出来的第i个候选协议类别的第一类别匹配程度。k为候选出来的候选协议类别的数量。
该协议要素内容的具体推荐内容为所有被划分入类别m的开源许可协议在此协议要素上的文本内容。
例如,某一项目在商标权上的推荐度最高,根据其在商标权上的第一类别概率向量,可知该项目在商标权类别m上的预测概率最高,而商标权类别m由两个许可协议的商标权内容组成,对此,将为项目提供上述两条商标权的文本内容。
本实施例中,基于文本分析方法为开源项目推荐合适的协议类型与组成要素,即除了能直接地帮助开发者解决开源许可协议的选择问题外,进一步的,可以有针对性地为开源项目指出重要程度较高的要素类别并提供具体内容,明确协议选择过程中需要考虑的重点因素。本申请以开源软件项目的基本信息以及内容文本与开源许可协议的要素内容为基础,结合一系列的算法对项目在协议类型以及其保护的不同要素上的信息不确定性进行评分,依据项目的特点与具体内容,评估项目与不同许可协议之间的匹配性,以及确定项目所需受保护的要素。最后,根据上述评估结果,进一步进行综合性评价,并输出合适的许可协议类型或内容。
应该理解的是,虽然如上所述的各实施例所涉及的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,如上所述的各实施例所涉及的流程图中的至少一部分步骤可以包括多个步骤或者多个阶段,这些步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤中的步骤或者阶段的至少一部分轮流或者交替地执行。
基于同样的发明构思,本申请实施例还提供了一种用于实现上述所涉及的协议要素内容推荐方法的协议要素内容推荐装置。该装置所提供的解决问题的实现方案与上述方法中所记载的实现方案相似,故下面所提供的一个或多个协议要素内容推荐装置实施例中的具体限定可以参见上文中对于协议要素内容推荐方法的限定,在此不再赘述。
在一个实施例中,如图10所示,提供了一种协议要素内容推荐装置,包括:匹配程度获取模块910、内容类别获取模块920、类别匹配程度模块930、目标要素获取模块940和要素内容推荐模块950,其中:
匹配程度获取模块910,用于获取目标项目以及预先设定的多个开源许可协议,并将目标项目输入至预先训练的协议概率预测模型,通过协议概率预测模型,获取各开源许可协议与目标项目之间的匹配程度;
内容类别获取模块920,用于获取多个协议要素在各开源许可协议中的协议要素内容,并对各协议要素对应的协议要素内容分别进行分类,得到各协议要素对应的协议要素内容的多个内容类别。
类别匹配程度模块930,用于基于各开源许可协议与目标项目的匹配程度,以及各协议要素对应的协议要素内容的多个内容类别,确定各协议要素对应的多个内容类别与目标项目之间的第一类别匹配程度;其中,目标项目与各协议要素均之间对应有多个第一类别匹配程度。
目标要素获取模块940,用于根据各协议要素对应的多个第一类别匹配程度,确定各协议要素的要素集中度,并根据各协议要素的要素集中度,获取目标协议要素。
要素内容推荐模块950,用于根据目标协议要素对应的多个内容类别与目标项目之间的第一类别匹配程度,确定目标协议要素的目标内容类别,将目标内容类别对应的协议要素内容作为针对目标项目进行推荐的协议要素内容。
在一个实施例中,目标要素获取模块包括第二类别匹配程度单元、第一匹配程度集合单元、第二匹配程度集合单元和要素集中度确定单元。
第二类别匹配程度单元用于根据各协议要素对应的各内容类别中包含的开源许可协议的数量,得到各协议要素对应的多个内容类别与目标项目之间的第二类别匹配程度。第一匹配程度集合单元用于获取各协议要素对应的多个第一类别匹配程度形成的第一匹配程度集合,以及各协议要素对应的第一匹配程度集合的第一信息熵。第二匹配程度集合单元用于获取各协议要素对应的多个第二类别匹配程度形成的第二匹配程度集合,以及各协议要素对应的第二匹配程度集合的第二信息熵。要素集中度确定单元用于根据各协议要素对应的第一信息熵和第二信息熵,确定各协议要素的要素集中度。
在一个实施例中,目标要素获取模块包括要素指标确定单元、推荐度确定单元和目标协议要素单元。
要素指标确定单元用于根据各协议要素对应的多个内容类别,得到各协议要素的信息质量。推荐度确定单元用于根据各协议要素的要素集中度,以及各协议要素的信息质量,得到各协议要素的推荐度。目标协议要素单元用于将推荐度满足预设条件的协议要素,作为目标协议要素。
在一个实施例中,目标协议要素单元包括降序排序单元和目标协议要素确定单元。
降序排序单元用于按照多个协议要素的推荐度,对各协议要素进行降序排序。目标协议要素确定单元用于将排序在预设位次之前的协议要素,作为目标协议要素。要素内容推荐模块用于从目标协议要素对应的多个内容类别与目标项目之间的第一类别匹配程度中,将最大的第一类别匹配程度对应的内容类别作为目标协议要素的目标内容类别。
在一个实施例中,要素指标确定单元包括轮廓系数单元和信息质量获取单元。
轮廓系数单元用于根据各协议要素对应的多个内容类别,得到各协议要素对应的平均轮廓系数。信息质量获取单元用于将各协议要素对应的平均轮廓系数,作为各协议要素的信息质量。
在一个实施例中,该装置还包括样本项目获取单元和模型训练单元。
样本项目获取单元用于获取多个样本项目,以及各样本项目分别对应的开源许可协议。模型训练单元用于将多个样本项目以及各样本项目分别对应的开源许可协议,输入至待训练的协议概率预测模型,对协议概率预测模型进行训练。
在一个实施例中,多个样本项目以样本项目表的形式表征;多个开源许可协议以开源许可协议表的形式表征;该装置还包括内容合并单元、预处理单元和向量化处理单元。
内容合并单元用于将样本项目表中包含的项目描述内容和项目读我文档内容进行合并,得到项目文本信息。向量化处理单元用于将项目文本信息进行向量化处理,得到向量化处理后的项目文本信息以及向量化处理后的协议要素内容。模型训练单元用于将向量化处理后的项目文本信息以及各样本项目分别对应的开源许可协议的协议类型输入至待训练的协议概率预测模型。
在一个实施例中,类别匹配程度模块包括协议概率向量单元、内容类别矩阵单元和第一类别匹配程度单元。
协议概率向量单元用于根据各开源许可协议与目标项目的匹配程度,得到匹配程度向量。内容类别矩阵单元用于根据各协议要素对应的协议要素内容,与各内容类别的对应关系,形成内容类别矩阵。第一类别匹配程度单元用于根据匹配程度向量和内容类别矩阵,得到各内容类别与目标项目的第一类别匹配程度。
上述协议要素内容推荐装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
在一个实施例中,提供了一种计算机设备,该计算机设备可以是服务器,其内部结构图可以如图11所示。该计算机设备包括处理器、存储器、输入/输出接口(Input/Output,简称I/O)和通信接口。其中,处理器、存储器和输入/输出接口通过系统总线连接,通信接口通过输入/输出接口连接到系统总线。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质和内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的数据库用于存储开源许可协议。该计算机设备的输入/输出接口用于处理器与外部设备之间交换信息。该计算机设备的通信接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种协议要素推荐方法。
本领域技术人员可以理解,图11中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在一个实施例中,还提供了一种计算机设备,包括存储器和处理器,存储器中存储有计算机程序,该处理器执行计算机程序时实现上述各方法实施例中的步骤。
在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现上述各方法实施例中的步骤。
在一个实施例中,提供了一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现上述各方法实施例中的步骤。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、数据库或其它介质的任何引用,均可包括非易失性和易失性存储器中的至少一种。非易失性存储器可包括只读存储器(Read-OnlyMemory,ROM)、磁带、软盘、闪存、光存储器、高密度嵌入式非易失性存储器、阻变存储器(ReRAM)、磁变存储器(Magnetoresistive Random Access Memory,MRAM)、铁电存储器(Ferroelectric Random Access Memory,FRAM)、相变存储器(Phase Change Memory,PCM)、石墨烯存储器等。易失性存储器可包括随机存取存储器(Random Access Memory,RAM)或外部高速缓冲存储器等。作为说明而非局限,RAM可以是多种形式,比如静态随机存取存储器(Static Random Access Memory,SRAM)或动态随机存取存储器(Dynamic RandomAccess Memory,DRAM)等。本申请所提供的各实施例中所涉及的数据库可包括关系型数据库和非关系型数据库中至少一种。非关系型数据库可包括基于区块链的分布式数据库等,不限于此。本申请所提供的各实施例中所涉及的处理器可为通用处理器、中央处理器、图形处理器、数字信号处理器、可编程逻辑器、基于量子计算的数据处理逻辑器等,不限于此。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本申请专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请的保护范围应以所附权利要求为准。

Claims (10)

1.一种协议要素内容推荐方法,其特征在于,所述方法包括:
获取目标项目以及预先设定的多个开源许可协议,并将所述目标项目输入至预先训练的协议概率预测模型,通过所述协议概率预测模型,获取各所述开源许可协议与所述目标项目之间的匹配程度;
获取多个协议要素在各所述开源许可协议中的协议要素内容,并对各所述协议要素对应的协议要素内容分别进行分类,得到各所述协议要素对应的协议要素内容的多个内容类别;
基于各所述开源许可协议与所述目标项目的匹配程度,以及各所述协议要素对应的协议要素内容的多个内容类别,确定各所述协议要素对应的多个内容类别与所述目标项目之间的第一类别匹配程度;其中,所述目标项目与各所述协议要素之间均对应有多个第一类别匹配程度;
根据各所述协议要素对应的多个第一类别匹配程度,确定各所述协议要素的要素集中度,并根据各所述协议要素的要素集中度,获取目标协议要素;
根据所述目标协议要素对应的多个内容类别与所述目标项目之间的第一类别匹配程度,确定所述目标协议要素的目标内容类别,将所述目标内容类别对应的协议要素内容作为针对所述目标项目进行推荐的协议要素内容;
其中,所述根据各所述协议要素对应的多个第一类别匹配程度,确定各所述协议要素的要素集中度,包括:
根据各所述协议要素对应的各所述内容类别中包含的开源许可协议的数量,得到各所述协议要素对应的多个内容类别与所述目标项目之间的第二类别匹配程度;
获取各所述协议要素对应的多个第一类别匹配程度形成的第一匹配程度集合,以及各所述协议要素对应的第一匹配程度集合的第一信息熵;
获取各所述协议要素对应的多个第二类别匹配程度形成的第二匹配程度集合,以及各所述协议要素对应的第二匹配程度集合的第二信息熵;
根据各所述协议要素对应的第一信息熵和第二信息熵,确定各所述协议要素的要素集中度。
2.根据权利要求1所述的方法,其特征在于,所述根据各所述协议要素的要素集中度,获取目标协议要素,包括:
根据各所述协议要素对应的多个内容类别,得到各所述协议要素的信息质量;
根据各所述协议要素的要素集中度,以及各所述协议要素的信息质量,得到各所述协议要素的推荐度;
将推荐度满足预设条件的协议要素,作为所述目标协议要素。
3.根据权利要求2所述的方法,其特征在于,所述将推荐度满足预设条件的协议要素,作为所述目标协议要素,包括:
按照所述多个协议要素的推荐度,对各所述协议要素进行降序排序;
将排序在预设位次之前的协议要素,作为所述目标协议要素;
所述根据所述目标协议要素对应的多个内容类别与所述目标项目之间的第一类别匹配程度,确定所述目标协议要素的目标内容类别,包括:
从所述目标协议要素对应的多个内容类别与所述目标项目之间的第一类别匹配程度中,将最大的第一类别匹配程度对应的内容类别作为所述目标协议要素的目标内容类别。
4.根据权利要求2所述的方法,其特征在于,所述根据各所述协议要素对应的多个内容类别,得到各所述协议要素的信息质量,包括:
根据各所述协议要素对应的多个内容类别,得到各所述协议要素对应的平均轮廓系数;
将各所述协议要素对应的平均轮廓系数,作为各所述协议要素的信息质量。
5.根据权利要求1所述的方法,其特征在于,所述协议概率预测模型的训练方式,包括:
获取多个样本项目,以及各所述样本项目分别对应的开源许可协议;
将所述多个样本项目以及各所述样本项目分别对应的开源许可协议输入至待训练的协议概率预测模型,对所述协议概率预测模型进行训练。
6.根据权利要求5所述的方法,其特征在于,所述多个样本项目以样本项目表的形式表征;
所述将所述多个样本项目以及各所述样本项目分别对应的开源许可协议输入至待训练的协议概率预测模型之前,包括:
将所述样本项目表中包含的项目描述内容和读我文档内容进行合并,得到项目文本信息;
将所述项目文本信息进行向量化处理,得到向量化处理后的项目文本信息;
所述将所述多个样本项目以及各所述样本项目分别对应的开源许可协议输入至待训练的协议概率预测模型,包括:
将所述向量化处理后的项目文本信息以及各样本项目分别对应的开源许可协议的协议类型输入至待训练的协议概率预测模型。
7.根据权利要求1所述的方法,其特征在于, 所述基于各所述开源许可协议与所述目标项目的匹配程度,以及各所述协议要素对应的协议要素内容的多个内容类别,确定各所述协议要素对应的多个内容类别与所述目标项目之间的第一类别匹配程度,包括:
根据各所述开源许可协议与所述目标项目的匹配程度,得到匹配程度向量;
根据各所述协议要素对应的协议要素内容,与各所述内容类别的对应关系,形成内容类别矩阵;
根据所述匹配程度向量和所述内容类别矩阵,得到各所述内容类别与所述目标项目的第一类别匹配程度。
8.一种协议要素内容推荐装置,其特征在于,所述装置包括:
匹配程度获取模块,用于获取目标项目以及预先设定的多个开源许可协议,并将所述目标项目输入至预先训练的协议概率预测模型,通过所述协议概率预测模型,获取各所述开源许可协议与所述目标项目的匹配程度;
内容类别获取模块,用于获取多个协议要素在各所述开源许可协议中的协议要素内容,并对各所述协议要素对应的协议要素内容进行分类,得到各所述协议要素对应的协议要素内容的多个内容类别;
类别匹配程度模块,用于基于各所述开源许可协议与所述目标项目的匹配程度,以及各所述协议要素对应的协议要素内容的多个内容类别,确定各所述协议要素对应的多个内容类别与所述目标项目之间的第一类别匹配程度;其中,各所述协议要素均对应有多个第一类别匹配程度;
目标要素获取模块,用于根据各所述协议要素对应的多个第一类别匹配程度,确定各所述协议要素的要素集中度,并根据各所述协议要素的要素集中度,获取目标协议要素;
要素内容推荐模块,用于根据所述目标协议要素对应的多个内容类别与所述目标项目之间的第一类别匹配程度,确定所述目标协议要素的目标内容类别,将所述目标内容类别对应的协议要素内容作为针对所述目标项目进行推荐的协议要素内容;
其中,所述目标要素获取模块包括第二类别匹配程度单元、第一匹配程度集合单元、第二匹配程度集合单元和要素集中度确定单元;
所述第二类别匹配程度单元用于根据各所述协议要素对应的各所述内容类别中包含的开源许可协议的数量,得到各所述协议要素对应的多个内容类别与所述目标项目之间的第二类别匹配程度;
所述第一匹配程度集合单元用于获取各所述协议要素对应的多个第一类别匹配程度形成的第一匹配程度集合,以及各所述协议要素对应的第一匹配程度集合的第一信息熵;
所述第二匹配程度集合单元用于获取各所述协议要素对应的多个第二类别匹配程度形成的第二匹配程度集合,以及各所述协议要素对应的第二匹配程度集合的第二信息熵;
所述要素集中度确定单元用于根据各所述协议要素对应的第一信息熵和第二信息熵,确定各所述协议要素的要素集中度。
9.根据权利要求8所述的装置,其特征在于,所述目标要素获取模块包括要素指标确定单元、推荐度确定单元和目标协议要素单元;
所述要素指标确定单元用于根据各所述协议要素对应的多个内容类别,得到各所述协议要素的信息质量;
所述推荐度确定单元用于根据各所述协议要素的要素集中度,以及各所述协议要素的信息质量,得到各所述协议要素的推荐度;
所述目标协议要素单元用于将推荐度满足预设条件的协议要素,作为所述目标协议要素。
10.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至7中任一项所述的方法的步骤。
CN202310596404.0A 2023-05-25 2023-05-25 协议要素内容推荐方法、装置和计算机设备 Active CN116302042B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202310596404.0A CN116302042B (zh) 2023-05-25 2023-05-25 协议要素内容推荐方法、装置和计算机设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202310596404.0A CN116302042B (zh) 2023-05-25 2023-05-25 协议要素内容推荐方法、装置和计算机设备

Publications (2)

Publication Number Publication Date
CN116302042A CN116302042A (zh) 2023-06-23
CN116302042B true CN116302042B (zh) 2023-09-15

Family

ID=86785517

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202310596404.0A Active CN116302042B (zh) 2023-05-25 2023-05-25 协议要素内容推荐方法、装置和计算机设备

Country Status (1)

Country Link
CN (1) CN116302042B (zh)

Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104969230A (zh) * 2013-01-30 2015-10-07 惠普发展公司,有限责任合伙企业 用于确定软件许可之间的兼容性的系统及方法
CN109063421A (zh) * 2018-06-28 2018-12-21 东南大学 一种开源许可证合规性分析与冲突性检测方法
CN111291331A (zh) * 2019-06-27 2020-06-16 北京关键科技股份有限公司 混源文件许可冲突检测方法
CN111506908A (zh) * 2020-04-10 2020-08-07 深圳新致软件有限公司 针对保险业的大数据推荐方法、系统以及设备
CN113127633A (zh) * 2021-06-17 2021-07-16 平安科技(深圳)有限公司 智能会议管理方法、装置、计算机设备及存储介质
CN113268713A (zh) * 2021-06-03 2021-08-17 西南大学 基于软件依赖的开源软件许可证选择方法
CN114722198A (zh) * 2022-03-31 2022-07-08 金蝶软件(中国)有限公司 产品分类编码确定方法、系统及相关装置
CN115016798A (zh) * 2022-06-27 2022-09-06 扬州航盛科技有限公司 一种开源软件许可证的检查方法
CN115712875A (zh) * 2022-11-24 2023-02-24 深圳开源互联网安全技术有限公司 开源软件许可协议的风险判断方法及装置

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106934254B (zh) * 2017-02-15 2020-05-26 中国银联股份有限公司 一种开源许可证的分析方法及装置

Patent Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104969230A (zh) * 2013-01-30 2015-10-07 惠普发展公司,有限责任合伙企业 用于确定软件许可之间的兼容性的系统及方法
CN109063421A (zh) * 2018-06-28 2018-12-21 东南大学 一种开源许可证合规性分析与冲突性检测方法
CN111291331A (zh) * 2019-06-27 2020-06-16 北京关键科技股份有限公司 混源文件许可冲突检测方法
CN111506908A (zh) * 2020-04-10 2020-08-07 深圳新致软件有限公司 针对保险业的大数据推荐方法、系统以及设备
CN113268713A (zh) * 2021-06-03 2021-08-17 西南大学 基于软件依赖的开源软件许可证选择方法
CN113127633A (zh) * 2021-06-17 2021-07-16 平安科技(深圳)有限公司 智能会议管理方法、装置、计算机设备及存储介质
CN114722198A (zh) * 2022-03-31 2022-07-08 金蝶软件(中国)有限公司 产品分类编码确定方法、系统及相关装置
CN115016798A (zh) * 2022-06-27 2022-09-06 扬州航盛科技有限公司 一种开源软件许可证的检查方法
CN115712875A (zh) * 2022-11-24 2023-02-24 深圳开源互联网安全技术有限公司 开源软件许可协议的风险判断方法及装置

Also Published As

Publication number Publication date
CN116302042A (zh) 2023-06-23

Similar Documents

Publication Publication Date Title
Perozzi et al. Don't walk, skip! online learning of multi-scale network embeddings
Wang et al. Novel and efficient randomized algorithms for feature selection
CN113139134B (zh) 一种社交网络中用户生成内容的流行度预测方法、装置
CN112633426A (zh) 处理数据类别不均衡的方法、装置、电子设备及存储介质
CN113761359B (zh) 数据包推荐方法、装置、电子设备和存储介质
Akbar et al. Recommendation engines-neural embedding to graph-based: Techniques and evaluations
CN115688024A (zh) 基于用户内容特征和行为特征的网络异常用户预测方法
CN110472659B (zh) 数据处理方法、装置、计算机可读存储介质和计算机设备
Nguyen et al. Classification optimization for training a large dataset with Naïve Bayes
Tavares et al. Trace encoding in process mining: A survey and benchmarking
Ramadhan et al. Collaborative filtering recommender system based on memory based in twitter using decision tree learning classification (case study: Movie on netflix)
Harari et al. Automatic features generation and selection from external sources: a DBpedia use case
CN116302042B (zh) 协议要素内容推荐方法、装置和计算机设备
CN115827990A (zh) 搜索方法及装置
Cahya et al. Deep feature weighting based on genetic algorithm and Naïve Bayes for Twitter sentiment analysis
Zhang et al. A two-stage rating prediction approach based on matrix clustering on implicit information
Zheng et al. Deep learning hash for wireless multimedia image content security
CN114637846A (zh) 视频数据处理方法、装置、计算机设备和存储介质
Liang et al. Incremental deep forest for multi-label data streams learning
Hasan et al. Multi-criteria rating and review based recommendation model
Zhang et al. A Bayesian network correlation-based classifier chain algorithm for multilabel learning
Wang et al. Efficient sampling of training set in large and noisy multimedia data
CN117951457B (zh) 基于生物炭的负碳产品碳减排量核算方法及系统
CN113495969B (zh) 数字指纹生成、媒体数据推荐方法、装置和计算机设备
Monemian A neuroevolutionary neural network-based collaborative filtering recommendation system

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