The invention relates to a method of Intertext matching, including the following steps: building a set of pending texts based on at least one identification; forming a set of target text based on the information of interest; parsing the pending text according to the tree structure; in which each of the sub nodes of the root node of the tree structure corresponds to the matched text. At least one character; building a storage table based on tree structure; in which the storage table records at least one node corresponding to each identification in the tree structure, as well as the node position and node status of each node, and the multi pattern matching based on the set of the storage table and the target text. It can significantly improve the efficiency of the matching operation, and more efficiently determine the risk information or incompatible information involved in multiple licenses, and provide reliable risk prevention measures for the open source software development enterprise.
【技术实现步骤摘要】
用于文本间匹配的方法
本专利技术涉及一种用于文本间匹配的方法。
技术介绍
在字符串模式匹配
,主要的算法有:BM(Boyer-Moore)、Horspool、Sunday、KMP、KR、AC算法等,其中BM、Horspool、Sunday、KMP都为单模式匹配算法。设文本长度为n,集合P中字符串平均长度为k,单模式匹配最快可以做到O(m+k)的复杂度,但是,在多模式匹配的场合下,则需要O(mn+km)的复杂度;对于KR算法而言,最坏情况下需要O(k*m*n)的复杂度。可见,在多模式匹配的场合中,匹配效率存在恶化的趋势。另一方面,随着开源软件的不断发展和完善,其地位日益重要,开源软件的许可证也伴随着开源软件而产生。然而,由于对开源软件的不正确使用,产生了许多法律上的问题,给开源软件的开发企业带来了很大的风险或隐患。同时,许多开源软件都依赖其他的开源软件,而这些彼此依赖的开源软件使用的许可证复杂且不同,而这些许可证之间、及许可条款之间可能又存在各种兼容性问题,这也是使用开源软件的隐患。
技术实现思路
本专利技术的目的在于提供一种用于文本间匹配的方法,其能够提高多模式匹配的效率。为实现上述目的,本专利技术提供一种技术方案如下:一种用于文本间匹配的方法,包括如下各步骤:a)、基于至少一个标识构建待匹配文本;b)、基于感兴趣信息形成目标文本的集合;c)、将待匹配文本按树结构进行解析;其中,树结构的根节点的每一个子节点对应于待匹配文本的至少一个字符;d)、基于树结构来构建存储表;其中,存储表记录每个标识在树结构中所对应的至少一个节点,以及其中每个节点的节点位置以及节 ...
【技术保护点】
1.一种用于文本间匹配的方法,包括如下各步骤:a)、基于至少一个标识构建待匹配文本;b)、基于感兴趣信息形成目标文本的集合;c)、将所述待匹配文本按树结构进行解析;其中,所述树结构的根节点的每一个子节点对应于所述待匹配文本的至少一个字符;d)、基于所述树结构来构建存储表;其中,所述存储表记录每个所述标识在所述树结构中所对应的至少一个节点,以及其中每个所述节点的节点位置以及节点状态;以及e)、利用所述存储表与所述目标文本的集合进行多模式匹配。
【技术特征摘要】
1.一种用于文本间匹配的方法,包括如下各步骤:a)、基于至少一个标识构建待匹配文本;b)、基于感兴趣信息形成目标文本的集合;c)、将所述待匹配文本按树结构进行解析;其中,所述树结构的根节点的每一个子节点对应于所述待匹配文本的至少一个字符;d)、基于所述树结构来构建存储表;其中,所述存储表记录每个所述标识在所述树结构中所对应的至少一个节点,以及其中每个所述节点的节点位置以及节点状态;以及e)、利用所述存储表与所述目标文本的集合进行多模式匹配。2.根据权利要求1所述的方法,其特征在于,所述存储表基于二维数组结构来构建。3.根据权利要求2所述的方法,其特征在于,所述步骤c)中:基于Aho-Corasick算法将所述待匹配文本按树结构进行解析。4.根据权利要求3所述的方法,其特征在于,所述存储表包括:每个所述节点对应的节点字符;每个所述节点所在的数组位置;每个所述节点的各子节点所在的数组位置;每个所述节点的各兄弟节点所在的数组位置;每个所述节点的输出状态;以及每个所述节点的FAIL节点所在的数字位置。5.根据权利要求3所述的方法,其特征在于,所述树结构按如下方式来定义:所述根节点的各直接子节点与各所述标识的首字符一一对应;各所述标识对应的字符串分别定义为所述树结构的相应子树。6.根据权利要求1至5中任一项所述的方法,其特征在于,所述标识为开源软件的许可证的键,所述感兴趣信息为所述开源软件所涉及的风险信息和/或不兼容信息。7.一种确定开源软件的许可证是否存在...
【专利技术属性】
技术研发人员:王琪,何东杰,刘为怀,蒋丹妮,叶家炜,宋昊,
申请(专利权)人:中国银联股份有限公司,
类型:发明
国别省市:上海,31
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。