一直在关注文本分类的动态,直到最近找到了应用场景才开始真正动手。AI很火,但是泡沫终将远去,在AI技术成本昂贵的今天,我们的投资在多年后能留下多少一定是技术本身带来的商业价值。
方案的选择
还是老规矩,先上方案选型。路很多,正确的选择一条适合自己的路其实比怎么做更重要。少走弯路,结合长期运营布局。
文本分类的方法很多,SVM, TextCNN, IDF和本文的FastText ,之所以选择了FastText是有现成的代码测试了一下效果,发现速度很快,处理几万条文本几乎不占CPU。
考虑到SVM太基础,可能无法应对复杂的语料环境。
IDF可能也可以,只是没能来得及试验。
TextCNN涉及到Tensorflow或者PyTorch等神经网络高计算量工具,作为最后的选择。
关键经验
- 其实按照fasttext官网一步步走下来就很顺利。
- 计算平台目前只有linux和mac, 我用centos7 都是直接make安装,不到10分钟装好。虚机上也能非常快。
- 语料的准备是重中之重,不论采用哪种方式进行文本分类,都需要训练集和测试集。我是手工准备了1万条记录作为标准语料。后续会进入自我学习的循环,依靠用户体验,不断更新语料的正确分类,作为训练的输入。语料一定要做常规的处理:尽可能裁剪掉不必要的信息,添加自定义分词词典,去掉自定义的停用词。
- 调优的工作能达到不错的效果,其实调优就是调整下参数,最简单的一步。如果计算速度快,调优也很快。