分类算法(二)—— FastText

原理介绍

    fasttext是facebook开源的一个词向量与文本分类工具,在2016年开源,典型应用场景是“带监督的文本分类问题”。提供简单而高效的文本分类和表征学习的方法,性能比肩深度学习而且速度更快。

    fastText的架构和word2vec中的CBOW的架构类似,因为它们的作者都是Facebook的科学家Tomas Mikolov,而且确实fastText也算是words2vec所衍生出来的。

    具体原理不细讲了,可以参考后面的链接。

安装   

重点说问题,上代码。

    fasttext适用于linux环境下,pip install fasttext生成的model.bin文件在调用时,结果会是nan    

解决方法    

   1. 下载source code(zip)文件:https://github.com/xiamx/fastText/releases

  2. 到下载的路径下,pip install XXXX.zip

代码示例

训练数据和测试数据来自网盘:

https://pan.baidu.com/s/1jH7wyOY

https://pan.baidu.com/s/1slGlPgx

import fastText.FastText as ff
classifier = ff.train_supervised(r"news_fasttext_train.txt")
model = classifier.save_model(r'fasttext1.model') # 保存模型
classifier = ff.load_model(r'fasttext1.model') # 加载保存的模型
test = classifier.test(r"news_fasttext_test.txt") # 输出测试结果
classifier.get_labels() # 输出标签
pre = classifier.predict('快讯 : 美国 4 月 营建 开支 环比 增 0.4 % 好于 预期   欢迎 发表 评论     我要 评论  ') #输出改文本的预测结果
print(pre)

这里不得不说还有一个坑,训练数据和测试数据的路径不能有中文。。。不知道什么鬼,几年前也曾经遇到过这种问题,但是近来没发现中文报啥错,可能是sklearn TensorFlow什么的有专门的处理,总之,这里中文路径很痛苦。。

参考链接:

https://blog.csdn.net/john_bh/article/details/79268850

https://blog.csdn.net/grafx/article/details/78697881

https://blog.csdn.net/yick_liao/article/details/62222153

https://blog.csdn.net/sinat_26917383/article/details/54850933

https://blog.csdn.net/lxg0807/article/details/52960072


你可能感兴趣的:(机器学习,分类算法)