我正在尝试使用模块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'
请帮助我,我被困住了。
谢谢!
答案 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编码的。