一、需求
对登记纳税人的注册地址进行相似度计算,发现单个纳税人可能存在的一址多注册。
二、数据
数据来源:登记纳税人数据
数据量:百万级
部分数据展示:
三、数据预处理
1,取数,从hive中提取数据
2,去重、构造专业词库、分词、去停用词
四、算法
采用gensim库,gensim是一个基于Python语言的开源工具集,用于处理向量空间模型(vector space modeling)和话题模型(topic modeling)的相关问题。
1,生成了包含所有词语的词典。
2,有了前一步生成的词典,我们就可以将每个词语转化成一个索引,表示该词语在所有文档中出现的次序,然后每个文档就可以转化成一个索引的列表。
3,调用gensim中的tf-idf模块来进一步对每个单词计算权重。
4,采用了余弦相似度作为衡量指标,进行注册地址相似度计算。
五、算法应用
通过flask起算法服务,通过接口地址访问。
六、调用结果展示
七、备注
1,由于是专业数据,停用词库最好简化,基本上每个词都有用,想要提高准确率,专业词库是必须的。
2,当数据量超百万时,gesim在计算相似度时可能存在内存错误,可以用similarities.Similarity类替换,该类存在三个参数。
3,本项目有两个脚本,一个是批量跑数脚本,另一个是服务脚本。
八、项目代码
想要项目的两个详细脚本私聊我,加微信。