Warning: Illegal string offset 'top' in /www/wwwroot/_new/defjia/wp-content/themes/Snape/single.php on line 45

今天在办公室终于把wordcloud项目的前半部分,即数据准备部分。

调用了熟悉的pymysql,正则re库分解单条的聊天记录,具体过程略去不表。

着重记录一下遇到的坑以及解决办法。

  1. emoji表情的编码问题
    在处理文本的过程中再次遇到了让人头疼的编码问题——Python报出了UnicodeDecodeError问题,似乎之前就遇到过一次。
    但是我并没有实际地解决它们,毕竟漏掉少量样本不影响最终结果,于是乎我就使用异常处理pass掉了所有的UnicodeDecodeError,然后就正常地遍历了一遍,十分理想。
  2. 自己作死致使wordcloud库无法正常import
    在导入WordCloud这个Module的时候总是找不到,后来百思不得其解的时候看了一个知乎回答——“最后我发现我的测试文档命名为‘wordcloud.py’”,突然醒悟,真是zz一般。
  3. Pillow库的错误引发的异常
    from . import _imaging as core
    ImportError: DLL load failed: 找不到指定的程序。
    raise ImportError("The _imaging extension was built for another "
    ImportError: The _imaging extension was built for another version of Pillow or PIL

    然后能导入WordCloud了,接着又出现了以上的问题,大概是Pillow库没装对,重新装了一遍,就变好了,接着进入下一个坑。
  4. color_from_image.py丢失问题
    from .color_from_image import ImageColorGenerator
    ModuleNotFoundError: No module named 'wordcloud.color_from_image'

    在Google和Baidu搜了半天,有类似的问题但都没有很好解决我的错误,在Github的issues专栏看到几乎每一个wordcloud的问题Amueller(似乎是写wordcloud的人)都有很认真的回答,虽然并没有解决我的问题。后来就当我准备放弃的时候我找到packages-site这个文件夹找到wordcloud库所在位置,对照了一下Amueller的Github——word_cloud/color_from_image.py at master · amueller/word_cloud,发现确实少了color_from_image.py,把源码复制下来,保存,居然成功了!
  5. 缺少字体文件问题
    大概就是缺少一个.ttf的字体文件,随便下了一个放在了对应目录,因为有需要中文字库。然后就真的跑了出来,完美!

慢慢补,总之从一个个坑中跳出来是很困难的,但是最终test.py正确运行不报错时的感觉实在是太爽了。


Warning: Illegal string offset 'footer' in /www/wwwroot/_new/defjia/wp-content/themes/Snape/single.php on line 49