windows+python3.6下安装fasttext+fasttext在win上的使用+gensim(fasttext)

偶尔善良 提交于 2020-04-25 16:01:36

转自:windows+python3.6下安装fasttext+fasttext在win上的使用+gensim(fasttext)

 

真是坑了好久,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),系统提示没有这个模型,其实应该这样子调用,注意!注意!!注意!!!

调用示例:

1
2
import  fastText.FastText as ff
classifier  =  ff.train_supervised( "data/try_fasttext_train.txt" )

就可以看到

想要存下 model 或 用来预测 等

1
2
3
4
model  =  classifier.save_model( 'data/try.model' # 保存模型
test  =  classifier.test( 'data/try_fasttext_test.txt' # 输出测试结果
classifier.get_labels()  # 输出标签
pre  =  classifier.predict( '文本' #输出改文本的预测结

对比调用 fasttext 包的命令,调用方式是不一样的,小伙伴要注意了。

1
2
3
4
5
6
7
8
9
10
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

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!