基于区块链的文本相似性检测方法及装置、电子设备转让专利

申请号 : CN201910683370.2

文献号 : CN110472201B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 黄凯明杨磊

申请人 : 阿里巴巴集团控股有限公司

摘要 :

本说明书提供了一种基于区块链的文本相似性检测方法和装置,应用于部署有用于检测与目标原创文本相似度的智能合约的区块链网络,所述方法由所述区块链网络的节点设备执行,包括:接收包含第一文本的第一交易,所述第一文本为待检测与所述目标原创文本的相似度的文本;调用所述智能合约,执行所述智能合约声明的文本相似性检测逻辑,获得所述第一文本与所述目标原创文本的相似性检测结果。

权利要求 :

1.一种基于区块链的文本相似性检测方法,应用于部署有用于检测与目标原创文本相似度的智能合约的区块链网络,所述方法由所述区块链网络的节点设备执行,包括:接收包含第一文本的第一交易,所述第一文本为待检测与所述目标原创文本的相似度的文本;所述第一文本包括至少一个预设长度的第一文本单元;

调用所述智能合约,执行所述智能合约声明的文本相似性检测逻辑,获得所述至少一个预设长度的第一文本单元与所述目标原创文本的相似性检测结果;

获取第二文本,所述第二文本包括至少一个、与所述目标原创文本的相似性检测结果为相似的第一文本单元;

将所述第二文本划分为多个所述预设长度的第二文本单元;

向所述区块链发送包含所述第二文本单元的第二交易,以调用所述智能合约,执行所述智能合约声明的文本相似性检测逻辑,获得所述每个第二文本单元与所述目标原创文本的相似性检测结果;

基于相似性检测结果为相似的第二文本单元,计算所述第二文本与所述目标原创文本的相似度;

其中,当所述第二文本与目标原创文本的相似度大于预设的相似度阈值时,所述方法还包括:向所述区块链发送存证交易,所述存证交易包括所述第二文本和所述第二文本的来源信息。

2.根据权利要求1所述的方法,所述智能合约存储有若干个目标文本向量,每个目标文本向量基于所述目标原创文本所包含的预设长度的目标文本单元而生成;所述执行所述智能合约声明的文本相似性检测逻辑包括:为所述至少一个第一文本单元生成至少一个第一文本向量;

计算所述至少一个第一文本向量与每个目标文本向量的距离;

对比所述距离与预设的距离阈值;当所述距离小于预设的距离阈值时,所述至少一个第一文本单元的相似性检测结果为相似;所述第一文本与所述目标原创文本的相似性检测结果包括所述至少一个第一文本单元的相似性检测结果。

3.根据权利要求2所述的方法,所述智能合约为所述若干个目标文本向量生成有目标文本向量索引。

4.根据权利要求1所述的方法,基于相似度检测结果为相似的第二文本单元,计算所述第二文本与所述目标原创文本的相似度,包括:计算所述相似度检测结果为相似的第二文本单元的内容总和与所述第二文本的全部内容的比值,或所述相似度检测结果为相似的第二文本单元的内容总和与所述目标原创文本的全部内容的比值,以作为所述第二文本与所述目标原创文本的相似度。

5.一种基于区块链的文本相似性检测装置,应用于部署有用于检测与目标原创文本相似度的智能合约的区块链网络,所述装置应用于所述区块链网络的节点设备端,包括:接收单元,接收包含第一文本的第一交易,所述第一文本为待检测与所述目标原创文本的相似度的文本;所述第一文本包括至少一个预设长度的第一文本单元;

执行单元,调用所述智能合约,执行所述智能合约声明的文本相似性检测逻辑,获得所述至少一个预设长度的第一文本单元与所述目标原创文本的相似性检测结果;

获取单元,获取第二文本,所述第二文本包括至少一个、与所述目标原创文本的相似性检测结果为相似的第一文本单元;

划分单元,将所述第二文本划分为多个所述预设长度的第二文本单元;

发送单元,向所述区块链发送包含所述第二文本单元的第二交易,以调用所述智能合约,执行所述智能合约声明的文本相似性检测逻辑,获得所述每个第二文本单元与所述目标原创文本的相似性检测结果;

计算单元,基于相似性检测结果为相似的第二文本单元,计算所述第二文本与所述目标原创文本的相似度;

当所述第二文本与目标原创文本的相似度大于预设的相似度阈值时,所述发送单元,进一步用于:向所述区块链发送存证交易,所述存证交易包括所述第二文本和所述第二文本的来源信息。

6.根据权利要求5所述的装置,所述智能合约存储有若干个目标文本向量,每个目标文本向量基于所述目标原创文本所包含的预设长度的目标文本单元而生成;所述执行所述智能合约声明的文本相似性检测逻辑包括:为所述至少一个第一文本单元生成至少一个第一文本向量;

计算所述至少一个第一文本向量与每个目标文本向量的距离;

对比所述距离与预设的距离阈值;当所述距离小于预设的距离阈值时,所述至少一个第一文本单元的相似性检测结果为相似;所述第一文本与所述目标原创文本的相似性检测结果包括所述至少一个第一文本单元的相似性检测结果。

7.根据权利要求5所述的装置,所述智能合约为所述若干个目标文本向量生成有目标文本向量索引。

8.根据权利要求5所述的装置,所述计算单元,进一步用于:

