CN112597284B - 公司名称的匹配方法、装置、计算机设备及存储介质 - Google Patents
公司名称的匹配方法、装置、计算机设备及存储介质 Download PDFInfo
- Publication number
- CN112597284B CN112597284B CN202110248504.5A CN202110248504A CN112597284B CN 112597284 B CN112597284 B CN 112597284B CN 202110248504 A CN202110248504 A CN 202110248504A CN 112597284 B CN112597284 B CN 112597284B
- Authority
- CN
- China
- Prior art keywords
- company
- company names
- edge
- data
- word
- 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
Images
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/3332—Query translation
- G06F16/3334—Selection or weighting of terms from queries, including natural language queries
-
- 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
-
- 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/335—Filtering based on additional data, e.g. user or group profiles
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)
- Artificial Intelligence (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明涉及一种公司名称的匹配方法、装置、计算机设备及存储介质,该公司名称的匹配方法包括如下步骤:S1:接收用户提交的公司名称;S2:对公司名称进行分词,并根据分词结构计算词的频次和词的权重;S3:以公司名称为点,相同词为边,构建点边关系;S4:有相同的边关系的两个公司名称,计算莱文斯坦距离相似度,并根据词权重计算两个公司名称的余弦距离相似度;S5:过滤掉低于阈值的边,量化出公司名称的相似度;S6:根据过滤后的边数据,计算连通图,将数据进行划分,找出相似或者相同的公司名称;该公司名称的匹配方法、装置、计算机设备及存储介质通过构建边关系避免两两计算,大量减少了计算量,提高计算效率和计算的准确性。
Description
技术领域
本发明涉及软件开发技术领域,特别涉及一种公司名称的匹配方法、装置、计算机设备及存储介质。
背景技术
大规模数据集公司名模糊匹配,是在海量公司名数据中找出同一个公司在不同的公司名称呼表达方式的集合。现有技术中,公开的公司名模糊匹配使用的算法为人工或者做切词,对公司名进行标准化,两两比对,对降低两两比对次数上并没有做优化。
目前针对大规模数据集的公司名模糊匹配算法较少,主要是两两比对公司名的算法较多,多模糊匹配算法在性能上频次过高,且准确率低,导致计算大规模数据集较慢或不能计算,比对的算法比较单一,容易受某一些因素影响导致模糊匹配结果不够准确。
因此,亟需一种效率较高、准确性较好的匹配方法。
发明内容
基于此,有必要提供一种效率较高、准确性较好的公司名称的匹配方法、装置、计算机设备及存储介质。
本发明实施例一方面提供一种公司名称的匹配方法,包括如下步骤:
S1:接收用户提交的公司名称;
S2:对公司名称进行分词,并根据分词结构计算词的频次和词的权重;
S3:以公司名称为点,相同词为边,构建点边关系;
S4:有相同的边关系的两个公司名称,计算莱文斯坦距离相似度,并根据词权重计算两个公司名称的余弦距离相似度;
S5:过滤掉低于阈值的边,量化出公司名称的相似度;
S6:根据过滤后的边数据,计算连通图,将数据进行划分,找出相似或者相同的公司名称。
优选地,对公司名称进行分词,并根据分词结构计算词的频次和词的权重包括:
1)分词:公司名称使用jieba分词,如果有行政区,要补充公司名称中的行政区;将全量公司名称分词后,形成公司名称的分词库;
2)计算词的频次:根据分词结果,统计每个分词在全量公司名称中出现的频率,对于出现频次大于设定阈值的词作为无意义词;
3)计算词的权重:根据所有的公司名称切出来的词, 计算TF-IDF。
优选地,根据TF-IDF=TF*IDF公式,得出公司名称的分词计算公司:
TF=该分词i在公司名称j的出现频次/公司名称j的分词数量。
优选地,以公司名称为点,相同词为边,构建点边关系包括:
对海量的公司名称,根据公司名称有相同的词,则将他们建立边关系,构边计算;
构边时,将相同词的公司名称分为一个数据集,将数据集中数据量大于阈值的词进行分级膨胀。
优选地,所述分级膨胀的步骤包括:
1)分块输出:将数据集m平分n块,并将每块数据集和原来数据集组合成一条记录并输出,即每块大小是m/n条,并根据分布式计算特点,将输出结果数据进行重分区;
2)将输出结果再次进行重分区,将数据库再次尽可能平均分配;
3)将单条数据按数组遍历输出,得到构边结果。
优选地,还包括以下步骤:
S7:以每个连通图为一个独立整体,重新计算连通图内的词权重,再次计算余弦相似度;
S8:据步骤S7计算的余弦相似度,再次过滤掉低于阈值的边;
S9: 根据步骤S8过滤后的边关系,再次计算连通图,找出相似或者相同的公司名称。
本发明还提供一种公司名称的匹配装置,包括:
接收模块,用于接收提交的公司名称匹配请求;
分词模块,用于对公司名称进行分词,并根据分词结构计算词的频次和词的权重;
匹配模块,以公司名称为点,相同词为边,构建点边关系;有相同的边关系的两个公司名称,计算莱文斯坦距离相似度,并根据词权重计算两个公司名称的余弦距离相似度;
过滤模块,过滤掉低于阈值的边,量化出公司名称的相似度;
反馈模块,根据过滤后的边数据,计算连通图,将数据进行划分,找出相似或者相同的公司名称。
优选地,该匹配装置还包括:
精确匹配模块,以每个连通图为一个独立整体,重新计算连通图内的词权重,再次计算余弦相似度;
所述过滤模块再次对精确匹配模块的计算结果进行过滤,再次过滤掉低于阈值的边;
所述反馈模块根据过滤后的边关系,再次计算连通图,找出相似或者相同的公司名称。
本发明还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,该计算机程序被处理器执行时实现上述任一项所述公司名称的匹配方法的步骤。
本发明还提供一种计算机设备,包括存储器和处理器,所述存储器中存储有计算机可读指令,所述计算机可读指令被所述处理器执行时,使得所述处理器执行上述任一项所述公司名称的匹配方法的步骤。
本发明通过构建边关系避免两两计算,大量减少了计算量,提高计算效率和计算的准确性。
附图说明
通过附图中所示的本发明优选实施例更具体说明,本发明上述及其它目的、特征和优势将变得更加清晰。在全部附图中相同的附图标记指示相同的部分,且并未刻意按实际尺寸等比例缩放绘制附图,重点在于示出本的主旨。
图1为本发明实施例的公司名称的匹配方法的流程图;
图2为本发明优选实施例的公司名称匹配装置的结构框架图;
图3为本发明实施例的计算机设备的内部结构框架图。
具体实施方式
下面结合附图和具体实施例对本发明技术方案作进一步的详细描述,以使本领域的技术人员可以更好地理解本发明并能予以实施,但所举实施例不作为对本发明的限定。
如图1所示,本发明实施例一方面提供一种公司名称的匹配方法,包括如下步骤:
S1:接收用户提交的公司名称。
本申请中,程序中储存有海量的公司名称,或者接收客户提交的海量公司名称,多个公司名称形成公司名称集群,客户出发匹配请求后,程序在海量公司名称中进行匹配。客户端可以接收公司名称匹配的触发指令,向服务器提交公司名称匹配请求。一种可能的设计中,该应用程序启动后,提供一个用户界面,用户通过该用户界面进行操作,可以产生公司名称匹配的触发指令,例如提供一个虚拟按键,当用户需要匹配某个公司的公司名称时,通过触控该虚拟按键后,即产生公司名称匹配的触发指令。
S2:对公司名称进行分词,并根据分词结构计算词的频次和词的权重。
将公司名称切分成多个词组,计算每个词出现的频率及词的权重。
假设案例
公司名为:永达机械有限公司,永达商贸有限公司,方达机械有限公司,永达机械。
切词分为:永达\机械\有限公司,永达\商贸\有限公司,方达\机械\有限公司,永达\机械。
根据TF-IDF=TF*IDF公式,得出公司名称的分词计算公司:
TF=该分词i在公司名称j的出现频次/公司名称j的分词数量。
S3:以公司名称为点,相同词为边,构建点边关系。
以公司名为点,相同词为边,构建点边关系。通过构建边关系,避免了全量数据进行两两计算,只计算有相同词的两个公司名,大量减少了计算量。
构边时,因为公司名的特点,分出来的词通常会词频过高,导致在分布式环境中出现数据倾斜概率高,导致分布式算法无法运转下去,因此本发明设计高性能分布式构建边关系算法(通过分级膨胀方式),解决严重的数据倾斜问题。分布式构边算法:构建边关系,并解决数据严重倾斜问题,比如: 永达机械和永达商贸建立边关系,相同词是永达。
核心算法思想如下:
对于全量数据 m,分n块,每块大小是m/n条,最终得到m*(m-1)/2条
1.第一级膨胀(条数)膨胀n倍: 1---> n
2.第一级膨胀计算后的数据重分区
3.第二级膨胀(条数)膨胀m/n倍: n---> m
4.第二级膨胀计算后的数据重分区
5.第三级膨胀(条数)最高膨胀m倍,最低膨胀1倍,呈y=x的分布,平均(m-1)/2倍:m---> m*(m-1)/2
该算法思想结合分布式计算的特点,在每一级膨胀后,都对膨胀后的数据再次进行重分区操作。目的是为了,上一级膨胀计算后的数据输入到下一级膨胀数据时,上一级膨胀计算后数据数量大小在每台机器分布是平均的,达到充分利用分布式性能。所以计算性能非常高效。
S4:有相同的边关系的两个公司名称,计算莱文斯坦距离相似度,并根据词权重计算两个公司名称的余弦距离相似度。
具体地,设计相同的边关系的两个公司名,计算莱文斯坦距离相似度,和根据词权重计算两个公司名的余弦距离相似度,两个相似度相结合,进行综合判断。
余弦距离相似度计算公式为:
根据该公式可以计算上述假设案例中的永达机械有限公司和永达商贸有限公司的余弦距离为:
永达机械有限公司和方达机械有限公司的余弦距离为:
莱文斯坦距离,又称Levenshtein距离,是编辑距离的一种。指两个字串之间,由一个转成另一个所需的最少编辑操作次数。允许的编辑操作包括将一个字符替换成另一个字符,插入一个字符,删除一个字符。
根据莱文斯坦距离的计算方法及S1-S3的结果,我们可以计算出:
永达机械有限公司和永达商贸有限公司的莱文斯坦距离:0.5;
永达机械有限公司和方达机械有限公司的莱文斯坦距离:0.75。
莱文斯坦距离的计算方法属于本领域的公知常识,具体地计算方法不再详述。
S5:过滤掉低于阈值的边,量化出公司名称的相似度。
根据余弦距离和莱文斯坦距离,过滤掉低于一定阈值的边,通过余弦距离和莱文斯坦距离的计算结果结合,可以量化出公司名的相似度。需要说明的是,余弦距离相似度:偏重于公司名局部核心词的对比,增加关键词的权重相似度(公司名称),降低行业词的权重相似度(行业词等)。余弦相似度:优点: 相同的公司名的名字相同时,相似度很高;2)缺点: 对行业名或其他类别词判断较弱,比如: 永达机械和永达商贸。莱文斯坦距离相似度:判断公司名全局角度的相似度。所以,如果设置一定的阈值,根据S4的计算结果:永达机械有限公司和方达机械有限公司这条边,和永达机械有限公司和方达机械有限公司这条边都有可以被过滤了(从观察上已经可以看出,这两对公司名都不是同一个公司)。莱文斯坦距离:根据公司名总体相似度进行判断(编辑距离)。优点:判断公司名全局角度的相似度较强;缺点:对公司名的关键名字判断较弱,容易被其他类别词干扰。比如:永达机械有限公司和方达机械有限公司。本申请中,余弦相似度和莱文斯坦距离的优缺点互补,结合使用判断两个公司名是否相似。通过以上的算法设计,本发明对于海量的公司名数据,通过分布式高性能构建边关系计算,结合余弦距离和莱文斯坦距离两个的优点,通过连通图的方式,快速将海量的公司名数据进行模糊匹配。解决了海量公司名数据模糊匹配的计算问题和准确性问题,并大幅提升了公司名模糊匹配算法的计算性能和准确性。
S6:根据过滤后的边数据,计算连通图,将数据进行划分,找出相似或者相同的公司名称。
假设有A,B,C三个公司名称,根据传递关系,A与B相似,B与C相似,那么A与C为相似,那么集合(A,B,C)的公司名是指同一个公司。我们可以通过连通布图的思想找出这种集合的关系。分布式计算连通图,相当于把海量数据的公司名,进行分区,每个分区的数据,只有相同词关联出来的边才能构成连通图。分布式连通图算法是根据阈值过滤后的边都是相似的公司名,组成该连通图即为公司名都相似的公司名团。根据该方法,可以将海量的数据进行初步的划分。
通过该公司名称匹配方法可以应用于风险控制软件。一种应用中,通过公司名称匹配算法,将相似公司名建立社交网络关系,计算反欺诈规则,有效发现欺诈团伙。在另一种应用中,可以用于信贷行业(如优企贷),通过模糊匹配算法,将待匹配的公司名识别出是否是优质企业,从而给风险判断提供依据。
在优选实施例中,对公司名称进行分词,并根据分词结构计算词的频次和词的权重包括:
1)分词:公司名称使用jieba分词,如果有行政区,要补充公司名称中的行政区;将全量公司名称分词后,形成公司名称的分词库。jieba分词:利用相同的词构建边关系,计算词的权重。
公司名假如为:永达机械有限公司,永达商贸有限公司,方达机械有限公司,永达机械,永达有限公司
切词分为:永达\机械\有限公司,永达\商贸\有限公司,方达\机械\有限公司,永达\机械。
2)计算词的频次:根据分词结果,统计每个分词在全量公司名称中出现的频率,对于出现频次大于设定阈值的词作为无意义词。
根据分词结果,以该分词在一个公司名里出现次数为1,对该分词在全量公司名出现的频次进行统计,统计每个分词在全量公司名中出现的频率,对于分词的出现频次大于一定频次的,将这一类的分词作为过滤频次高,无意义的词,比如: 公司,有限公司,股份,店等。
3)计算词的权重:根据所有的公司名称切出来的词, 计算TF-IDF。TF-IDF用于计算词权重和余弦相似度。
对假设案例中的公司名称进行分词:永达\机械\有限公司,永达\商贸\有限公司,方达\机械\有限公司,永达\机械。计算分词的TF-IDF结果为:永达:9.22; 机械:5.4;商贸:3.86;有限公司:0.87;方达:10.78。
在优选实施例中,以公司名称为点,相同词为边,构建点边关系包括:
对海量的公司名称,根据公司名称有相同的词,则将他们建立边关系,构边计算。
构边时,将相同词的公司名称分为一个数据集,将数据集中数据量大于阈值的词进行分级膨胀。
在优选实施例中,分级膨胀的步骤包括:
1)分块输出:将数据集m平分n块,并将每块数据集和原来数据集组合成一条记录并输出,即每块大小是m/n条,并根据分布式计算特点,将输出结果数据进行重分区。
2)将输出结果再次进行重分区,将数据库再次尽可能平均分配。
3)将单条数据按数组遍历输出,得到构边结果。
根据假设案例的数据计算出结果为:
永达机械有限公司和永达商贸有限公司建立边关系,相同词为:永达,有限公司;
永达机械有限公司和方达机械有限公司建立边关系,相同词为:机械;
在海量的公司名数据中,本发明分词后,根据相同词构建边关系,如果分词的词频过高,比如科技等行业词,如果出现1万次,根据组合计算,会构建出(10000*(10000-1))/2=4950000条边。对于分布式计算,这种情形是数据膨胀约5000倍,如果词频是10万次,则膨胀约50000倍,很容易出现数据严重倾斜问题,即有的词频低的,膨胀数据量很少,有的词频搞的,膨胀的数据量非常大。
所以,构边时,因为公司名的特点,分出来的词通常会词频过高,导致在分布式环境中出现数据倾斜概率高,导致分布式算法无法运转下去,因此这里还需进行分级膨胀解决倾斜问题
针对这种,本发明设计了一种分级膨胀算法,即将大于一定频次的数据,利用分布式计算特性,分多次膨胀,最终达到想要的结果数据,核心步骤如下:
(1)将相同词的公司名分为一个集合,比如科技,对应集合是:永达科技,方达科技,xx科技等
(2)将集合中的数据量大于200时,进行分级膨胀,主要方式为,比如1)中数据集合,我们使用序号代表公司:
目的是将集合(1,2,3,4),输出该属性的边集合[(1,2),(1,3),(1,4),(2,3),(2,4),(3,4)]
将数据膨胀分三级膨胀到最终结果
1. 第一级膨胀:分块输出:将数据集m平分n块,并将每块数据集和原来数据集组合成一条记录并输出,即每块大小是m/n条
例如: (1,2,3,4,5,6,7,8) 分4块输出
((1,2),(1,2,3,4,5,6,7,8))
((3,4),(1,2,3,4,5,6,7,8))
((5,6),(1,2,3,4,5,6,7,8))
((7,8),(1,2,3,4,5,6,7,8))。
2. 根据分布式计算特点,将输出结果数据进行重分区,即将所有的数据平均打散到各台机子,保证每台机器的计算量尽可能平均;
3. 第二级膨胀:将分块的数据按单个输出:
例如:((1,2),(1,2,3,4,5,6,7,8))
输出:
(1,(1,2,3,4,5,6,7,8))
(2,(1,2,3,4,5,6,7,8))
4. 将输出结果再次进行重分区,使原本数据计算出来的数据量不平均,通过再分区,将数据块再次尽可能平均到各台机器进行后面的计算
第三级膨胀:将单条数据按数组遍历输出:
例如:(1,(1,2,3,4,5,6,7,8))
输出:
(1,2)
(1,3)
(1,4)
(1,5)
(1,6)
(1,7)
(1,8)
例子分析: 点集合大小是8个,分4块,每块大小是2条,最终得到28条,
第一级膨胀(条数)膨胀4倍: 1---> 4
第二级膨胀(条数)膨胀2倍: 4---> 8
第三级膨胀(条数)最高膨胀8倍,最低膨胀1倍,呈y=x的分布,平均4倍: 8---> 28
对于全量数据 m,分n块,每块大小是m/n条,最终得到m*(m-1)/2条,
第一级膨胀(条数)膨胀n倍: 1---> n
第二级膨胀(条数)膨胀m/n倍: n---> m
第三级膨胀(条数)最高膨胀m倍,最低膨胀1倍,呈y=x的分布,平均(m-1)/2倍:m---> m*(m-1)/2
通过多级膨胀数据,达到最终想要的计算结果。该计算基于spark的分布式计算框架进行,通过该算法设计,可以高效把构边结果计算出来。
在优选实施例中,还包括以下步骤:
S7:以每个连通图为一个独立整体,重新计算连通图内的词权重,再次计算余弦相似度。
设计使用分布式连通图方式,将有关联关系的公司名归为一个集合(分组)。以每个连通图为一个独立整体,重新计算连通图内的词权重,再次计算余弦相似度。根据再次计算的余弦相似度,过滤后的边关系再次计算连通图,本发明认为该连通图的公司名集合即为同一个公司。
建立连通图的目的主要是把所有有关联的边关系的集合找出来,在海量的数据分析中,根据上述步骤,可以将大量的公司名进行区分。可是在海量的公司名中,根据上述步骤,我们在海量数据计算结果中会出现一种现象,A与B相似,B与C相似,A与C在上面的步骤中已经被过滤(即A与C不是同一个公司),可是通过连通图,将计算出集合(A,B,C),比如:A为永达机械,B为永达,C为永达商贸。A与C的边已经被过滤,可是在计算中通过连通图就会在一起。
在名词多样化的情况下,有的连通图就会将各行各业的,不同的公司包含在一起,根据数据分析发现,会出现一种连通图现象:永达机械,永达商贸,永达,永达机械有限公司,永达科技有限公司,永达科技等等。更极端有的会把各种名称都包含在一起,不限于公司的名字(比如永达)。所以S6只能将海量的数据初步划分,不能做到数据的精确划分。
针对这种连通图现象,根据数据分析出,主要是因为公司名的名字的词权重高,行业名词的词权重低,有的公司名写得比较简单(比如只写永达,这种简称)。导致连通图的数据只能比较粗地把海量公司名划分。
根据这种现象,本发明在原来的计算出的连通图基础上,以该连通图作为全量公司名集合,重新计算在该集合中的词权重,根据上面的连通图现象,原来的分词权重较高的,现在将降低。原来行业的权重较低的,就变得权重高。然后计算余弦距离,根据一定的阈值进行边过滤。
S8:据步骤S7计算的余弦相似度,再次过滤掉低于阈值的边。
S9: 根据步骤S8过滤后的边关系,再次计算连通图,找出相似或者相同的公司名称。
通过计算结果分析发现,再次计算TF-IDF和余弦,可以很好的把同一个公司名划分出来,而不会将其他行业的公司名包含进来,比如第一次计算出连通图:(永达机械,永达商贸,永达,永达机械有限公司,永达科技有限公司,永达科技)等等,通过再次计算后,划分出(永达机械,永达机械有限公司),(永达科技,永达科技有限公司),(永达商贸),(永达)等几个连通图。这时,本发明认为同一个连通图的公司名即为同一个公司。
通过分级膨胀和重分区,充分利用分布式计算性能,使计算更加高效。并使用了分布式连通图计算,整个计算性能达到一定的提升。本发明通过数据性能测试对比发现,使用分级膨胀算法比不使用分级膨胀算法,性能提升80%以上。如果数据特点比较极端(比如:相同词的公司名集合非常大),数据倾斜越明显,计算性能越差。而分级膨胀算法则对这种情况计算性能影响不大。
通过使用人工抽样打标方式作为测试集,通过上述步骤的计算流程,公司名的模糊匹配最终的准确性可以达到86%以上。
参考图2,本发明还提供一种公司名称的匹配装置,包括:
接收模块,用于接收提交的公司名称匹配请求;
分词模块,用于对公司名称进行分词,并根据分词结构计算词的频次和词的权重;
匹配模块,以公司名称为点,相同词为边,构建点边关系;有相同的边关系的两个公司名称,计算莱文斯坦距离相似度,并根据词权重计算两个公司名称的余弦距离相似度;
过滤模块,过滤掉低于阈值的边,量化出公司名称的相似度;
反馈模块,根据过滤后的边数据,计算连通图,将数据进行划分,找出相似或者相同的公司名称。
具体地,分词模块包括:
jieba分词模块,公司名称使用jieba分词,如果有行政区,要补充公司名称中的行政区;将全量公司名称分词后,形成公司名称的分词库;
频次计算模块,根据分词结果,统计每个分词在全量公司名称中出现的频率,对于出现频次大于设定阈值的词作为无意义词;
权重计算模块,根据所有的公司名称切出来的词, 计算TF-IDF。
匹配模块包括:
构边模块,对海量的公司名称,根据公司名称有相同的词,则将他们建立边关系,构边计算,构边时,将相同词的公司名称分为一个数据集,将数据集中数据量大于阈值的词进行分级膨胀;
计算模块,计算莱文斯坦距离相似度,并根据词权重计算两个公司名称的余弦距离相似度。
在优选实施例中,该匹配装置还包括:
精确匹配模块,以每个连通图为一个独立整体,重新计算连通图内的词权重,再次计算余弦相似度;
所述过滤模块再次对精确匹配模块的计算结果进行过滤,再次过滤掉低于阈值的边;
所述反馈模块根据过滤后的边关系,再次计算连通图,找出相似或者相同的公司名称。
本发明还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,该计算机程序被处理器执行时实现上述任一项所述公司名称的匹配方法的步骤。其中,该计算机可读存储介质包括但不限于任何类型的盘(包括软盘、硬盘、光盘、CD-ROM、和磁光盘)、ROM(Read-Only Memory,只读存储器)、RAM(Random AcceSSMemory,随即存储器)、EPROM(EraSable Programmable Read-Only Memory,可擦写可编程只读存储器)、EEPROM(Electrically EraSable Programmable Read-Only Memory,电可擦可编程只读存储器)、闪存、磁性卡片或光线卡片。也就是,存储设备包括由设备(例如,计算机、手机)以能够读的形式存储或传输信息的任何介质,可以是只读存储器,磁盘或光盘等。
参考图3,本发明还提供一种计算机设备,包括存储器和处理器,该存储器中存储有计算机可读指令,所述计算机可读指令被所述处理器执行时,使得所述处理器执行上述任一项所述公司名称的匹配方法的步骤。存储器可以是内存储器或外存储器,或者包括内存储器和外存储器两者。内存储器可以包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦写可编程ROM(EEPROM)、快闪存储器、或者随机存储器。外存储器可以包括硬盘、软盘、ZIP盘、U盘、磁带等。本申请所公开的存储器包括但不限于这些类型的存储器。本申请所公开的存储器305只作为例子而非作为限定。
该计算机设备还包括输入机构和显示机构,输入机构用于接收信号的输入,以及接收用户输入的关键字。输入机构可包括触控面板以及其它输入设备。触控面板可收集用户在其上或附近的触摸操作(比如用户使用手指、触笔等任何适合的物体或附件在触控面板上或在触控面板附近的操作),并根据预先设定的程序驱动相应的连接装置;其它输入设备可以包括但不限于物理键盘、功能键(比如播放控制按键、开关按键等)、轨迹球、鼠标、操作杆等中的一种或多种。显示机构可用于显示用户输入的信息或提供给用户的信息以及计算机设备的各种菜单。显示机构可采用液晶显示器、有机发光二极管等形式。处理器是计算机设备的控制中心,利用各种接口和线路连接整个电脑的各个部分,通过运行或执行存储在存储器内的软件程序和/或模块,以及调用存储在存储器内的数据,执行各种功能和处理数据。
本发明通过构建边关系避免两两计算,大量减少了计算量,提高计算效率和计算的准确性。
以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。
Claims (9)
1.一种公司名称的匹配方法,其特征在于,包括如下步骤:
S1:接收用户提交的公司名称;
S2:对公司名称进行分词,并根据分词结构计算词的频次和词的权重;
S3:以公司名称为点,相同词为边,构建点边关系;
S4:有相同的边关系的两个公司名称,计算莱文斯坦距离相似度,并根据词权重计算两个公司名称的余弦距离相似度;
S5:过滤掉低于阈值的边,量化出公司名称的相似度;
S6:根据过滤后的边数据,计算连通图,将数据进行划分,找出相似或者相同的公司名称;
以公司名称为点,相同词为边,构建点边关系包括:
对海量的公司名称,根据公司名称有相同的词,则将他们建立边关系,构边计算;
构边时,将相同词的公司名称分为一个数据集,将数据集中数据量大于阈值的词进行分级膨胀;
分级膨胀的核心算法思想如下:
对于全量数据 m,分n块,每块大小是m/n条,最终得到m*(m-1)/2条;
1.第一级膨胀的条数膨胀n倍: 1---> n ;
2.第一级膨胀计算后的数据重分区;
3.第二级膨胀的条数膨胀m/n倍: n---> m;
4.第二级膨胀计算后的数据重分区;
5.第三级膨胀的条数最高膨胀m倍,最低膨胀1倍,呈y=x的分布,平均(m-1)/2倍: m---> m*(m-1)/2。
2.如权利要求1所述的公司名称的匹配方法,其特征在于,对公司名称进行分词,并根据分词结构计算词的频次和词的权重包括:
1)分词:公司名称使用jieba分词,如果有行政区,要补充公司名称中的行政区;将全量公司名称分词后,形成公司名称的分词库;
2)计算词的频次:根据分词结果,统计每个分词在全量公司名称中出现的频率,对于出现频次大于设定阈值的词作为无意义词;
3)计算词的权重:根据所有的公司名称切出来的词,计算TF-IDF。
4.如权利要求1所述的公司名称的匹配方法,其特征在于,所述分级膨胀的步骤包括:
1)分块输出:将数据集m平分n块,并将每块数据集和原来数据集组合成一条记录并输出,即每块大小是m/n条,并根据分布式计算特点,将输出结果数据进行重分区;
2)将输出结果再次进行重分区,将数据库再次尽可能平均分配;
3)将单条数据按数组遍历输出,得到构边结果。
5.如权利要求1所述的公司名称的匹配方法,其特征在于,还包括以下步骤:
S7:以每个连通图为一个独立整体,重新计算连通图内的词权重,再次计算余弦相似度;
S8:据步骤S7计算的余弦相似度,再次过滤掉低于阈值的边;
S9: 根据步骤S8过滤后的边关系,再次计算连通图,找出相似或者相同的公司名称。
6.一种公司名称的匹配装置,其特征在于,包括:
接收模块,用于接收提交的公司名称匹配请求;
分词模块,用于对公司名称进行分词,并根据分词结构计算词的频次和词的权重;
匹配模块,以公司名称为点,相同词为边,构建点边关系;有相同的边关系的两个公司名称,计算莱文斯坦距离相似度,并根据词权重计算两个公司名称的余弦距离相似度;
过滤模块,过滤掉低于阈值的边,量化出公司名称的相似度;
反馈模块,根据过滤后的边数据,计算连通图,将数据进行划分,找出相似或者相同的公司名称;
以公司名称为点,相同词为边,构建点边关系包括:
对海量的公司名称,根据公司名称有相同的词,则将他们建立边关系,构边计算;
构边时,将相同词的公司名称分为一个数据集,将数据集中数据量大于阈值的词进行分级膨胀;
分级膨胀的核心算法思想如下:
对于全量数据 m,分n块,每块大小是m/n条,最终得到m*(m-1)/2条;
1.第一级膨胀的条数膨胀n倍: 1---> n ;
2.第一级膨胀计算后的数据重分区;
3.第二级膨胀的条数膨胀m/n倍: n---> m;
4.第二级膨胀计算后的数据重分区;
5.第三级膨胀的条数最高膨胀m倍,最低膨胀1倍,呈y=x的分布,平均(m-1)/2倍: m---> m*(m-1)/2。
7.如权利要求6所述的公司名称的匹配装置,其特征在于,该匹配装置还包括:
精确匹配模块,以每个连通图为一个独立整体,重新计算连通图内的词权重,再次计算余弦相似度;
所述过滤模块再次对精确匹配模块的计算结果进行过滤,再次过滤掉低于阈值的边;
所述反馈模块根据过滤后的边关系,再次计算连通图,找出相似或者相同的公司名称。
8.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,该计算机程序被处理器执行时实现权利要求1-5中任一项所述公司名称的匹配方法的步骤。
9.一种计算机设备,其特征在于,包括存储器和处理器,所述存储器中存储有计算机可读指令,所述计算机可读指令被所述处理器执行时,使得所述处理器执行如权利要求1-5中任一项权利要求所述公司名称的匹配方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110248504.5A CN112597284B (zh) | 2021-03-08 | 2021-03-08 | 公司名称的匹配方法、装置、计算机设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110248504.5A CN112597284B (zh) | 2021-03-08 | 2021-03-08 | 公司名称的匹配方法、装置、计算机设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112597284A CN112597284A (zh) | 2021-04-02 |
CN112597284B true CN112597284B (zh) | 2021-06-15 |
Family
ID=75210283
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110248504.5A Active CN112597284B (zh) | 2021-03-08 | 2021-03-08 | 公司名称的匹配方法、装置、计算机设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112597284B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114139523A (zh) * | 2021-11-25 | 2022-03-04 | 北京中交兴路信息科技有限公司 | 名称比对的方法、装置、电子设备及介质 |
CN115329039B (zh) * | 2022-08-08 | 2023-08-04 | 前锦网络信息技术(上海)有限公司 | 一种招聘企业搜索方法、系统、电子设备及存储介质 |
CN115169338B (zh) * | 2022-09-08 | 2023-01-03 | 杭州费尔斯通科技有限公司 | 一种公司名简称识别方法及装置 |
CN116127976B (zh) * | 2023-01-09 | 2023-12-05 | 中国司法大数据研究院有限公司 | 公司名称的匹配方法、装置及电子设备 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102184256A (zh) * | 2011-06-02 | 2011-09-14 | 北京邮电大学 | 一种针对海量相似短文本的聚类方法和系统 |
CN105243389A (zh) * | 2015-09-28 | 2016-01-13 | 北京橙鑫数据科技有限公司 | 公司名称的行业分类标签的确定方法和装置 |
CN110532388A (zh) * | 2019-08-15 | 2019-12-03 | 苏州朗动网络科技有限公司 | 文本聚类的方法、设备和存储介质 |
CN111191464A (zh) * | 2020-01-17 | 2020-05-22 | 珠海横琴极盛科技有限公司 | 基于组合距离的语义相似度计算方法 |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8463770B1 (en) * | 2008-07-09 | 2013-06-11 | Amazon Technologies, Inc. | System and method for conditioning search results |
US20100268628A1 (en) * | 2009-04-15 | 2010-10-21 | Attributor Corporation | Managing controlled content on a web page having revenue-generating code |
CN102411579B (zh) * | 2010-09-20 | 2016-07-13 | 深圳市世纪光速信息技术有限公司 | 一种搜索行业相关信息的方法及装置 |
CN102651013B (zh) * | 2012-03-23 | 2014-04-16 | 上海安捷力信息系统有限公司 | 一种从企业名称数据中提取区域信息的方法及系统 |
CN104102626B (zh) * | 2014-07-07 | 2017-08-15 | 厦门推特信息科技有限公司 | 一种用于短文本语义相似度计算的方法 |
CN104750798B (zh) * | 2015-03-19 | 2020-09-29 | 腾讯科技(深圳)有限公司 | 一种应用程序的推荐方法和装置 |
CN105786969B (zh) * | 2016-02-01 | 2020-07-03 | 百度在线网络技术(北京)有限公司 | 信息展示方法和装置 |
CN110363206B (zh) * | 2018-03-26 | 2023-06-27 | 阿里巴巴集团控股有限公司 | 数据对象的聚类、数据处理及数据识别方法 |
CN109325019B (zh) * | 2018-08-17 | 2022-02-08 | 国家电网有限公司客户服务中心 | 数据关联关系网络构建方法 |
CN112417879A (zh) * | 2020-11-25 | 2021-02-26 | 上海水滴征信服务有限公司 | 确定企业属性相似性、重名对象判定 |
-
2021
- 2021-03-08 CN CN202110248504.5A patent/CN112597284B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102184256A (zh) * | 2011-06-02 | 2011-09-14 | 北京邮电大学 | 一种针对海量相似短文本的聚类方法和系统 |
CN105243389A (zh) * | 2015-09-28 | 2016-01-13 | 北京橙鑫数据科技有限公司 | 公司名称的行业分类标签的确定方法和装置 |
CN110532388A (zh) * | 2019-08-15 | 2019-12-03 | 苏州朗动网络科技有限公司 | 文本聚类的方法、设备和存储介质 |
CN111191464A (zh) * | 2020-01-17 | 2020-05-22 | 珠海横琴极盛科技有限公司 | 基于组合距离的语义相似度计算方法 |
Also Published As
Publication number | Publication date |
---|---|
CN112597284A (zh) | 2021-04-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112597284B (zh) | 公司名称的匹配方法、装置、计算机设备及存储介质 | |
US9658826B2 (en) | Sorting multiple records of data using ranges of key values | |
US10579661B2 (en) | System and method for machine learning and classifying data | |
US8112421B2 (en) | Query selection for effectively learning ranking functions | |
US10042914B2 (en) | Database index for constructing large scale data level of details | |
CN106202548A (zh) | 数据存储方法、查找方法及装置 | |
US10210280B2 (en) | In-memory database search optimization using graph community structure | |
US20110167400A1 (en) | Method and mechanism for extraction and recognition of polygons in an ic design | |
CN112733545A (zh) | 文本分块方法、装置、计算机设备和存储介质 | |
CN113157943A (zh) | 面向大规模金融知识图谱的分布式存储及可视化查询处理方法 | |
CN108595581A (zh) | 数据流中频繁项的挖掘方法及挖掘系统 | |
CN111191430B (zh) | 自动建表方法、装置、计算机设备和存储介质 | |
US5870748A (en) | Method and apparatus for deriving an optimized confidence rule | |
US11048730B2 (en) | Data clustering apparatus and method based on range query using CF tree | |
Xylogiannopoulos et al. | Periodicity data mining in time series using suffix arrays | |
CN104199924B (zh) | 选择具有快照关系的网络表格的方法及装置 | |
CN110941952A (zh) | 一种完善审计分析模型的方法及装置 | |
US9830355B2 (en) | Computer-implemented method of performing a search using signatures | |
Wang et al. | MapReduce based personalized locality sensitive hashing for similarity joins on large scale data | |
CN111259117B (zh) | 短文本批量匹配方法及装置 | |
CN114610955A (zh) | 一种智能检索方法、装置、电子设备及存储介质 | |
Hacid et al. | Incremental neighborhood graphs construction for multidimensional databases indexing | |
CN115408491B (zh) | 一种历史数据的文本检索方法及系统 | |
CN110399406B (zh) | 挖掘全局高效用序列模式的方法、装置及计算机存储介质 | |
US11734244B2 (en) | Search method and search device |
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 |