今天在办公室终于把wordcloud项目的前半部分,即数据准备部分。
调用了熟悉的pymysql,正则re库分解单条的聊天记录,具体过程略去不表。
着重记录一下遇到的坑以及解决办法。
- emoji表情的编码问题
在处理文本的过程中再次遇到了让人头疼的编码问题——Python报出了UnicodeDecodeError问题,似乎之前就遇到过一次。
但是我并没有实际地解决它们,毕竟漏掉少量样本不影响最终结果,于是乎我就使用异常处理pass掉了所有的UnicodeDecodeError,然后就正常地遍历了一遍,十分理想。 - 自己作死致使wordcloud库无法正常import
在导入WordCloud这个Module的时候总是找不到,后来百思不得其解的时候看了一个知乎回答——“最后我发现我的测试文档命名为‘wordcloud.py’”,突然醒悟,真是zz一般。 - 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库没装对,重新装了一遍,就变好了,接着进入下一个坑。 - 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,把源码复制下来,保存,居然成功了! - 缺少字体文件问题
大概就是缺少一个.ttf的字体文件,随便下了一个放在了对应目录,因为有需要中文字库。然后就真的跑了出来,完美!
慢慢补,总之从一个个坑中跳出来是很困难的,但是最终test.py正确运行不报错时的感觉实在是太爽了。