【问题标题】:python simhash doesn't work on ubuntupython simhash 在 ubuntu 上不起作用
【发布时间】:2014-06-05 23:19:12
【问题描述】:

我在 mac 上有相同的设置和代码来运行 simhash,它可以工作。

但是当我在 Ubuntu 上运行它时,它抱怨 simhash 的实现本身存在错误。

你遇到过这样的问题吗?

objs = [(str(k), Simhash(v)) for k, v in index_data.items()] 文件“/usr/local/lib/python2.7/dist-packages/simhash-1.1.2-py2.7.egg/simhash/init.py”,第 30 行,在 初始化 self.build_by_text(unicode(值)) UnicodeDecodeError:“ascii”编解码器无法解码位置 34 中的字节 0xf6:序数不在范围内(128)

【问题讨论】:

  • Ubuntu 刚刚发布了一个新的 LTS - 你在那个版本上吗?将此问题移至 askubuntu.com 可能会更好

标签: python ubuntu simhash


【解决方案1】:

错误告诉您,str(k) 无法正确解码。由于我不知道数据来自哪里以及它实际上是什么,我只能说类似

str(k).decode('cp850')


Simhash(v.decode('cp850'))

可能会有所帮助。假设字符串在 cp850 中。至少我可以做一个'\xf6'.decode('cp850')

由于这似乎是模块内的问题,请检查使用的字符串是否事先正确解码。

【讨论】:

  • 我不知道问题到底出在哪里,但回溯告诉我们,这是一个编码错误。该字符串具有它的编码(UTF-8、cp850 等),而 Simhash 没有很好地处理它。因此,如果可能,字符串必须在 Simhashing 之前转换为 unicode。
猜你喜欢
  • 1970-01-01
  • 2018-06-08
  • 2013-12-28
  • 2018-08-25
  • 2018-02-25
  • 1970-01-01
  • 2012-10-09
  • 2010-12-27
  • 1970-01-01
相关资源
最近更新 更多