一种文本索引模型构建方法、索引方法、系统和终端技术方案

技术编号:39129839 阅读:9 留言:0更新日期:2023-10-23 14:50
本发明专利技术公开了一种文本索引模型构建方法、索引方法、系统和终端,属于文本索引领域,包括:获取维基百科的中文语料,对数据进行预处理;基于Skip

【技术实现步骤摘要】
一种文本索引模型构建方法、索引方法、系统和终端


[0001]本专利技术涉及文本索引领域,具体涉及一种文本索引模型构建方法、索引方法、系统和终端。

技术介绍

[0002]在最近十年里,随着互联网技术的飞速发展,人们获取信息的方式发生了重大改变,信息的传播与共享已经不再受时间和空间上的限制,人们查找资源变得异常方便。然而,互联网在带给人们巨大利好的同时,也带来了新的挑战。随着文本数据量的指数级增长,很容易导致信息过载,人们无法从偌大的信息资源中快速找到自己所需要的信息。因此如何从海量的数据中准确快速的找到我们所需要的信息便成为其中的关键问题,而文本检索技术正是解决这一问题的重要手段。
[0003]模式匹配算法作为文本检索和内容过滤的核心,是目前计算机领域的重点研究方向之一。模式匹配算法最早被应用于文献检索、拼写检查、语言翻译等方面。随着网络通信技术和其他自然科学的发展,模式匹配算法被广泛的应用于搜索引擎、入侵检测系统、计算机病毒检测、内容过滤防火墙、DNA序列匹配等。
[0004]虽然目前的文本检索技术已经取得了比较好的表现,但是大多都是基于倒排索引来进行检索,这种索引方法只适用于文本内容已经确定的情况下,无法应用于文本内容动态变化的场景需求,如数据库表的模糊查找、网络安全中的数据包过滤等。而对于模式匹配算法,其在数据量过大的情况下,需要消耗大量的计算资源和存储资源,性能十分低下。

技术实现思路

[0005]针对现有技术的不足,本专利技术提出了一种文本索引模型构建方法、索引方法、系统和终端,解决了现有技术中存在的倒排索引无法应用于文本内容动态变化的场景、模式匹配算法在大数据环境下检索效率低下的问题。
[0006]本专利技术的目的可以通过以下技术方案实现:第一方面,本申请提出一种文本索引模型构建方法,包括以下步骤:基于Skip

gram模型对预处理后的语料库中的词进行训练,得到词向量;对语料库的每段文本进行分词,并获取分词的词向量;基于分词的词向量的坐标和维度确定向量空间中心的位置;计算各个分词的词向量的坐标至向量空间中心的距离,得到分词的词向量至向量空间中心的最长距离和最短距离;以向量空间中心为球心,最短距离长为最短半径,最长距离长为最长半径,构建空心球形向量空间;通过迭代算法调整球空间的中心位置,直到空心球形向量空间满足体积最小且容纳文本中所有词向量;基于所有调整后的空心球形向量空间构建文本索引模型。
[0007]在一些实施例中,所述向量空间中心的位置,包括以下步骤:
从训练后的词向量中获取分词对应的词向量,并将分词的词向量存入一个数组arr;遍历数组arr中词向量的坐标P
i
,对于每个坐标的维度n,得到P
i
对应的每个维度值的和;将求和值除以n得到向量空间中心的位置L。
[0008]在一些实施例中,所述向量空间中心的最长距离和最短距离的获取包括以下步骤:定义一个极大值fin1=MAX_VALUE,极小值fin2=

1;遍历词向量的坐标P
i
,计算得到当前点距中心的欧氏距离,两个词之间的欧式距离的满足:其中,,是空间中两个点第i个维度的值;比较fin1和当前词向量距向量中心的距离,将小的值保存为新的fin1,记录当前词向量在数组arr的下标次序记为M1;在遍历完所有词向量之后,得到距向量中心最短距离为fin1,最近点的下标次序为M1;比较fin2和当前词向量距向量中心的距离,将大的值保存为新的fin2,记录当前词向量在数组arr的下标次序记为M2;在遍历完所有词向量之后,得到距向量中心最长距离为fin2,最远点的下标次序为M2。
[0009]在一些实施例中,所述通过迭代算法调整球空间的中心位置,直到空心球形向量空间满足体积最小且容纳文本中所有词向量,包括以下步骤:定义一个极大值e= MAX_VALUE,step=1e

5,eplse=1e