计算所述相似度检测结果为相似的第二文本单元的内容总和与所述第二文本的全部内容的比值,或所述相似度检测结果为相似的第二文本单元的内容总和与所述目标原创文本的全部内容的比值,以作为所述第二文本与所述目标原创文本的相似度。

9.一种计算机设备,包括:存储器和处理器;所述存储器上存储有可由所述处理器运行的计算机程序;所述处理器运行所述计算机程序时,执行如权利要求1至4任意一项所述的方法。

10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该计算机程序被处理器执行时实现如权利要求1至4中任一项所述方法的步骤。

说明书 :

基于区块链的文本相似性检测方法及装置、电子设备

技术领域

[0001] 本说明书一个或多个实施例涉及区块链技术领域,尤其涉及一种基于区块链的文本相似性检测方法及装置、电子设备。

背景技术

[0002] 区块链技术,也被称之为分布式账本技术,是一种由若干台计算设备共同参与“记账”,共同维护一份完整的分布式数据库的新兴技术。由于区块链技术具有去中心化、公开透明、每台计算设备可以参与数据库记录、并且各计算设备之间可以快速的进行数据同步的特性,使得区块链技术已在众多的领域中广泛的进行应用。

发明内容

[0003] 有鉴于此,本说明书一个或多个实施例提供一种基于区块链的文本相似性检测方法、装置、计算机设备和计算机可读存储介质。
[0004] 为实现上述目的,本说明书一个或多个实施例提供了一种基于区块链的文本相似性检测方法,应用于部署有用于检测与目标原创文本相似度的智能合约的区块链网络,所述方法由所述区块链网络的节点设备执行,包括:
[0005] 接收包含第一文本的第一交易,所述第一文本为待检测与所述目标原创文本的相似度的文本;
[0006] 调用所述智能合约,执行所述智能合约声明的文本相似性检测逻辑,获得所述第一文本与所述目标原创文本的相似性检测结果。
[0007] 在又一示出的实施方式中,所述第一文本包括至少一个预设长度的第一文本单元;所述智能合约存储有若干个目标文本向量,每个目标文本向量基于所述目标原创文本所包含的预设长度的目标文本单元而生成;所述执行所述智能合约声明的文本相似性检测逻辑包括:
[0008] 为所述至少一个第一文本单元生成至少一个第一文本向量;
[0009] 计算所述至少一个第一文本向量与每个目标文本向量的距离;
[0010] 对比所述距离与预设的距离阈值;当所述距离小于预设的距离阈值时,所述至少一个第一文本单元的相似性检测结果为相似;所述第一文本与所述目标原创文本的相似性检测结果包括所述至少一个第一文本单元的相似性检测结果。
[0011] 在又一示出的实施方式中,所述智能合约为所述若干个目标文本向量生成有目标文本向量索引。
[0012] 在又一示出的实施方式中,所述的方法,还包括:
[0013] 获取包含至少一个相似的第一文本单元的第二文本,所述相似的第一文本单元为所述相似性检测结果为相似的第一文本单元;
[0014] 将所述第二文本划分为多个所述预设长度的第二文本单元;
[0015] 向所述区块链发送包含所述第二文本单元的第二交易,以调用所述智能合约,执行所述智能合约声明的文本相似性检测逻辑,获得所述每个第二文本与所述目标原创文本的相似性检测结果;
[0016] 基于相似性检测结果为相似的第二文本单元,计算所述第二文本与所述目标原创文本的相似度。
[0017] 在又一示出的实施方式中,基于相似度检测结果为相似的第二文本单元,计算所述第二文本与所述目标原创文本的相似度,包括:
[0018] 计算所述相似度检测结果为相似的第二文本单元的内容总和与所述第二文本的全部内容的比值,或所述相似度检测结果为相似的第二文本单元的内容总和与所述目标原创文本的全部内容的比值,以作为所述第二文本与所述目标原创文本的相似度。
[0019] 在又一示出的实施方式中,当所述第二文本与目标原创文本的相似度大于预设的相似度阈值时,所述方法还包括:
[0020] 向所述区块链发送存证交易,所述存证交易包括所述第二文本和所述第二文本的来源信息。
[0021] 相应地,本说明书还提供了一种基于区块链的文本相似性检测装置,应用于部署有用于检测与目标原创文本相似度的智能合约的区块链网络,所述装置应用于所述区块链网络的节点设备端,包括:
[0022] 接收单元,接收包含第一文本的第一交易,所述第一文本为待检测与所述目标原创文本的相似度的文本;
[0023] 执行单元,调用所述智能合约,执行所述智能合约声明的文本相似性检测逻辑,获得所述第一文本与所述目标原创文本的相似性检测结果。
[0024] 在又一示出的实施方式中,所述第一文本包括至少一个预设长度的第一文本单元;所述智能合约存储有若干个目标文本向量,每个目标文本向量基于所述目标原创文本所包含的预设长度的目标文本单元而生成;所述执行所述智能合约声明的文本相似性检测逻辑包括:
[0025] 为所述至少一个第一文本单元生成至少一个第一文本向量;
[0026] 计算所述至少一个第一文本向量与每个目标文本向量的距离;
[0027] 对比所述距离与预设的距离阈值;当所述距离小于预设的距离阈值时,所述至少一个第一文本单元的相似性检测结果为相似;所述第一文本与所述目标原创文本的相似性检测结果包括所述至少一个第一文本单元的相似性检测结果。
[0028] 在又一示出的实施方式中,所述智能合约为所述若干个目标文本向量生成有目标文本向量索引。
[0029] 在又一示出的实施方式中,所述的装置,还包括:
[0030] 获取单元,获取包含至少一个相似的第一文本单元的第二文本,所述相似的第一文本单元为所述相似性检测结果为相似的第一文本单元;
[0031] 划分单元,将所述第二文本划分为多个所述预设长度的第二文本单元;
[0032] 发送单元,向所述区块链发送包含所述第二文本单元的第二交易,以调用所述智能合约,执行所述智能合约声明的文本相似性检测逻辑,获得所述每个第二文本与所述目标原创文本的相似性检测结果;
[0033] 计算单元,基于相似性检测结果为相似的第二文本单元,计算所述第二文本与所述目标原创文本的相似度。
[0034] 在又一示出的实施方式中,所述计算单元,进一步用于:
[0035] 计算所述相似度检测结果为相似的第二文本单元的内容总和与所述第二文本的全部内容的比值,或所述相似度检测结果为相似的第二文本单元的内容总和与所述目标原创文本的全部内容的比值,以作为所述第二文本与所述目标原创文本的相似度。
[0036] 在又一示出的实施方式中,当所述第二文本与目标原创文本的相似度大于预设的相似度阈值时,所述发送单元,进一步用于:
[0037] 向所述区块链发送存证交易,所述存证交易包括所述第二文本和所述第二文本的来源信息。
[0038] 相应地,本说明书还提供了一种计算机设备,包括:存储器和处理器;所述存储器上存储有可由所述处理器运行的计算机程序;所述处理器运行所述计算机程序时,执行如上述各实施方式所述的基于区块链的文本相似性检测方法。
[0039] 相应地,本说明书还提供了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器运行时,执行如上述各实施方式所述的基于区块链的文本相似性检测方法。

