真是坑了好久,faxttext对win并不是很友好,所以遇到了很多坑,记录下来,以供大家少走弯路。
法1:刚开始直接用pip install fasttext,最后一直报下面这个错误
“error:Microsoft Visual C++ 14.0 is required. Get it with "Microsoft Visual C++ Build Tools": http://landinghub.visualstudio.com/visual-cpp-build-tools”,然后我按着链接去找,已经没有了,最后只好在网上其他博客找到链接,根据stackoverflow上的帮助下载Visual Studio Community 2017安装,然而。。。。。
上面是别人的方法:先去安装vs2017+fasttext安装包,别人的步骤(https://blog.csdn.net/m0_37870649/article/details/80935307)
一、点击下载 source code(zip) 文件
二、解压后在该文件下打开 cmd, 输入pip setup.py install
上面这种方法我试了,然后,出现了系统提示没有setup.py model,所以我又查了这个错误,然后最后用了这两步(我觉得其他出现类似问题都可以如此)
- 先下载你要安装的包,并解压到磁盘下;
- 进入到该文件的setup.py 目录下,打开cmd,并切换到该目录下;
- 先执行 python setup.py build
- 然后执行 python setup.py install
执行是成功了,可是又回到了最开始的问题,还是提示
“error:Microsoft Visual C++ 14.0 is required. Get it with "Microsoft Visual C++ Build Tools": http://landinghub.visualstudio.com/visual-cpp-build-tools”
【不知为何,上面这些步骤别人安装成功了,我却没有,不知道为啥!!!!】
法2 :也就是本文时用的方法:参考博客https://blog.csdn.net/qq_17814041/article/details/80041189
首先去python的各种第三方安装包:https://www.lfd.uci.edu/~gohlke/pythonlibs/#fasttext找到适合自己版本的.whl文件,然后下载安装,具体可参考上面的博客链接。
我这里要强调的是:!!!!!!!按照上面的安装也确实安装成功了,但是我并不能像作者那样子调用,(直接import fasttext),系统提示没有这个模型,其实应该这样子调用,注意!注意!!注意!!!
调用示例:
import fastText.FastText as ff
classifier = ff.train_supervised("data/try_fasttext_train.txt")
就可以看到
想要存下 model 或 用来预测 等
model = classifier.save_model('data/try.model') # 保存模型
test = classifier.test('data/try_fasttext_test.txt') # 输出测试结果
classifier.get_labels() # 输出标签
pre = classifier.predict('文本') #输出改文本的预测结
对比调用 fasttext 包的命令,调用方式是不一样的,小伙伴要注意了。
import fasttext
#训练模型
classifier = fasttext.supervised("data/try_fasttext_train.txt","data/try_fasttext.model",label_prefix="__label__")
#load训练好的模型
#classifier = fasttext.load_model('data/try_fasttext.model.bin', label_prefix='__label__')
result = classifier.test("data/try_fasttext_test.txt")
print(result.precision)
print(result.recall)
这样就okay啦!!!
法3:费了好大劲,才发现原来gensim.models上就可以调用fasttext!!!(本人已有,如果有gensim的话,小伙伴就会省很多力气了)
具体使用详情可以参考gensim官网使用手册,介绍的很详细:https://radimrehurek.com/gensim/models/fasttext.html