公司名称之间的相似之处:compsim模块不起作用

时间:2018-09-20 19:39:48

标签: python arrays database module

我正在尝试使用模块compsim来获得公司名称之间匹配的可能性:

import csv
import sys
sys.path.insert(0,'C:/Users/MyName/Documents/Python Scripts/compsim-0.0.3')

from compsim.company_name_similarity import CompanyNameSimilarity

cm = CompanyNameSimilarity()
cm.match_score("Rombus Solutions ltd", "Axia Solutions pvt ltd")

但是我得到了错误:

File "C:\Users\MyName\Anaconda3\lib\site-packages\compsim-0.0.3-py3.6.egg\compsim\company_name_similarity.py", line 18, in preprocess
return field.encode('utf-8').lower().replace('\n','').replace("'",' ').replace('\r','').replace('/',' ').\

TypeError: a bytes-like object is required, not 'str'  

请帮助我,我被困住了。

谢谢!

1 个答案:

答案 0 :(得分:0)

在我看来,compsim模块中有一个错误。 str.encode()返回一个字节对象,您只能在其中替换其他字节对象,而不能替换字符串。

替换字节有效:

field = "Rombus"
field.encode('utf-8').replace(b'\n', b'')

省略encode也可以:

field = "Rombus"
field.replace('\n', '')

一种解决方案是在本地修改源代码。删除.encode('utf-8')应该很安全,因为默认情况下Python 3是utf-8编码的。