匹配公司英文名

太久不编程,从编程小学生退化回编程婴儿。以前学习到的一些文本挖掘的理论也忘记了。

 

 

问题:两边公司名的写法可能不同,直接用相似度计算,也不太行。因为最简单的相似度,是按字母算,不太对,准确度不高。复杂一点的算法,要考虑词频,公司名本身就没有几个单词,计算词频没什么意义。(个人意见)

目前思路:把标点符号去掉,一些常用的词缀(如cor,inc)去掉,然后直接精确匹配

本来的词缀是男朋友手动找的,他找了几百个后,我才想到可以通过统计词频的方式,找出没用的词。我以前做过文本挖掘的研究,但是做的特别浅薄,所以一时没想到这个最基础的理论。我最讨厌机械工作和白费工,尤其心疼人做白费机械工,有点内疚。

用到的代码整理一下:

 

import pandas as pd
from string import punctuation #去标点符号

dicts={i:'' for i in punctuation}   #去标点符号要用
punc_table=str.maketrans(dicts)

conm_word=[]
for i in conmlist['conm']:  #conmlist是dataframe
    i=i.translate(punc_table) #所有标点符号去掉
    i = i.upper() #全部变大写
    word=i.split() #分成一个词一个词,结果是list
    conm_word=conm_word+word   #list连到一起

result=pd.value_counts(conm_word)  #统计列表里每个元素出现的频率,也就是词频

 

模糊匹配的代码:

明天再说

 

posted @ 2020-11-15 00:31  haolemao  阅读(194)  评论(0编辑  收藏  举报