我试着用隐写符拼写检查每一个条目,在一个名为“宠物在熊猫”的专栏中,“数据”被称为“房子”。
import enchant
dict = enchant.Dict("en_US")
for pets in house:
[pets] = dict.suggest([pets])[0]当我运行这段代码时,我会发现一个错误,就是没有将字节串传递给Pyenchant。不知道该怎么做。全文如下:
文件"myfile",第20行,在pets = "/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/site-packages/enchant/init.py",(Pets)文件第662行中,在建议word = self._StringClass(word)文件"/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/site-packages/enchant/utils.py",第152行中在新的引发错误(“不要将字节串传递给紧缩者”) enchant.errors.Error:不要将字节串传递给紧缩者
我怎么才能解决这个问题?谢谢。
发布于 2016-09-15 01:43:58
如果数据文件包含字节字符串,则需要在将它们传递给enchant之前对它们进行解码;您可以使用.str.decode('utf-8')来完成这一任务。然后,要应用您的函数,最干净的处理这种情况的方法通常是跨系列使用map,而不是迭代。(还不应该隐藏关键字dict):
checker = enchant.Dict("en_US")
house = pd.Series([b'caat', b'dogg'])
#decode the bytestrings
house = house.str.decode('utf-8')
#map the spell checker
house.map(lambda x: checker.suggest(x)[0])
# Out[19]:
# 0 cat
# 1 dog
# dtype: objecthttps://stackoverflow.com/questions/39500899
复制相似问题