CN104462088B - 用于海量文本匹配的方法 - Google Patents
用于海量文本匹配的方法 Download PDFInfo
- Publication number
- CN104462088B CN104462088B CN201310418114.3A CN201310418114A CN104462088B CN 104462088 B CN104462088 B CN 104462088B CN 201310418114 A CN201310418114 A CN 201310418114A CN 104462088 B CN104462088 B CN 104462088B
- Authority
- CN
- China
- Prior art keywords
- matrix
- document
- row
- sparse matrix
- vector
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/30—Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
- G06F16/33—Querying
- G06F16/3331—Query processing
- G06F16/334—Query execution
- G06F16/3347—Query execution using vector based model
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2453—Query optimisation
- G06F16/24532—Query optimisation of parallel queries
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Complex Calculations (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明提出了用于海量文本匹配的方法。其中,所述方法包括:分别将数据库文档和外部文档分组,并确定数据库文档的分组数s;分别计算数据库文档的总数目n和外部文档的总数目m,并用k个实矩阵M表示所述数据库文档的向量空间,以及用k2个稀疏矩阵P表示所述外部文档的向量空间;取未针对其进行相应的计算操作的稀疏矩阵P作为当前目标稀疏矩阵P,并针对所述当前目标稀疏矩阵P执行相应的计算操作以获得相似度矩阵S,以及随后基于所述相似度矩阵S确定与所述当前目标稀疏矩阵P所代表的各个外部文档最佳匹配的数据库文档。本发明所公开的用于海量文本匹配的方法节省存储空间、时间消耗较小并且能够进行并行处理。
Description
技术领域
本发明涉及文本匹配的方法,更具体地,涉及用于海量文本匹配的方法。
背景技术
目前,随着信息数据处理需求的日益增长以及不同领域的业务种类的日益丰富,将外部文档与海量的数据库文档进行匹配变得越来越重要。
在现有的用于文档匹配的方法中,通常采用如下方式:建立外部文档和数据库文档的向量空间模型;逐个地计算每个外部文档对应的向量与数据库文档对应的向量的相似度;选取针对特定的一个外部文档具有最大相似度的数据库文档作为与该外部文档最佳匹配的数据库文档,以此循环直至得到与每个外部文档最佳匹配的数据库文档。
然而,现有的用于文档匹配的方法存在如下问题:(1)由于通常向量化后的外部文档是稀疏的,故采用向量的方式存储外部文档会占用较大的存储空间;(2)由于需要逐步地计算每两个向量之间的点积,故计算点积的次数非常多,从而导致计算过程所花费的时间消耗较大;(3)难以进行并行计算。
因此,存在如下需求:提供节省存储空间、时间消耗较小并且能够进行并行处理的用于海量文本匹配的方法。
发明内容
为了解决上述现有技术方案中所存在的问题,本发明提出了节省存储空间、时间消耗较小并且能够进行并行处理的用于海量文本匹配的方法。
本发明的目的是通过以下技术方案实现的:
一种用于海量文本匹配的方法,所述用于海量文本匹配的方法包括下列步骤:
(A1)分别将数据库文档和外部文档分组,并确定数据库文档的分组数s;
(A2)分别计算数据库文档的总数目n和外部文档的总数目m,并用k个实矩阵M表示所述数据库文档的向量空间,以及用k2个稀疏矩阵P表示所述外部文档的向量空间;
(A3)判断是否存在未针对其进行相应的计算操作的稀疏矩阵P,并且如果不存在未针对其进行匹配操作的稀疏矩阵P,则终止匹配过程,而如果存在未针对其进行匹配操作的稀疏矩阵P,则进入步骤(A4);
(A4)取下一个未针对其进行匹配操作的稀疏矩阵P作为当前目标稀疏矩阵P,并针对所述当前目标稀疏矩阵P执行相应的计算操作以获得相似度矩阵S,以及随后基于所述相似度矩阵S确定与所述当前目标稀疏矩阵P所代表的各个外部文档最佳匹配的数据库文档并返回步骤(A3)。
在上面所公开的方案中,优选地,所述外部文档的分组数t是所述数据库文档的分组数s的倍数。
在上面所公开的方案中,优选地,所述步骤(A2)进一步包括:通过分词和/或统计词频得到数据库文档的词包W及其词条个数w;用k个实矩阵M表示所述数据库文档的向量空间,其中k=n/s,并且每个实矩阵M由s个文档向量组成,其中,每个实矩阵M具有s行w列,并且每一行表示一个文档向量;将每个实矩阵M编号并存储。
在上面所公开的方案中,优选地,所述步骤(A2)进一步包括:对外部文档进行分词操作后剔除不在所述数据库文档的词包W之内的词条;将剔除不在所述数据库文档的词包W之内的词条后词条数为0的外部文档丢弃;用k2个稀疏矩阵P表示所述外部文档的向量空间,其中k2=m/t,并且每个稀疏矩阵P由t个文档向量组成;将每个稀疏矩阵P编号并存储。
在上面所公开的方案中,优选地,所述稀疏矩阵P包括下列项:行数、列数、行号向量、列号向量、非零值向量。
在上面所公开的方案中,优选地,所述步骤(A4)进一步包括:将所述当前目标稀疏矩阵P与k个实矩阵M的匹配任务分配到z个工作站中,其中z是k的整除数。
在上面所公开的方案中,优选地,所述步骤(A4)进一步包括:所述z个工作站中的每个计算所述当前目标稀疏矩阵P与所分配的实矩阵M之间的相似度以得到相应的相似度矩阵S,其中,所述相似度矩阵S具有t行s列,并且其第i行是所述当前目标稀疏矩阵P的第i个文档与实矩阵M的s个文档的相似度。
在上面所公开的方案中,优选地,以下式计算所述相似度矩阵S:S=SC/PM,并且其中,以如下方式确定所述PM:设<|M|>=<|M1|,|M2|,……|Ms|>,其中<|M|>是由s个数据库文档向量长度组成的向量,则所述PM是t行s列的矩阵,其第i行的元素是所述当前目标稀疏矩阵P的第i个文档向量的长度与<|Mi|>的乘积,并且以如下方式确定所述SC:
其中,所述SC是t行s列的矩阵,其第i行的元素是所述当前目标稀疏矩阵P的第i个文档向量与实矩阵M的s个文档向量的点乘结果值。
在上面所公开的方案中,优选地,以如下迭代方法求解所述SC:(1)将SC初始化为t行s列的零矩阵;(2)遍历所述当前目标稀疏矩阵P的非零值向量,从而迭代更新所述SC,即设所述当前目标稀疏矩阵P在值v时对应的行号为i、列号为j,则以如下方式更新SC的第i行:将v乘以实矩阵M的第j列的值并加上SC的第i行的原值作为SC第i行的新值。
在上面所公开的方案中,优选地,所述步骤(A4)进一步包括:收集所有工作站输出的相似度矩阵S,并对所收集的相似度矩阵S按行求最大值,以确定与所述当前目标稀疏矩阵P所代表的各个外部文档最佳匹配的数据库文档。
本发明所公开的用于海量文本匹配的方法具有如下优点:(1)由于用稀疏矩阵P表示外部文档的向量空间,故显著地节省了存储空间;(2)由于在稀疏矩阵中同时存储了非零元素及其行号、列号,故在进行相似度计算时能够根据行号快速定位到SC矩阵的行以及根据列号快速定位到实矩阵M的列,由此显著地加快了相似度的计算过程;(3)由此采用了多个工作站分组并行、协同工作的方式,故极大地提高了针对海量文本的文档匹配操作的效率。
附图说明
结合附图,本发明的技术特征以及优点将会被本领域技术人员更好地理解,其中:
图1是根据本发明的实施例的用于海量文本匹配的方法的流程图;
图2是根据本发明的实施例的计算SC矩阵的示意性实例。
具体实施方式
图1是根据本发明的实施例的用于海量文本匹配的方法的流程图。如图1所示,本发明所公开的用于海量文本匹配的方法包括下列步骤:(A1)分别将数据库文档和外部文档分组,并确定数据库文档的分组数s(即数据库文档的分组的数量)和外部文档的分组数t(即外部文档的分组的数量);(A2)分别计算数据库文档的总数目n和外部文档的总数目m,并用k个实矩阵M表示所述数据库文档的向量空间,以及用k2个稀疏矩阵P表示所述外部文档的向量空间;(A3)判断是否存在未针对其进行相应的计算操作的稀疏矩阵P(即判断是否仍存在待匹配的外部文档),并且如果不存在未针对其进行相应的计算操作的稀疏矩阵P,则终止匹配过程,而如果存在未针对其进行相应的计算操作的稀疏矩阵P,则进入步骤(A4);(A4)取下一个未针对其进行相应的计算操作的稀疏矩阵P作为当前目标稀疏矩阵P,并针对所述当前目标稀疏矩阵P执行相应的计算操作以获得相似度矩阵S,以及随后基于所述相似度矩阵S确定与所述当前目标稀疏矩阵P所代表的各个外部文档最佳匹配的数据库文档并返回步骤(A3)。
示例性地,在本发明所公开的用于海量文本匹配的方法中,所述外部文档的分组数t是所述数据库文档的分组数s的倍数。
优选地,在本发明所公开的用于海量文本匹配的方法中,所述步骤(A2)进一步包括:通过分词和/或统计词频得到数据库文档的词包W及其词条个数w;用k个实矩阵M表示所述数据库文档的向量空间,其中k=n/s,并且每个实矩阵M由s个文档向量组成,其中,每个实矩阵M具有s行w列,并且每一行表示一个文档向量;将每个实矩阵M编号并存储。
优选地,在本发明所公开的用于海量文本匹配的方法中,所述步骤(A2)进一步包括:对外部文档进行分词操作后剔除不在所述数据库文档的词包W之内的词条(即对相应的计算操作而言无用的词条);将剔除不在所述数据库文档的词包W之内的词条后词条数为0的外部文档丢弃;用k2个稀疏矩阵P表示所述外部文档的向量空间,其中k2=m/t,并且每个稀疏矩阵P由t个文档向量组成;将每个稀疏矩阵P编号并存储。
优选地,在本发明所公开的用于海量文本匹配的方法中,所述稀疏矩阵P包括下列项:行数(即文档数,为t)、列数(即词条个数,为w)、行号向量(其元素为文档编号)、列号向量(其元素为词条编号)、非零值向量(其元素为对应的文档和词条在向量空间中的值)。
优选地,在本发明所公开的用于海量文本匹配的方法中,所述步骤(A4)进一步包括:将所述当前目标稀疏矩阵P与k个实矩阵M的匹配任务分配到z个工作站中,其中z是k的整除数(示例性地,z=k)。
优选地,在本发明所公开的用于海量文本匹配的方法中,所述步骤(A4)进一步包括:所述z个工作站中的每个计算所述当前目标稀疏矩阵P与所分配的实矩阵M之间的相似度以得到相应的相似度矩阵S,其中,所述相似度矩阵S具有t行s列,并且其第i行是所述当前目标稀疏矩阵P的第i个文档与实矩阵M的s个文档的相似度。
优选地,在本发明所公开的用于海量文本匹配的方法中,以下式计算所述相似度矩阵S:S=SC/PM(即S中的元素是由SC和PM中对应的元素相除而得,其中,S、SC和PM均是t行s列矩阵),并且其中,以如下方式确定所述PM:设<|M|>=<|M1|,|M2|,……|Ms|>,其中<|M|>是由s个数据库文档向量长度组成的向量,则所述PM是t行s列的矩阵,其第i行的元素是所述当前目标稀疏矩阵P的第i个文档向量的长度与<|Mi|>的乘积,并且以如下方式确定所述SC:
其中,所述SC是t行s列的矩阵,其第i行的元素是所述当前目标稀疏矩阵P的第i个文档向量与实矩阵M的s个文档向量的点乘结果值。
优选地,在本发明所公开的用于海量文本匹配的方法中,以如下迭代方法求解所述SC:(1)将SC初始化为t行s列的零矩阵;(2)遍历所述当前目标稀疏矩阵P的非零值向量,从而迭代更新所述SC,即设所述当前目标稀疏矩阵P在值v时对应的行号为i、列号为j,则以如下方式更新SC的第i行:将v乘以实矩阵M的第j列的值并加上SC的第i行的原值作为SC第i行的新值(即
SCi,h=SCi,h十v*Mh,j,h=1..s
)。
图2是根据本发明的实施例的计算SC矩阵的示意性实例。如图2所示,其显示了在遍历所述当前目标稀疏矩阵P的第一个值时SC的第一行由0变成了新值。
优选地,在本发明所公开的用于海量文本匹配的方法中,所述步骤(A4)进一步包括:收集所有工作站输出的相似度矩阵S,并对所收集的相似度矩阵S按行求最大值,以确定与所述当前目标稀疏矩阵P所代表的各个外部文档最佳匹配的数据库文档(即,如果第r行的最大值对应列c,则指示第r个外部文档的最佳匹配文档是第c个数据库文档)。
由上可见,本发明所公开的用于海量文本匹配的方法具有下列优点:(1)由于用稀疏矩阵P表示外部文档的向量空间,故显著地节省了存储空间;(2)由于在稀疏矩阵中同时存储了非零元素及其行号、列号,故在进行相似度计算时能够根据行号快速定位到SC矩阵的行以及根据列号快速定位到实矩阵M的列,由此显著地加快了相似度的计算过程;(3)由此采用了多个工作站分组并行、协同工作的方式,故极大地提高了针对海量文本的文档匹配操作的效率。
尽管本发明是通过上述的优选实施方式进行描述的,但是其实现形式并不局限于上述的实施方式。应该认识到:在不脱离本发明主旨和范围的情况下,本领域技术人员可以对本发明做出不同的变化和修改。
Claims (10)
1.一种用于海量文本匹配的方法,所述用于海量文本匹配的方法包括下列步骤:
(A1)分别将数据库文档和外部文档分组,并确定数据库文档的分组数s;
(A2)分别计算数据库文档的总数目n和外部文档的总数目m,并用k个实矩阵M表示所述数据库文档的向量空间,以及用k2个稀疏矩阵P表示所述外部文档的向量空间;
(A3)判断是否存在未针对其进行相应的计算操作的稀疏矩阵P,并且如果不存在未针对其进行相应的计算操作的稀疏矩阵P,则终止匹配过程,而如果存在未针对其进行相应的计算操作的稀疏矩阵P,则进入步骤(A4);
(A4)取下一个未针对其进行相应的计算操作的稀疏矩阵P作为当前目标稀疏矩阵P,并针对所述当前目标稀疏矩阵P执行相应的计算操作以获得相似度矩阵S,以及随后基于所述相似度矩阵S确定与所述当前目标稀疏矩阵P所代表的各个外部文档最佳匹配的数据库文档并返回步骤(A3)。
2.根据权利要求1所述的用于海量文本匹配的方法,其特征在于,所述外部文档的分组数t是所述数据库文档的分组数s的倍数。
3.根据权利要求2所述的用于海量文本匹配的方法,其特征在于,所述步骤(A2)进一步包括:通过分词和/或统计词频得到数据库文档的词包W及其词条个数w;用k个实矩阵M表示所述数据库文档的向量空间,其中k=n/s,并且每个实矩阵M由s个文档向量组成,其中,每个实矩阵M具有s行w列,并且每一行表示一个文档向量;将每个实矩阵M编号并存储。
4.根据权利要求3所述的用于海量文本匹配的方法,其特征在于,所述步骤(A2)进一步包括:对外部文档进行分词操作后剔除不在所述数据库文档的词包W之内的词条;将剔除不在所述数据库文档的词包W之内的词条后词条数为0的外部文档丢弃;用k2个稀疏矩阵P表示所述外部文档的向量空间,其中k2=m/t,并且每个稀疏矩阵P由t个文档向量组成;将每个稀疏矩阵P编号并存储。
5.根据权利要求4所述的用于海量文本匹配的方法,其特征在于,所述稀疏矩阵P包括下列项:行数、列数、行号向量、列号向量、非零值向量。
6.根据权利要求5所述的用于海量文本匹配的方法,其特征在于,所述步骤(A4)进一步包括:将所述当前目标稀疏矩阵P与k个实矩阵M的匹配任务分配到z个工作站中,其中z是k的整除数。
7.根据权利要求6所述的用于海量文本匹配的方法,其特征在于,所述步骤(A4)进一步包括:所述z个工作站中的每个计算所述当前目标稀疏矩阵P与所分配的实矩阵M之间的相似度以得到相应的相似度矩阵S,其中,所述相似度矩阵S具有t行s列,并且其第i行是所述当前目标稀疏矩阵P的第i个文档与实矩阵M的s个文档的相似度。
8.根据权利要求7所述的用于海量文本匹配的方法,其特征在于,以下式计算所述相似度矩阵S:S=SC/PM,并且其中,以如下方式确定所述PM:设<|M|>=<|M1|,|M2|,……|Ms|>,其中<|M|>是由s个数据库文档向量长度组成的向量,则所述PM是t行s列的矩阵,其第i行的元素是所述当前目标稀疏矩阵P的第i个文档向量的长度与<|Mi|>的乘积,并且以如下方式确定所述SC:
其中,所述SC是t行s列的矩阵,其第i行的元素是所述当前目标稀疏矩阵P的第i个文档向量与实矩阵M的s个文档向量的点乘结果值。
9.根据权利要求8所述的用于海量文本匹配的方法,其特征在于,以如下迭代方法求解所述SC:(1)将SC初始化为t行s列的零矩阵;(2)遍历所述当前目标稀疏矩阵P的非零值向量,从而迭代更新所述SC,即设所述当前目标稀疏矩阵P在值v时对应的行号为i、列号为j,则以如下方式更新SC的第i行:将v乘以实矩阵M的第j列的值并加上SC的第i行的原值作为SC第i行的新值。
10.根据权利要求9所述的用于海量文本匹配的方法,其特征在于,所述步骤(A4)进一步包括:收集所有工作站输出的相似度矩阵S,并对所收集的相似度矩阵S按行求最大值,以确定与所述当前目标稀疏矩阵P所代表的各个外部文档最佳匹配的数据库文档。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310418114.3A CN104462088B (zh) | 2013-09-13 | 2013-09-13 | 用于海量文本匹配的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310418114.3A CN104462088B (zh) | 2013-09-13 | 2013-09-13 | 用于海量文本匹配的方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104462088A CN104462088A (zh) | 2015-03-25 |
CN104462088B true CN104462088B (zh) | 2018-09-04 |
Family
ID=52908153
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310418114.3A Active CN104462088B (zh) | 2013-09-13 | 2013-09-13 | 用于海量文本匹配的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104462088B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108732558B (zh) * | 2018-03-26 | 2021-08-24 | 东南大学 | 一种基于拷贝信号分段的匹配滤波计算方法 |
CN109063744B (zh) * | 2018-07-06 | 2020-11-06 | 龙马智芯(珠海横琴)科技有限公司 | 神经网络模型训练方法和商业文件相似度确定方法及系统 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP2406787B1 (en) * | 2009-03-11 | 2014-05-14 | Google, Inc. | Audio classification for information retrieval using sparse features |
-
2013
- 2013-09-13 CN CN201310418114.3A patent/CN104462088B/zh active Active
Non-Patent Citations (3)
Title |
---|
"基于压缩稀疏矩阵矢量相乘的文本相似度计算";霍华 等;《小型微型训计算机系统》;20050630;第26卷(第6期);第988-990页 * |
"并行计算稀疏矩阵乘以向量的负载平衡算法";刘杰 等;《计算机工程与科学》;20061231;第28卷(第3期);第76-77、91页 * |
"稀疏矩阵的矩阵向量乘法的并行算法性能";王舜;《第七届全国并行计算学术交流会》;20060529;第1-12页 * |
Also Published As
Publication number | Publication date |
---|---|
CN104462088A (zh) | 2015-03-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102915347B (zh) | 一种分布式数据流聚类方法及系统 | |
CN101685458B (zh) | 一种基于协同过滤的推荐方法和系统 | |
CN103345496B (zh) | 多媒体信息检索方法和系统 | |
CN103617232A (zh) | 一种针对HBase表的分页查询方法 | |
CN104392010A (zh) | 一种子图匹配的查询方法 | |
CN104933624A (zh) | 复杂网络的社团发现方法及社团重要节点发现方法 | |
CN103646080A (zh) | 基于倒序索引的微博去重方法和系统 | |
CN106131154B (zh) | 移动无线传感器网络中基于核函数的压缩数据收集方法 | |
CN107798346A (zh) | 一种基于Fréchet距离阈值的轨迹相似性快速匹配方法 | |
CN102169491B (zh) | 一种多数据集中重复记录动态检测方法 | |
CN105515997B (zh) | 基于bf_tcam实现零范围扩张的高效范围匹配方法 | |
CN102968804A (zh) | 对稀疏有向图的邻接矩阵进行压缩存储的方法 | |
CN103123650A (zh) | 一种基于整数映射的xml数据库全文索引方法 | |
CN114281823B (zh) | 表格处理方法、装置、设备、存储介质及产品 | |
CN104462088B (zh) | 用于海量文本匹配的方法 | |
CN102402561A (zh) | 一种搜索方法和装置 | |
CN103312627A (zh) | 基于两级存储的正则表达式匹配方法 | |
CN104636814A (zh) | 一种随机森林模型的优化方法及系统 | |
CN101916259B (zh) | 确定自动机状态转换表的空间压缩方法 | |
CN1889486B (zh) | 无线传感器网络中的动态能量管理方法与装置 | |
CN105069084B (zh) | 一种面向海量数据高效取差集的方法 | |
CN105354264B (zh) | 一种基于局部敏感哈希的主题标签快速赋予方法 | |
CN104200246B (zh) | 分组n叉跟踪树型rfid防碰撞算法 | |
CN104581734A (zh) | 一种网络社区划分方法及装置 | |
CN104699701A (zh) | 基于敏感哈希的并行最邻近节点计算方法及分布式系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |