真是坑了好久,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