其他
企业数据库匹配系列(二)| 用文本相似度算法为中国工业企业数据库筛选重复样本
后台回复关键词“20220818”即可获取本文PDF版。
Part1企业名称相似度
1文本表示模型
表1 文本相似度计算常用方法
(1) 文本切分
n-gram:指的是一类使用相同文本切分方式的语言模型。这种切分方式非常简单,即使用一个长度为n的窗口,从左到右,逐字符划过文本;每一步窗口会框定一个字符串就是一个gram,文本中的所有gram就是该文本的切分结果。表2列出了几种常见的n-gram切分结果。
表2 n-gram 切分“企研数据科技有限公司”
分词:是将文本以词为单位去进行切分,比如“企研数据科技有限公司”就可以切分为“企/研/数据/科技/有限公司”。分词的目的是将文本切分为有句法意义的一个基本单元,便于人和机器理解文本。分词是中文信息处理的基础任务,基于这种方法切分的文本具有很强的时间/空间相关性。比如“有限公司”这4个字符间的相关性明显高于他们与其他字符的相关性。相比n-gram,分词在字符相关性较小的位置切分,造成信息损失比较小。当然n-gram由于极高的计算速度仍有极大的市场。
句法分析:基于句法分析的结果,从文本中抽取短语,作为文本的表示。这样得到的特征非常稀疏,适合精度要求较高的场景。
主题模型:通过提取文本的主题,使用主题词来表示文本。主题模型训练比较慢,对文本规模和质量要求比较高。
以上是四种常见的文本切分方法,第3、4种适用于长文本,文本内容丰富,需要表达特定主题的文本。基于企业名称文本具有短小,词与词之间相关性较低,文本无特殊意义且没有主题等特点,我们在做企业名称相似度计算时,可以使用n-gram和分词两种文本切分方法。在做过大量测试后发现,bigram计算的速度和计算结果都比分词效果好,所以我们最终选定bigram进行企业名称切分。
(2) 构建特征
TF(词频):指的是某个词语在文档中出现的次数。就本次任务而言,每个企业名称就是一个文档,显然企业名称中的每个词语的词频基本为1,所以此法不适用于本次计算任务。 TF-IDF(逆文档频率):是一个词语普遍重要性的度量,其要考虑所有的文本,因此也不适用于我们的计算任务。 Simhash:是敏感哈希算法在文本特征提取任务中的应用。它会把一篇文档映射为一个长度为64、元素值为0或1的一维向量。这样我们就可以使用某种距离计算方式,计算两篇文本的距离和相似度了。一般来说,与simhash配合的是汉明距离,其需要提取关键词生成向量,因此也不适用于本次计算任务。 one-hot(热独编码):首先将名称的切分结果映射到整数值,然后每个整数值被表示为0或1。每个词语独立且互不干扰,是本次计算任务最佳的特征构建方法。表3以两个企业名称为例介绍在用bigram切分的情况下,如何通过这种方法构建它们的特征。
表3 one-hot构建特征过程示例
2文本相似度度量
余弦距离:是用来计算向量之间夹角的余弦值。向量之间越相似,夹角越小,夹角余弦值越大。假设空间中的两个向量:
欧式距离:计算多维空间中,两点之间的直线(绝对)距离。 汉明距离:两个等长字符串之间的汉明距离是两个字符串对应位置的不同字符的个数。 最小编辑距离:指两个字符串之间由一个转成另一个所需的最少编辑操4作次数。以表3为例,依据余弦距离中的向量夹角余弦值计算公式计算两个企业名称的相似度,即:
四种方法在本研究下并无绝对优势劣势,因此我们随机选定了余弦相似度作为本研究计算企业名称相似度的方法。
Part2其他特征数据比较
1组织机构代码比较
2财务数据比较
表4 财务数据相同计算结果
Part3获得样本企业间完整相似度
2022-08-16
后台回复关键词“20220818”即可获取本文PDF版。
企研·社科大数据平台数据分享群
推荐关注
星标⭐我们不迷路!
想要文章及时到,文末“在看”少不了!
往期推荐