8;遍历空间中的每一个词向量P
i
,对于每一个维度n,将距中心最远点每一个维度值减去当前向量空间中心的每一个维度值,并除以这两个点之间的欧式距离得到Y
n
;对于空间中的每一个维度n,将Y
n
乘以step之后与原空间中心L
n
相加,得到新中心rst;以新中心rst为基准,计算得到新的距中心的最长距离fin3,记录当前词向量在数组arr的下标次序记为M3;将新的最长距离fin3和原有最长距离fin2相比,保存比较后的最长距离至fin2,记录当前词向量在数组arr的下标次序记为M2,并保存新中心rst和原中心L的欧氏距离至e;重复过程直至e小于eplse,此时视为中心rst不再移动;基于中心rst的确定最短距离fin1;以rst为球心,fin1为最短半径,fin2为最长半径,构建空心球形向量空间。
[0010]在一些实施例中,所述语料库的每段文本通过jieba分词进行分词。
[0011]在一些实施例中,所述语料库通过jieba分词并且去停用词。
[0012]第二方面,本申请提出一种文本索引模型的文本索引方法,包括以下步骤:向如第一方面项所述的文本索引模型输入关键词;计算关键词的词向量与空心球
形向量空间rst的欧式距离d;若d的长度在空心球形向量空间的fin1和fin2之间,则判断关键词在对应的空心球形向量空间内,并使用ACBM算法定位该关键词在该段文本的位置。
[0013]第三方面,本申请提出一种基于第一方面项所述的文本索引系统,包括:预处理模块:对语料库通过jieba分词并且去停用词;文本索引搭载模块:基于Skip

gram模型对预处理后的语料库中的词进行训练,得到词向量;将待检索文本进行分词,并获取分词的词向量;基于分词的词向量的坐标和维度确定向量空间中心的位置;计算各个分词的词向量的坐标至向量空间中心的距离,得到分词的词向量至向量空间中心的最长距离和最短距离;以向量空间中心为球心,最短距离长为最短半径,最长距离长为最长半径,构建空心球形向量空间;调整模块:通过迭代算法调整球空间的中心位置,直到空心球形向量空间满足体积最小且容纳文本中所有词向量;查询模块:计算关键词的词向量与空心球形向量空间rst的欧式距离d;若d的长度在空心球形向量空间的fin1和fin2之间,则判断关键词在对应的空心球形向量空间内;定位模块:若判断关键词在空心球形向量空间中,使用ACBM算法进一步定位该词在文本中的位置。
[0014]第四方面,本申请提出一种终端设备,包括存储器、处理器及存储在存储器中并能够在处理器上运行的计算机程序,其特征在于,所述存储器中存储有能够在处理器上运行的计算机程序,所述处理器加载并执行计算机程序时,采用了如第一方面所述的一种文本索引模型构建方法。
[0015]第五方面,本申请提出一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机程序,其特征在于,所述计算机程序被处理器加本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种文本索引模型构建方法,其特征在于,包括以下步骤:基于Skip

gram模型对预处理后的语料库中的词进行训练,得到词向量;对语料库的每段文本进行分词,并获取分词的词向量;基于分词的词向量的坐标和维度确定向量空间中心的位置;计算各个分词的词向量的坐标至向量空间中心的距离,得到分词的词向量至向量空间中心的最长距离和最短距离;以向量空间中心为球心,最短距离长为最短半径,最长距离长为最长半径,构建空心球形向量空间;通过迭代算法调整球空间的中心位置,直到空心球形向量空间满足体积最小且容纳文本中所有词向量;基于所有调整后的空心球形向量空间构建文本索引模型。2.根据权利要求1所述的文本索引模型构建方法,其特征在于,所述向量空间中心的位置,包括以下步骤:从训练后的词向量中获取分词对应的词向量,并将分词的词向量存入一个数组arr;遍历数组arr中词向量的坐标P
i
,对于每个坐标的维度n,得到P
i
对应的每个维度值的和;将求和值除以n得到向量空间中心的位置L。3.根据权利要求1所述的文本索引模型构建方法,其特征在于,所述向量空间中心的最长距离和最短距离的获取包括以下步骤:定义一个极大值fin1=MAX_VALUE,极小值fin2=

1;遍历词向量的坐标P
i
,计算得到当前点距中心的欧氏距离,两个词之间的欧式距离的满足:其中,,是空间中两个点第i个维度的值;比较fin1和当前词向量距向量中心的距离,将小的值保存为新的fin1,记录当前词向量在数组arr的下标次序记为M1;在遍历完所有词向量之后,得到距向量中心最短距离为fin1,最近点的下标次序为M1;比较fin2和当前词向量距向量中心的距离,将大的值保存为新的fin2,记录当前词向量在数组arr的下标次序记为M2;在遍历完所有词向量之后,得到距向量中心最长距离为fin2,最远点的下标次序为M2。4.根据权利要求1所述的文本索引模型构建方法,其特征在于,所述通过迭代算法调整球空间的中心位置,直到空心球形向量空间满足体积最小且容纳文本中所有词向量,包括以下步骤:定义一个极大值e= MAX_VALUE,step=1e

5,eplse=1e

8;遍历空间中的每一个词向量P
i
,对于每一个维度n,将距中心最远点每一个维度值减去当前向量空间中心的每一个维度值,并除以这两个点之间的欧式距离得到Y
n
;对于空间中的每一个维度n,将Y
n
乘以step之后
与原空间中心L
n

【专利技术属性】
技术研发人员:韩进邵林波
申请(专利权)人:南京信息工程大学
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1