匹配公司英文名
太久不编程,从编程小学生退化回编程婴儿。以前学习到的一些文本挖掘的理论也忘记了。
问题:两边公司名的写法可能不同,直接用相似度计算,也不太行。因为最简单的相似度,是按字母算,不太对,准确度不高。复杂一点的算法,要考虑词频,公司名本身就没有几个单词,计算词频没什么意义。(个人意见)
目前思路:把标点符号去掉,一些常用的词缀(如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) #统计列表里每个元素出现的频率,也就是词频
模糊匹配的代码:
明天再说