附图说明

[0040] 图1是一示例性实施例提供的创建智能合约的示意图;
[0041] 图2是一示例性实施例提供的一种调用智能合约的示意图;
[0042] 图3是一示例性实施例提供的创建智能合约和调用智能合约的示意图;
[0043] 图4是一示例性实施例提供的基于区块链的文本相似性检测方法的流程示意图;
[0044] 图5是一示例性实施例提供的基于区块链的文本相似性检测装置的示意图;
[0045] 图6是运行本说明书所提供的基于区块链的文本相似性检测装置实施例的一种硬件结构图。

具体实施方式

[0046] 这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本说明书一个或多个实施例相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本说明书一个或多个实施例的一些方面相一致的装置和方法的例子。
[0047] 需要说明的是:在其他实施例中并不一定按照本说明书示出和描述的顺序来执行相应方法的步骤。在一些其他实施例中,其方法所包括的步骤可以比本说明书所描述的更多或更少。此外,本说明书中所描述的单个步骤,在其他实施例中可能被分解为多个步骤进行描述;而本说明书中所描述的多个步骤,在其他实施例中也可能被合并为单个步骤进行描述。
[0048] 随着互联网普及和内容抄袭成本的降低,越来越多原创互联网内容受到不法侵权的影响,不仅给创作者带来巨大的经济损失,而且影响到整个社会的创新动力。另外,抄袭者利用同义词替换或洗稿工具,使得侵权检测变得更困难。
[0049] 例如,一般对互联网文本内容侵权检测,会采用文本内容直接对比的方式,比较两篇文章中词的重合度;对于直接采用文本内容进行对比的方法,缺点比较明显:当抄袭文章的文本内容稍有改动,就无法检查出,例如原创文章A的文本内容哈希值为md5_A,抄袭文章只要改动一个字符,那么抄袭文章的文本内容的哈希值即与md5_A完全不同,因此很难检出抄袭文章与原创文本的重合度。
[0050] 而且,在现有的文本侵权检测或文本相似性检测中,对检测出的侵权文本通常通过公证机关进行文本存证或电子存证,从检测到存证的时间窗口较长,易于被可能侵权者抵赖或消除证据。
[0051] 有鉴于此,本说明书提供了一种基于区块链的文本相似性检测方法,应用于部署有用于检测与目标原创文本相似度的智能合约的区块链网络。
[0052] 本说明书一个或多个实施例所述的区块链网络,具体可指一个各节点设备通过共识机制达成的、具有分布式数据存储结构的P2P网络系统,该区块链内的数据分布在时间上相连的一个个“区块(block)”之内,后一区块可包含前一区块的数据摘要,且根据具体的共识机制(如POW、POS、DPOS或PBFT等)的不同,达成全部或部分节点的数据全备份。
[0053] 对于物理世界产生的真实数据,可以将其构建成区块链所支持的标准的交易(transaction)格式,然后发布至区块链,由区块链中的节点设备对收到的交易进行共识处理,并在达成共识后,由区块链中作为记账节点的节点设备,将这笔交易打包进区块,在区块链中进行持久化存证。
[0054] 其中,区块链中支持的共识算法可以包括:
[0055] 第一类共识算法,即节点设备需要争夺每一轮的记账周期的记账权的共识算法;例如,工作量证明(Proof of Work,POW)、股权证明(Proof of Stake,POS)、委任权益证明(Delegated Proof of Stake,DPOS)等共识算法;
[0056] 第二类共识算法,即预先为每一轮记账周期选举记账节点(不需要争夺记账权)的共识算法;例如,实用拜占庭容错(Practical Byzantine Fault Tolerance,PBFT)等共识算法。
[0057] 在采用第一类共识算法的区块链网络中,争夺记账权的节点设备,都可以在接收到交易后执行该笔交易。争夺记账权的节点设备中可能有一个节点设备在本轮争夺记账权的过程中胜出,成为记账节点。记账节点可以将收到的交易与其它交易一起打包以生成最新区块,并将生成的最新区块或者该最新区块的区块头发送至其它节点设备进行共识。
[0058] 在采用第二类共识算法的区块链网络中,具有记账权的节点设备在本轮记账前已经商定好。因此,节点设备在接收到交易后,如果自身不是本轮的记账节点,则可以将该交易发送至记账节点。对于本轮的记账节点,在将该交易与其它交易一起打包以生成最新区块的过程中或者之前,可以执行该交易。记账节点在生成最新区块后,可以将该最新区块或者该最新区块的区块头发送至其它节点设备进行共识。
[0059] 如上所述,无论区块链采用以上示出的哪种共识算法,本轮的记账节点都可以将接收到的交易打包以生成最新区块,并将生成的最新区块或者该最新区块的区块头发送至其它节点设备进行共识验证。如果其它节点设备接收到最新区块或者该最新区块的区块头后,经验证没有问题,可以将该最新区块追加到原有的区块链末尾,从而完成区块链的记账过程。其它节点验证记账节点发来的新的区块或区块头的过程中,也可以执行该区块中的包含的交易。
[0060] 本领域的技术人员熟知,由于区块链网络系统在相应共识机制下运行,已收录至区块链数据库内的数据很难被任意的节点篡改,例如采用Pow共识的区块链,至少需要全网51%算力的攻击才有可能篡改已有数据,因此区块链系统有着其他中心化数据库系统所无法比拟的保证数据安全、防攻击篡改的特性。由此可知,被收录至区块链的分布式数据库中的数据不会被攻击或篡改,从而保证了存证入区块链的分布式数据库的数据信息的真实可靠性。
[0061] 区块链网络的示例类型可以包括公有区块链网络、私有区块链网络和联盟区块链网络。尽管术语区块链通常与比特币加密货币网络相关联,但是本文使用的区块链可指代不参考任何特定用例的DLS(分布式账本系统)。
[0062] 在公有区块链网络中,共识过程由共识网络的节点控制。例如,数百、数千、甚至数百万个实体可以在公有区块链网络中协作,每个实体在公有区块链网络中操作至少一个节点。因此,公有区块链网络可以被认为是相对于参与实体的公有网络。示例公有区块链网络包括比特币网络,比特币网络是对等支付网络。比特币网络利用分布式账本,被称为区块链。然而如上所述,术语区块链通常用于指代不特别参考比特币网络的分布式账本。
[0063] 通常,公有区块链网络支持公有交易。公有交易与公有区块链网络内的所有节点共享,并存储在全局区块链中。全局区块链是跨所有节点复制的区块链。也就是说,对于全局区块链,所有节点处于完全一致的状态。为了达成共识(例如,同意向区块链添加块),在公有区块链网络内实施共识协议。示例共识协议包括但不限于,在比特币网络中实施的工作量证明(proof-of-work,POW)。
[0064] 通常,私有区块链网络提供给特定实体,特定实体集中控制读取和写入权限。该实体控制哪些节点能够参与区块链网络。因此,私有区块链网络通常被称为许可网络,其对允许谁参与网络及其参与水平(例如,仅在某些交易中)施加限制。可以使用各种类型的访问控制机制(例如,现有参与者投票添加新实体,监管机构可以控制准入)。
[0065] 通常,联盟区块链网络在参与实体中是私有的。在联盟区块链网络中,共识过程由授权的一组节点(联盟成员节点)控制,一个或多个节点由相应的实体(例如,企业)操作。例如,由十(10)个实体(例如,企业)组成的联盟可以操作联盟区块链网络,每个实体在该联盟区块链网络中操作至少一个节点。因此,就参与实体而言,联盟区块链网络可以被认为是私有网络。在一些示例中,每个实体(节点)必须对每个块进行签名,以使该块有效并将有效的块添加到区块链。在一些示例中,至少实体(节点)的子集(例如,至少7个实体)必须对每个块进行签名以使该块有效,并且将有效的块添加到区块链。
[0066] 可以预期,本说明书所提供的实施方式能够在任何合适类型的区块链网络中实现。
[0067] 在实际应用中,不论是公有链、私有链还是联盟链,都可能提供智能合约(Smart contract)的功能。区块链上的智能合约是在区块链上可以被交易触发执行的合约。智能合约可以通过代码的形式定义。
[0068] 以以太坊为例,支持用户在以太坊网络中创建并调用一些复杂的逻辑。以太坊作为一个可编程区块链,其核心是以太坊虚拟机(EVM),每个以太坊节点都可以运行EVM。EVM是一个图灵完备的虚拟机,通过它可以实现各种复杂的逻辑。用户在以太坊中发布和调用智能合约就是在EVM上运行的。实际上,EVM直接运行的是虚拟机代码(虚拟机字节码,下简称“字节码”),所以部署在区块链上的智能合约可以是字节码。
[0069] 如图1所示,Bob将一笔包含创建智能合约信息的交易(Transaction)发送到以太坊网络后,各节点均可以在EVM中执行这笔交易。其中,图中交易的From字段用于记录发起创建智能合约的账户的地址,交易的Data字段的字段值保存的合约代码可以是字节码,交易的To字段的字段值为一个null(空)的账户。当节点间通过共识机制达成一致后,这个智能合约成功创建,后续用户可以调用这个智能合约。
[0070] 智能合约创建后,区块链上出现一个与该智能合约对应的合约账户,并拥有一个特定的地址;比如,图1中各节点中的“0x68e12cf284…”就代表了创建的这个合约账户的地址;合约代码(Code)和账户存储(Storage)将保存在该合约账户的账户存储中。智能合约的行为由合约代码控制,而智能合约的账户存储则保存了合约的状态。换句话说,智能合约使得区块链上产生包含合约代码和账户存储的虚拟账户。
[0071] 前述提到,包含创建智能合约的交易的Data字段保存的可以是该智能合约的字节码。字节码由一连串的字节组成,每一字节可以标识一个操作。基于开发效率、可读性等多方面考虑,开发者可以不直接书写字节码,而是选择一门高级语言编写智能合约代码。例如,高级语言可以采用诸如Solidity、Serpent、LLL语言等。对于采用高级语言编写的智能合约代码,可以经过编译器编译,生成可以部署到区块链上的字节码。
[0072] 以Solidity语言为例,用其编写的合约代码与面向对象编程语言中的类(Class)很相似,在一个合约中可以声明多种成员,包括状态变量、函数、函数修改器、事件等。状态变量是永久存储在智能合约的账户存储(Storage)字段中的值,用于保存合约的状态。
[0073] 如图2所示,仍以以太坊为例,Bob将一笔包含调用智能合约信息的交易发送到以太坊网络后,各节点均可以在EVM中执行这笔交易。其中,图中交易的From字段用于记录发起调用智能合约的账户的地址,To字段用于记录被调用的智能合约的地址,交易的Data字段用于记录调用智能合约的方法和参数。调用智能合约后,合约账户的账户状态可能改变。后续,某个客户端可以通过接入的区块链节点查看合约账户的账户状态。
[0074] 智能合约可以以规定的方式在区块链网络中每个节点独立的执行,所有执行记录和数据都保存在区块链上,所以当这样的交易执行完毕后,区块链上就保存了无法篡改、不会丢失的交易凭证。
[0075] 创建智能合约和调用智能合约的示意图如图3所示。以太坊中要创建一个智能合约,需要经过编写智能合约、变成字节码、部署到区块链等过程。以太坊中调用智能合约,是发起一笔指向智能合约地址的交易,各个节点的EVM可以分别执行该交易,将智能合约代码分布式的运行在以太坊网络中每个节点的虚拟机中。
[0076] 本说明书中一个或多个实施例中提供的智能合约,用于检测任意文本与目标原创文本的相似度,上述智能合约的账户内可存储目标原创文本的全文内容,或经过处理的、与全文内容对应的多种形式的索引内容,以方便比对。
[0077] 图4示意了本说明书一示例性实施例提供的基于区块链的文本相似性检测方法的流程步骤,上述方法步骤可由区块链的任一节点设备执行,包括:
[0078] 步骤402,接收包含第一文本的第一交易,所述第一文本为待检测与所述目标原创文本的相似度的文本。
[0079] 在本实施方式中,上述第一交易为智能合约调用交易,如上所述,除了包含待检测与目标原创文本相似度的第一文本外,还可包括所调用的智能合约的地址、调用函数名称、或参数等内容。本实施方式并不限定上述第一交易的发送方身份,区块链内任一具有上述智能合约调用权限的节点设备可向区块链发送上述第一交易。
[0080] 上述第一交易不仅可用于调用智能合约,本领域的技术人员应知,在上述第一交易被共识验证收录到区块链的分布式数据库后,即可基于区块链的防篡改机制为上述第一交易所包含的第一文本内容起到存证作用。
[0081] 步骤404,调用所述智能合约,执行所述智能合约声明的文本相似性检测逻辑,获得所述第一文本单元与所述目标原创文本的相似性检测结果。
[0082] 智能合约声明有一系列可执行程序代码,可在区块链节点设备的EVM上执行。由于智能合约在被部署到区块链后,可在任何时候经调用而执行,因而大大提升了检测第一文本与目标原创文本相似度的检测效率;而且,智能合约的任何变动或更改都在区块链上有迹可循,因此有着较低的人为干预风险和去中心化权威特性,区块链网络的节点设备均可准确执行且达成共识的执行结果,相比于可能受人为干预的中心化检测程序,通过调用智能合约执行文本相似性检测可获得更加公平、公正、准确的执行结果。
[0083] 本实施方式并不限定上述智能合约所声明的文本相似性检测逻辑所包含的具体逻辑步骤,本领域的技术人员可从实际的业务需求出发,针对目标原创文本设计出适合的文本相似性检测逻辑。
[0084] 在一示出的实施方式中,上述文本相似性检测逻辑可包括:采用相似度算法,如利用simhash算法,通过分词、哈希、加权、合并、降维等过程为目标原创文本和第一文本分别生成simhash签名,由于在simhash算法中,上述两文本的字符上越接近,相似度越高,因此可根据上述两simhash的值进行对比以得到上述两文本的相似度。上述文本相似性检测逻辑对于大段抄袭和小部分内容修改,任然能够起到不错的检测效果,但对于大量采用同义词替换,文章段落拼接等场景,效果就会变差。
[0085] 在又一示出的实施方式中,上述第一文本包括至少一个预设长度的第一文本单元;所述智能合约存储有若干个目标文本向量,每个目标文本向量基于所述目标原创文本所包含的预设长度的目标文本单元而生成。
[0086] 本实施方式并不限定上述预设长度的具体表现形式,可以为预设文本单元如自然段落、或自然句子的长度,也可以为预设容量如100K文本容量的长度,等等。上述用于比较与目标原创文本相似性的第一文本,至少包含一个预设长度的第一文本单元,例如,当上述预设长度为自然段落长度时,上述第一文本应至少包含一个自然段落长度的第一文本单元——即至少一个自然段落;基于相同的预设长度处理规则,上述目标原创文本可被划分为若干个预设长度的目标文本单元,例如,上述目标原创文本可基于其文本的自然段落被划分为若干个目标文本单元,再基于文本向量生成算法(如doc2vec算法),为上述若干个目标文本单元生成相应的目标文本向量。
[0087] 在该实施方式中,执行所述智能合约声明的文本相似性检测逻辑包括(以下逻辑步骤4042至4046未在图4中显示):
[0088] 步骤4042,为所述至少一个第一文本单元生成至少一个第一文本向量。
[0089] 在该步骤中,采用与生成上述目标文本向量相同的算法(如doc2vec算法),为上述至少一个第一文本单元生成至少一个第一文本向量。
[0090] 步骤4044,计算所述至少一个第一文本向量与每个目标文本向量的距离。
[0091] 上述第一文本向量与目标文本向量之间的距离的计算方法包括但不限于cosine距离计算方法,pearson距离计算方法,欧式距离计算方法,街区距离计算方法,等等。
[0092] 步骤4046,对比所述距离与预设的距离阈值;当所述距离小于预设的距离阈值时,所述至少一个第一文本单元的相似性检测结果为相似。
[0093] 相应地,上述第一文本与目标原创文本的相似度检测结果包括上述至少一个第一文本单元的相似性检测结果。
[0094] 以下,本实施方式示例性地展示一第一文本单元的相似性检测过程,以解释上述步骤4042至4046的具体过程。
[0095] 在该示例中,目标原创文本包含有一自然段落:“室友今天看上去脸色特别不好,感觉整个人站起来马上就要倒下去;测量一下后发现体温挺正常。天气太热,现在确实很容易中暑。治疗中暑喝绿豆汤有用。”第一文本包含有一自然段落:“男朋友下午看上去脸色特别不好,整个人站都站不起来,感觉马上就要倒下去;体温还算正常,36度。现在天气很热,可能比较容易中暑。治疗中暑喝绿豆汤、酸梅汤有用。”
[0096] 可以看出上述第一文本所包含的自然段落有可能是基于目标原创文本包含的上述自然段落进行洗稿后所得,但直接对比法、或Simhash算法均不能很好地体现出上述两自然段落的相似性;在本示例中,采用计算文本向量距离的方式来获得上述两自然段落文本的相似性。
[0097] 本示例所提供的智能合约可以在向区块链发布部署前,已经以自然段落的长度为预设长度,为包含上述自然段落的目标原创文本生成了每个自然段落对应的目标文本向量;也可在向区块链发布上述智能合约代码后,基于包含上述自然段落的目标原创文本对目标文本向量生成函数的调用,为包含上述自然段落的目标原创文本生成每个自然段落对应的目标文本向量,本说明书对此不做限定。
[0098] 关于上述目标文本向量的生成过程,可以包括:
[0099] 对目标原创文本进行预处理,该预处理过程可包括去除标点符号,去除文本的助词、停用词等分词处理;
[0100] 对目标原创文本或经过预处理的目标原创文本进行预设长度的文本划分以生成目标文本单元,例如以自然段落为单元划分上述的目标原创文本或经过预处理的目标原创文本;
[0101] 采用向量生成算法将目标文本单元生成目标文本向量。
[0102] 经文本预处理后,上述示例中的目标原创文本包含的自然段落对应的目标文本单元可以为“室友今天看上去脸色特别不好感觉整个人站起来马上就要倒下去测量一下体温挺正常天气太热现在确实很容易中暑治疗中暑喝绿豆汤有用”。
[0103] 上述智能合约对包含上述自然段落的第一文本的处理过程与上述过程类似,经文本预处理后,上述示例中的第一文本包含的自然段落对应的第一文本单元可以为“男朋友下午看上去脸色特别不好整个人站都站不感觉马上就要倒下去体温还算正常36度现在天气很热可能比较容易中暑治疗中暑喝绿豆汤酸梅汤有用”。
[0104] 在本示例中,基于cosine距离算法,可得到上述第一文本向量和目标文本向量的距离:0.9270391810208355。
[0105] 当上述向量间的距离小于预设的距离阈值时,可以得出上述第一文本向量的相似性检测结果为相似。
[0106] 在本实施方式中,计算预设长度的文本单元(包含目标文本单元和第一文本单元)所采用的算法通常选用计算机深度学习算法,如doc2vec算法,使得文本向量的生成过程不会受文本单元中同义词替换的影响,从而为相似的文本单元生成相似的文本向量;当上述目标文本向量与第一文本向量之间的距离小于预设阈值时,上述目标文本向量对应的目标文本单元与第一文本向量对应的第一文本单元即为相似文本,因此本实施方式侵权者采用同义词替换或洗稿来进行文本侵权可以起到更加准确的相似性检测效果。
[0107] 值得注意的是,本实施方式中并不限定第一文本所包含的第一文本单元来源于同一文本,还是源自不同的文本;本实施方式可以第一文本单元为检测单位来进行文本相似性的检测。
[0108] 在本实施方式中,区块链的任一节点设备可以基于一个或多个第一文本单元调用上述智能合约来检测上述一个或多个第一文本单元与目标原创文本中包括的多个目标文本单元的相似性;为了便于管理,上述智能合约可以为目标原创文本包括的多个目标文本单元创建索引,从而以目标文本单元为检测单元,更加提高了文本相似度检测的效率和准确率。
[0109] 在上述实施方式中,用于检测与目标原创文本的相似性的第一文本可能只包含一个或几个等少量预设长度的、与目标原创文本具有相似性的第一文本单元,而第一文本所属的完整文章文本可能相对于目标原创文本具有更多可以视为相似性的文本单元;因此,在获取与目标原创文本(的目标文本单元)具有相似性的第一文本单元后,可基于上述相似的第一文本单元进行全网监测抓取,以获取包含至少一个相似的第一文本单元的第二文本,上述相似的第一文本单元为在上述实施方式中相似性检测结果为相似的第一文本单元,以检测上述第二本文所包含的预设长度的第二文本单元与目标原创文本的相似性,从而以获得上述第二文本是否与目标原创文本具备足够的相似性以影响第二文本的原创性的结果。
[0110] 因此,如图4所示,又一示出的实施方式所提供的文本相似性检测方法还包括:
[0111] 步骤406,获取包含至少一个相似的第一文本单元的第二文本,所述相似的第一文本单元为所述相似性检测结果为相似的第一文本单元。
[0112] 步骤408,将所述第二文本划分为多个所述预设长度的第二文本单元。
[0113] 为了保证相似性对比的统一性,对预设长度的第二文本单元的划分方式可与上述第一文本单元或目标文本单元的划分方式一致。
[0114] 步骤410,向所述区块链发送包含所述第二文本单元的第二交易,以调用所述智能合约,执行所述智能合约声明的文本相似性检测逻辑,获得每个第二文本单元与所述目标原创文本的相似性检测结果。
[0115] 由以上实施方式可知,上述第二交易可以为一个,也可以为多个,基于上述实施方式所示的步骤402至404的过程,获得每个第二文本单元与所述目标原创文本的相似性检测结果。
[0116] 步骤412,基于相似性检测结果为相似的第二文本单元,计算所述第二文本与所述目标原创文本的相似度。
[0117] 本实施方式中并不限定基于相似性检测结果为相似的第二文本单元,计算所述第二文本与所述目标原创文本的相似度的具体方式,本领域的技术人员可基于文本内容的领域、文本的特性、领域内文本侵权的定义等具体的影响因素,为目标原创文本设计出适用的文本相似度计算方法。
[0118] 在一示出的实施方式中,上述基于相似度检测结果为相似的第二文本单元,计算所述第二文本与所述目标原创文本的相似度,包括:计算所述相似度检测结果为相似的第二文本单元的内容总和与所述第二文本的全部内容的比值以作为所述第二文本与所述目标原创文本的相似度。例如,与目标原创文本具有相似性的第二文本单元的个数为N个,第二文本的总段落数为M1个,则上述第二文本与目标原创文本的相似度可以为N/M1。
[0119] 或者,计算所述相似度检测结果为相似的第二文本单元的内容总和与所述目标原创文本的全部内容的比值以作为所述第二文本与所述目标原创文本的相似度。例如,与目标原创文本具有相似性的第二文本单元的个数为N个,目标原创文本的总段落数为M2个,则上述第二文本与目标原创文本的相似度可以为N/M2。
[0120] 亦或,上述第二文本与目标原创文本的相似度还可选用N/M1、N/M2这两数值中较大或较小的,以作为上述第二文本与目标原创文本的相似度。
[0121] 在又一示出的实施方式中,可以基于第二文本所包含的所有具有相似性的第二文本单元与相应目标文本单元的多个相似度,计算平均相似度(或取上述多个相似度的最大值),作为第二文本与目标原创文本的相似度。上述具有相似性的第二文本单元与相应目标文本单元的相似度可以基于上述第二文本向量与相应目标文本向量的距离与预设距离阈值的比值或差值计算而获得,在此不作限定。
[0122] 当上述第二文本与目标原创文本的相似度大于一预设的相似度阈值时,上述第二文本可被认定为侵权文本。在进行第二文本所包含的第二文本单元与目标文本单元的相似性检测时,通过在区块链上基于第二交易调用智能合约,经过区块链节点设备的共识验证、已经为第二交易包含的第二文本单元的内容、及该内容与目标原创文本的相似性进行了区块链存证;有效克服了在现有的文本侵权检测或文本相似性检测中,对检测出的侵权文本通常通过公证机关进行文本存证或电子存证,从检测到存证的时间窗口较长,易于被可能侵权者抵赖或消除证据的缺点。
[0123] 更进一步地,在又一示出的实施方式中,当所述第二文本与目标原创文本的相似度大于预设的相似度阈值时,所述方法还包括:向所述区块链发送包含所述第二文本的存证交易,上述存证交易还可包括上述第二文本的来源信息,如刊载网址等,从而基于区块链的防篡改机制进一步为第二文本的侵权性作出区块链存证。
[0124] 基于本说明书各实施方式所提供的第二文本与目标原创文本的相似度获得过程,可以为基于多个不同的第二文本与目标原创文本的相似度对多个不同的第二文本进行相似度排序,从而基于不同的相似度排名采用对应的侵权应对措施,如通知侵权方立即停止侵权、进行侵权索赔或发送共享权利建议等。
[0125] 与上述流程实现对应,本说明书的实施例还提供了基于区块链的文本相似性检测装置50。装置50可以通过软件实现,也可以通过硬件或者软硬件结合的方式实现。以软件实现为例,作为逻辑意义上的装置,是通过所在设备的CPU(Central Process Unit,中央处理器)将对应的计算机程序指令读取到内存中运行形成的。从硬件层面而言,除了图6所示的CPU、内存以及存储器之外,上述装置所在的设备通常还包括用于进行无线信号收发的芯片等其他硬件,和/或用于实现网络通信功能的板卡等其他硬件。
[0126] 如图5所示,本说明书还提供了一种基于区块链的文本相似性检测装置50,应用于部署有用于检测与目标原创文本相似度的智能合约的区块链网络,所述装置50应用于所述区块链网络的节点设备端,包括:
[0127] 接收单元502,接收包含第一文本的第一交易,所述第一文本为待检测与所述目标原创文本的相似度的文本;
[0128] 执行单元504,调用所述智能合约,执行所述智能合约声明的文本相似性检测逻辑,获得所述第一文本与所述目标原创文本的相似性检测结果。
[0129] 在又一示出的实施方式中,所述第一文本包括至少一个预设长度的第一文本单元;所述智能合约存储有若干个目标文本向量,每个目标文本向量基于所述目标原创文本所包含的预设长度的目标文本单元而生成;所述执行所述智能合约声明的文本相似性检测逻辑包括:
[0130] 为所述至少一个第一文本单元生成至少一个第一文本向量;
[0131] 计算所述至少一个第一文本向量与每个目标文本向量的距离;
[0132] 对比所述距离与预设的距离阈值;当所述距离小于预设的距离阈值时,所述至少一个第一文本单元的相似性检测结果为相似;所述第一文本与所述目标原创文本的相似性检测结果包括所述至少一个第一文本单元的相似性检测结果。
[0133] 在又一示出的实施方式中,所述智能合约为所述若干个目标文本向量生成有目标文本向量索引。
[0134] 在又一示出的实施方式中,所述的装置50,还包括:
[0135] 获取单元,获取包含至少一个相似的第一文本单元的第二文本,所述相似的第一文本单元为所述相似性检测结果为相似的第一文本单元;
[0136] 划分单元,将所述第二文本划分为多个所述预设长度的第二文本单元;
[0137] 发送单元,向所述区块链发送包含所述第二文本单元的第二交易,以调用所述智能合约,执行所述智能合约声明的文本相似性检测逻辑,获得所述每个第二文本与所述目标原创文本的相似性检测结果;
[0138] 计算单元,基于相似性检测结果为相似的第二文本单元,计算所述第二文本与所述目标原创文本的相似度。
[0139] 在又一示出的实施方式中,所述计算单元,进一步用于:
[0140] 计算所述相似度检测结果为相似的第二文本单元的内容总和与所述第二文本的全部内容的比值,或所述相似度检测结果为相似的第二文本单元的内容总和与所述目标原创文本的全部内容的比值,以作为所述第二文本与所述目标原创文本的相似度。
[0141] 在又一示出的实施方式中,当所述第二文本与目标原创文本的相似度大于预设的相似度阈值时,所述发送单元,进一步用于:
[0142] 向所述区块链发送存证交易,所述存证交易包括所述第二文本和所述第二文本的来源信息。
[0143] 上述装置50中各个单元的功能和作用的实现过程具体详见上述区块链节点设备所执行的基于区块链的文本相似性检测方法中对应步骤的实现过程,相关之处参见方法实施例的部分说明即可,在此不再赘述。
[0144] 以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理模块,即可以位于一个地方,或者也可以分布到多个网络模块上。可以根据实际的需要选择其中的部分或者全部单元或模块来实现本说明书方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
[0145] 上述实施例阐明的装置、单元、模块,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机,计算机的具体形式可以是个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件收发设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任意几种设备的组合。
[0146] 与上述方法实施例相对应,本说明书的实施例还提供了一种计算机设备,如图6所示,该计算机设备包括存储器和处理器。其中,存储器上存储有能够由处理器运行的计算机程序;处理器在运行存储的计算机程序时,执行本说明书实施例中上述区块链节点设备所执行的基于区块链的文本相似性检测方法的各个步骤。对上述区块链节点设备所执行的基于区块链的文本相似性检测方法的各个步骤的详细描述请参见之前的内容,不再重复。
[0147] 与上述方法实施例相对应,本说明书的实施例还提供了一种计算机可读存储介质,该存储介质上存储有计算机程序,这些计算机程序在被处理器运行时,执行本说明书实施例中上述区块链节点设备所执行的基于区块链的文本相似性检测方法的各个步骤。对上述区块链节点设备所执行的基于区块链的文本相似性检测方法的各个步骤的详细描述请参见之前的内容,不再重复。
[0148] 以上所述仅为本说明书的较佳实施例而已,并不用以限制本说明书,凡在本说明书的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本说明书保护的范围之内。
[0149] 在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
[0150] 内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。
[0151] 计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。
[0152] 计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
[0153] 还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
[0154] 本领域技术人员应明白,本说明书的实施例可提供为方法、系统或计算机程序产品。因此,本说明书的实施例可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本说明书的实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。