CN113268714B - 一种开源软件许可证条款自动提取方法 - Google Patents

一种开源软件许可证条款自动提取方法 Download PDF

Info

Publication number
CN113268714B
CN113268714B CN202110619980.3A CN202110619980A CN113268714B CN 113268714 B CN113268714 B CN 113268714B CN 202110619980 A CN202110619980 A CN 202110619980A CN 113268714 B CN113268714 B CN 113268714B
Authority
CN
China
Prior art keywords
license
theme
terms
clause
similarity
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
CN202110619980.3A
Other languages
English (en)
Other versions
CN113268714A (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.)
Southwest University
Original Assignee
Southwest 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 Southwest University filed Critical Southwest University
Priority to CN202110619980.3A priority Critical patent/CN113268714B/zh
Publication of CN113268714A publication Critical patent/CN113268714A/zh
Application granted granted Critical
Publication of CN113268714B publication Critical patent/CN113268714B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/10Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
    • G06F21/105Arrangements for software license management or administration, e.g. for managing licenses at corporate level
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/10Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
    • G06F21/12Protecting executable software

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Multimedia (AREA)
  • Technology Law (AREA)
  • Computer Hardware Design (AREA)
  • Computer Security & Cryptography (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Machine Translation (AREA)

Abstract

本发明公开了一种开源软件许可证条款自动提取方法,该方法主要包含以下三个步骤:(1)许可证建模,采用主题分析方法完成许可证条款的确定;(2)许可证主题挖掘,利用隐含狄利克雷分布主题模型完成许可证主题提取;(3)主题与条款匹配,建立主题与条款之间的对应关系;最终将得到对应的许可证条款。本发明提供的方法能够有效提取包含在许可证中的条款,帮助开发人员快速了解许可证允许或禁止做什么。

Description

一种开源软件许可证条款自动提取方法
技术领域
本发明涉及软件工程技术领域,具体涉及一种开源软件许可证条款自动提取方法。
背景技术
云计算、大数据是“新基建”和新兴产业战略性发展的强劲引擎,其中开源已经成为云计算创新发展的关键手段,云计算、大数据、移动互联这些支撑互联网发展的技术都是基于开源软件构建的。开源软件的开发是社区成员协同合作的成果,这种开发模式极大地促进了软件行业的发展,为云计算核心技术革新、生态多元共治提供了便利。
开源软件协作开发的方式打破了传统软件开发的封闭模式,但也带来了新的问题和挑战。为了保护开源软件中包含的知识产权和规范开源软件的使用,开源许可证应运而生。开源许可证以法律的形式对受版权法保护的开源软件的使用、复制、修改和分发行为进行规范。开源许可证在很大程度上影响软件的重新发布或商业化,并且可以为软件提供保护,防止他人对自己的开源代码进行非法的商业使用。
目前,开源软件中已存在的相关许可证超过2600个,但经OSI批准的许可证仅有121个。不同的开源许可证在原作品及衍生作品是否必须要按照原许可证发布、是否必须公开作品源代码、是否授予专利权等方面有着不同的规定。种类繁多的开源许可证给开发者对开源许可证的理解和使用带来了巨大的挑战。并且许可证文本内容晦涩难懂,专业的法律条款描述使得开发者在对接收者的责任和义务理解容易出现偏差。这些潜在的问题导致接收者易因错误理解许可证条款而违约。例如,2018年谷歌公司与甲骨文公司关于JAVAAPI(应用程序接口)的版权案件,以及2019年中国GPL第一案“柚子案”。因此,正确理解许可证内容对于开源软件的合规使用有着重要的指导意义。目前虽然已经有很多的研究人员对主流许可证进行解读与建模,但现有的方法主要是通过手工的方式对许可文本进行分析,并且主要围绕主流的几种许可证进行分析,不利于模型的泛化能力。为了帮助开发者能够快速理解更多的开源许可证内容,自动提取许可证条款的研究将变得十分必要。
发明内容
本方案的目的在于提供一种开源软件许可证条款自动提取方法,以帮助开发者在不阅读许可文本的情况下了解许可中包含的权利和义务。
为了达到上述目的,本方案提供一种开源软件许可证条款自动提取方法,包括如下步骤:第1步:构建许可证模型并提取条款;第2步:训练许可证主题模型并提取主题;第3步:建立主题与条款之间的对应关系;第4步:获取许可证条款并表示许可证。
进一步,所述第1步中构建许可证建模并提取条款,具体为:步骤1-1:选取用于构建许可证模型的许可证文本,提取许可证基本信息、条款和条件的内容和使用许可证的说明;步骤1-2:分析许可证中的句子含义并提取关键条款,将条款编码成相应的主题;步骤1-3:创建主题术语并描述条款的特征;步骤1-4:判断得到的条款类别;若条款为许可证允许开发者做的所有条款,所述条款类别为权利;若条款为开发者分发作品时必要遵守的所有条款,所述条款类别为义务;若条款为开发人员需要额外遵守的所有附加条款,所述条款类别为限制;步骤1-5:交叉验证步骤1-4中的许可证条款;步骤1-6:存储表示同一条款的许可证文本句子,形成许可证条款文档。
进一步,所述第2步中训练许可证主题模型并提取主题,具体为:步骤2-1:利用现有公开的419份许可证作为数据集并剔除非英文许可证文本;步骤2-2:生成数据集中许可证文本的分句并预处理分句,删除许可证文本中的噪声信息;步骤2-3:利用步骤2-2中的文本数据集训练LDA主题模型;步骤2-4:提取许可证文本分句之后的句子主题,将主题分布得分最后的主题作为句子主题;步骤2-5:判断文档之间的相似度得分;若两个文档之间存在共性,交换这两个文档的主题并剔除文档中共现的句子后再次进行主题挖掘,并将得到的新主题分配给对应的文档;步骤2-6:构建主题文档;若两个许可证句子表示同一主题,构建两个许可证句子为主题文档。
进一步,所述第3步中建立主题与条款之间的对应关系,具体为:步骤3-1:将得到的许可证条款文档与主题文档通过Doc2ver模型进行向量化表示;步骤3-2:将得到的向量两两比较,并利用余弦相似计算两个向量之间的相似度,并设置相似度阈值;如果两个向量之间的相似度大于设置的阈值则我们认为两个向量相互匹配,即对应的主题与条款是相似的;如果两个向量之间的相似度小于等于设置的阈值则我们认为两个向量不匹配,即对应的主题与条款不相似;步骤3-3:根据相似性度量结果,得到主题与条款之间的对应关系。
进一步,还包括:第5步:人工核查条款与主题的匹配性;具体为,人工核查的计算机上设有用于采集眼球注视许可证条款时间的摄像头,所述摄像头采集到人员眼球持续2s注视许可证条款的信号后,自动返回第3步,重新计算条款与主题之间的相似度,生成相似度由高到低的序列组合,生成的序列组合依次替换原有的许可证条款,人工选取适合该主题许可证条款,新的许可证条款自动替换原有的许可条款。
进一步,所述第4步中获取许可证条款并表示许可证,具体为:利用训练好的主题模型提取该许可证中所包含的主题,根据第3步创建的主题与条款之间的对应关系得到该许可证中所包含的主题对应的许可证条款。
本方案的有益效果:
(1)该技术方案提出了支持多许可证表示的统一许可证条款模型,该模型能够用于任意许可证的表示,具有良好的可扩充性和适应性。同时,挖掘了许可证条款之间的关联关系,能够很好的表示条款之间的兼容关系,有助于许可证条款的提取以及许可证之间的兼容性分析。与现有的许可证条款模型相比,本项目提取了更加全面的许可证条款,并且本方法所获取的条款关联关系并未发现其他有关文献涉足该研究。
(2)该技术方案提出了主题模型的许可证条款自动提取方案,与现有技术相比本方案不仅考虑多主题分布问题,针对同一许可证句子包含多个主题的情况进行单独处理,能够更加准确的提取许可证中包含的潜在主题,同时结合条款关联关系给出更加准确的许可证条款检测结果。
附图说明
图1是本发明的总体框架图;
图2是许可证条款提取流程图;
图3是根据一致性得分确定最佳主题数量的曲线图。
具体实施方式
下面通过具体实施方式进一步详细的说明:
如附图1、附图2和附图3所示:
实施例1
一种开源软件许可证条款自动提取方法,包括如下步骤:第1步:构建许可证模型并提取条款;第2步:训练许可证主题模型并提取主题;第3步:建立主题与条款之间的对应关系;第4步:获取许可证条款并表示许可证。
第1步中构建许可证模型并提取条款具体为步骤1-1:选取用于构建许可证模型的许可证文本,以使用率最高的36份许可证为基础,提取许可证基本信息、条款和条件的内容和如何使用许可证的说明;步骤1-2:通过人工方法分析许可证中的句子含义,从提取的数据中找出关键条款,将条款编码成相应的主题;步骤1-3:为了确保许可条款更清晰和可以理解的,为每个有意义的主题创建了一个标准且易于理解的术语,然后利用情态动词Must,May,and Not描述每个条款的特征,以阐明许可证赋予开发人员哪些权利,禁止哪些行为;步骤1-5:交叉验证步骤1-4中的许可证条款,用于确保条款的适用性和有效性;步骤1-6:存储表示同一条款的许可证文本句子,形成许可证条款文档。
通过本方法创建的许可证条款与条款之间的关联关系如表1所示:
Figure BDA0003099435840000041
Figure BDA0003099435840000051
表1
第2步,训练许可证主题模型并提取主题;
2-1:利用现有公开的419份许可证作为数据集,并剔除非英文许可证文本。
2-2:对数据集中所有的许可证文本进行分句,并对分句进行预处理,删除文本中的冠词、连词、以及网址等噪声信息;
2-3:利用处理后的文本数据集训练LDA主题模型。在LDA主题模型实施过程中,为了确定最佳主题数量,本方法结合一致性得分判断最佳的主题数量,如图3展示了主题数量确定的过程。
2-4:利用训练好的模型提取许可证文本分句之后的每个句子主题,并将主题分布得分最高的主题作为句子主题。
2-5:许可证文本句子中存在一个句子包含多个主题的情况,我们将句子文档分为四种类型,重复文档、相似文档、子句文档以及独立文档。
其中,重复文档只是两个句子文档中所包含的句子是完成一致的,这是由于不同许可证之间存在明显的演化关系,即一个许可证可能是在对已有许可证修改的基础上完成的。相似文档只是许可证句子之间存在很多重复或相近的短语以表示同一个许可证条款。子句文档表示一个句子文档中所包含的许可证句子可能是另一个句子文档的一部分。独立文档指的是这些句子在数据集是独立出现的,与其他句子都不相似,包含独特的许可证条款。这四种情况中,重复文档、相似文档以及独立文档对应的句子通常都只包含一个独特的主题。而子句文档由于包含其他子句成分,此时可能存在多个主题。因此,为了有效提取子句情况中做包含的主题,通过构建文档对矩阵来存储文档之间的相似度得分,我们设置的相似度上界和下界进行筛选,当相似度介于阈值之间时我们认为两个文档之间存在共现句子,交换这两个文档的主题并剔除文档中共现的句子后再次进行主题挖掘,并将得到的新主题分配给对应的文档。通过该方法以得到完整的句子主题。
2-6:将表示同一主题的许可证句子聚类到一个文档中,形成主题文档。
第3步,建立主题与条款之间的对应关系;3-1:将得到的许可证条款文档与主题文档通过Doc2vec模型进行向量化表示;其中Doc2vec段落向量是一种无监督算法,它可以从变长文本(例如句子、段落和文档)中学习定长特征表示。得到的条款文档以及主题文档都为定长文本,通过Doc2vec能转化为固定长度的向量,不仅能够有效编码文档特征,而且定长向量便于两个文档之间相似度计算。
3-2:将得到的向量两两比较,并利用余弦相似计算两个向量之间的相似度,并设置相似度阈值;如果两个向量之间的相似度大于设置的阈值则我们认为两个向量相互匹配,即对应的主题与条款是相似的;
3-3:根据相似性度量结果,得到主题与条款之间的对应关系。在相似度匹配过程,我们设置了相似度匹配阈值,当两个向量之间的相似度大于0.85时,认为两个向量能够很好的相互匹配,将对应的主题分配给与之匹配的许可证条款。如果两个向量之间的相似度小于等于0.85时,则我们认为两个向量不匹配,即对应的主题与条款不相似;
第4步,许可证条款获取与许可证表示。给定一份新的许可证,首先利用训练好的主题模型提取该许可证中所包含的主题,然后利用第三步创建的主题与条款之间的对应关系得到该许可证中所包含的主题对应的许可证条款,从而实现许可证条款自动提取与许可证表示。如表2所示,表2展示了本发明所提出的方法得到的主题示例、描述主题的关键词、主题对应的许可证条款。
Figure BDA0003099435840000071
表2
本方案提出了支持多许可证表示的统一许可证条款模型,该模型能够用于任意许可证的表示,具有良好的可扩充性和适应性。同时,挖掘了许可证条款之间的关联关系,能够很好的表示条款之间的兼容关系,有助于许可证条款的提取以及许可证之间的兼容性分析。与现有的许可证条款模型相比,本项目提取了更加全面的许可证条款,并且本方法所获取的条款关联关系并未发现其他有关文献涉足该研究。本方案提出了主题模型的许可证条款自动提取方案,与现有技术相比本方案不仅考虑多主题分布问题,针对同一许可证句子包含多个主题的情况进行单独处理,能够更加准确的提取许可证中包含的潜在主题,同时结合条款关联关系给出更加准确的许可证条款检测结果。
实施例2
与实施例1不同的是,一种开源软件许可证条款自动提取方法,还包括第5步,人工核查条款与主题的匹配性。第5步中,人工核查的计算机上设有用于采集眼球注视许可证条款时间的摄像头,当摄像头采集到人员眼球长时间(持续2s及以上)注视一个许可证条款,自动返回第3步,重新计算条款与主题之间的相似度,生成相似度由高到低的序列组合,生成的序列组合依次替换原有的许可证条款,人工选取适合该主题许可证条款,新的许可证条款自动替换原有的许可条款。本步骤中,通过人工核查的方式进一步确定条款与主题的匹配性,减少因机器计算错误而造成的损失,同时,用摄像头采集人眼眼球的注意时间,判断出人员对一个许可证条款存在疑问,从而自动生成新的许可证条款序列,方便人员选择更合适的许可证条款,更为节约时间。与此同时,方便用户使用。提升用户体验,减轻用眼负担。
虽然以上描述了本发明的具体实施方式,但是本领域熟练技术人员应当理解,这些仅是举例说明,可以对本实施方式作出多种变更或修改,而不背离本发明的原理和实质,本发明的保护范围仅由所附权利要求书限定。

Claims (2)

1.一种开源软件许可证条款自动提取方法,其特征在于,包括如下步骤:
第1步:构建许可证模型并提取条款;
步骤1-1:选取用于构建许可证模型的许可证文本,提取许可证基本信息、条款和条件的内容和使用许可证的说明;
步骤1-2:分析许可证中的句子含义并提取关键条款,将条款编码成相应的主题;
步骤1-3:创建主题术语并描述条款的特征;
步骤1-4:判断得到的条款类别;若条款为许可证允许开发者做的所有条款,所述条款类别为权利;若条款为开发者分发作品时必要遵守的所有条款,所述条款类别为义务;若条款为开发人员需要额外遵守的所有附加条款,所述条款类别为限制;
步骤1-5:交叉验证步骤1-4中的许可证条款;
步骤1-6:存储表示同一条款的许可证文本句子,形成许可证条款文档;
第2步:训练许可证主题模型并提取主题;
步骤2-1:利用现有公开的419份许可证作为数据集并剔除非英文许可证文本;
步骤2-2:生成数据集中许可证文本的分句并预处理分句,删除许可证文本中的噪声信息;
步骤2-3:利用步骤2-2中的文本数据集训练LDA主题模型;
步骤2-4:提取许可证文本分句之后的句子主题,将主题分布得分最后的主题作为句子主题;
步骤2-5:判断文档之间的相似度得分;若两个文档之间存在共性,交换这两个文档的主题并剔除文档中共现的句子后再次进行主题挖掘,并将得到的新主题分配给对应的文档;
步骤2-6:构建主题文档;若两个许可证句子表示同一主题,构建两个许可证句子为主题文档;
第3步:建立主题与条款之间的对应关系;
步骤3-1:将得到的许可证条款文档与主题文档通过Doc2ver模型进行向量化表示;
步骤3-2:将得到的向量两两比较,并利用余弦相似计算两个向量之间的相似度,并设置相似度阈值;如果两个向量之间的相似度大于设置的阈值则认为两个向量相互匹配,即对应的主题与条款是相似的;如果两个向量之间的相似度小于等于设置的阈值则认为两个向量不匹配,即对应的主题与条款不相似;
步骤3-3:根据相似性度量结果,得到主题与条款之间的对应关系;
第4步:获取许可证条款并表示许可证;
所述第4步中获取许可证条款并表示许可证,具体为:利用训练好的主题模型提取该许可证中所包含的主题,根据第3步创建的主题与条款之间的对应关系得到该许可证中所包含的主题对应的许可证条款。
2.根据权利要求1所述的开源软件许可证条款自动提取方法,其特征在于,还包括:第5步:人工核查条款与主题的匹配性;具体为,人工核查的计算机上设有用于采集眼球注视许可证条款时间的摄像头,所述摄像头采集到人员眼球持续2s注视许可证条款的信号后,自动返回第3步,重新计算条款与主题之间的相似度,生成相似度由高到低的序列组合,生成的序列组合依次替换原有的许可证条款,人工选取适合该主题许可证条款,新的许可证条款自动替换原有的许可条款。
CN202110619980.3A 2021-06-03 2021-06-03 一种开源软件许可证条款自动提取方法 Active CN113268714B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110619980.3A CN113268714B (zh) 2021-06-03 2021-06-03 一种开源软件许可证条款自动提取方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110619980.3A CN113268714B (zh) 2021-06-03 2021-06-03 一种开源软件许可证条款自动提取方法

Publications (2)

Publication Number Publication Date
CN113268714A CN113268714A (zh) 2021-08-17
CN113268714B true CN113268714B (zh) 2022-10-04

Family

ID=77234206

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110619980.3A Active CN113268714B (zh) 2021-06-03 2021-06-03 一种开源软件许可证条款自动提取方法

Country Status (1)

Country Link
CN (1) CN113268714B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115080924B (zh) * 2022-07-25 2022-11-15 南开大学 一种基于自然语言理解的软件许可证条款抽取方法

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111291331A (zh) * 2019-06-27 2020-06-16 北京关键科技股份有限公司 混源文件许可冲突检测方法

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8521652B2 (en) * 2006-05-19 2013-08-27 Hewlett-Packard Development Company, L.P. Discovering licenses in software files
CN105718716A (zh) * 2015-12-28 2016-06-29 西南大学 基于多头绒泡菌的蚁群信息素更新方法
CN109063421B (zh) * 2018-06-28 2022-03-04 东南大学 一种开源许可证合规性分析与冲突性检测方法
US11379561B2 (en) * 2019-07-15 2022-07-05 At&T Intellectual Property I, L.P. License usage management
CN111274548A (zh) * 2020-01-17 2020-06-12 深圳开源互联网安全技术有限公司 一种开源软件许可合规的确定方法及装置
CN112434299A (zh) * 2020-10-23 2021-03-02 苏州浪潮智能科技有限公司 一种开源软件安全管理方法和装置

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111291331A (zh) * 2019-06-27 2020-06-16 北京关键科技股份有限公司 混源文件许可冲突检测方法

Also Published As

Publication number Publication date
CN113268714A (zh) 2021-08-17

Similar Documents

Publication Publication Date Title
US10157171B2 (en) Annotation assisting apparatus and computer program therefor
US20240028651A1 (en) System and method for processing documents
US20150278197A1 (en) Constructing Comparable Corpora with Universal Similarity Measure
CN112035675A (zh) 医疗文本标注方法、装置、设备及存储介质
CN106407316B (zh) 基于主题模型的软件问答推荐方法和装置
CN115062148A (zh) 一种基于数据库的风险控制方法
Quirchmayr et al. Semi-automatic rule-based domain terminology and software feature-relevant information extraction from natural language user manuals: An approach and evaluation at Roche Diagnostics GmbH
JP3899414B2 (ja) 教師データ作成装置およびプログラム、ならびに言語解析処理装置およびプログラム
CN113268714B (zh) 一种开源软件许可证条款自动提取方法
CN113361252B (zh) 基于多模态特征和情感词典的文本抑郁倾向检测系统
CN104750484B (zh) 一种基于最大熵模型的代码摘要生成方法
CN104462083A (zh) 用于内容比较的方法、装置和信息处理系统
Jui et al. A machine learning-based segmentation approach for measuring similarity between sign languages
Pal et al. Anubhuti--An annotated dataset for emotional analysis of Bengali short stories
Tran et al. Context-aware detection of sneaky vandalism on wikipedia across multiple languages
CN111062832A (zh) 智能提供专利答辩意见的辅助分析方法及装置
CN108733733B (zh) 基于机器学习的生物医学文本分类方法、系统和存储介质
Hermansson et al. Tracking amendments to legislation and other political texts with a novel minimum-edit-distance algorithm: DocuToads
Nisioi et al. A clustering approach for translationese identification
Cardon et al. On Operations in Automatic Text Simplification
Bruchansky Political footprints: Political discourse analysis using pre-trained word vectors
Barzokas et al. Studying the Evolution of Greek Words via Word Embeddings
CN111339272A (zh) 代码缺陷报告检索方法及装置
CN113722421A (zh) 一种合同审计方法和系统,及计算机可读存储介质
DeVille et al. Text as Data: Computational Methods of Understanding Written Expression Using SAS

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