這裡記錄使用fasttext訓練word vector筆記
$ gitclone
$ cdfasttext
$ make
make報錯:
原因gcc版本過低
gcc –v
公升級版本:參考(
1. 新增源
首先新增ppa到庫:
sudo add-apt-repository ppa:ubuntu-toolchain-r/test
sudo apt-get update
2. 安裝新版gcc/g++(注意gcc和g++都要更新)
接著就可以選擇安裝gcc-4.9,gcc-5之類的啦!(注意目前gcc-5實際上是5.3.0,沒有5.1或5.2可供選擇)
sudo apt-get install gcc-4.8g++-4.8
sudo apt-get install gcc-4.9g++-4.9
sudo apt-get install gcc-5g++-5
sudo apt-get install gcc-6g++-6
具體希望安裝哪個版本,大家可以自己選擇
3. 重新整理db並locate
接著現在可以考慮重新整理一下, 否則locate等命令是找不到的, 這個也是可選的(非必須)
sudo updatedb && sudo ldconfig
locate gcc | grep -e "/usr/bin/gcc-[0-9]"
4. 切換版本
通過update-alternatives建立檔案關聯
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-4.620
sudo update-alternatives --install /usr/bin/gcc gcc/usr/bin/gcc-4.8 30
然後在fasttext資料夾下make,成功生成fasttext執行檔案。
接下來就可以愉快的使用了。
fasttext可以可以用於訓練 word represent和text classification,這裡記錄使用fasttext訓練word embedding過程。
1. 首先開啟word-vector-example.s**件
resultdir=result //結果儲存資料夾
datadir=data //輸入資料資料夾
mkdir -p"$"
mkdir -p"$"
then
wget -c "$"
unzip "$/enwik9.zip" -d"$"
perl wikifil.pl "$/enwik9"> "$"/fil9
fithen
wget -c -p "$"
unzip "$/rw.zip" -d"$"
fimake
./fasttextskipgram -input "$"/fil9 -output"$"/fil9 -lr 0.025 -dim 100 \
-ws 5 -epoch 1 -mincount 5 -neg 5 -loss ns-bucket 2000000 \
-minn 3 -maxn 6 -thread 4 -t 1e-4-lrupdaterate 100
//這行**為訓練word embedding,輸入為datadir下的fil9,輸出模型儲存在resultdir下fil9。
這些引數是強制性設定的:
- mincount 5:單詞出現少於5就丟棄 -minn 最小長度的字元 -maxn 最長長度的字元 –t 取樣閾值
這些引數是可選的:
-lr 學習率–epoch 迭代次數–neg 負取樣–loss loss function ---dim 詞向量維度 –ws 視窗大小
cut -f1,2 "$"/rw/rw.txt | awk 『『 | tr 『\t『 『\n『> "$"/queries.txt
cat"$"/queries.txt | ./fasttext print-word-vectors "$"/fil9.bin> "$"/vectors.txt
python eval.py -m "$"/vectors.txt -d"$"/rw/rw.txt
2. 使用自己的語料訓練,這裡我使用維基百科英文語料,處理過程前面有講。
./fasttext cbow –input new_enwiki –output new_enwiki_100_30–epoch 30 –neg 5 –loss ns –dim 100 –ws 5
FastText模型原理
預備知識 n gram模型 對句子或單詞的所有長度為n的子句或子字串進行操作,如2 gram中,對 girl 的字串為 gi ir rl 進行操作,通常有操作如下 cbow模型 是把單詞的高維稀疏的one hot向量對映為低維稠密的表示的方法。模型架構如下 此處有圖 x c h 1c i 1cx i...
fasttext工作原理
fasttext 是facebook於2016年開源的乙個詞向量計算和文字分類工具,在文字分類任務中,fasttext 淺層網路 往往能取得和深度網路相媲美的精度,卻在訓練時間上比深度網路快許多數量級,在標準的多核cpu上,能夠訓練10億詞級別語料庫的詞向量在10分鐘之內,能夠分類有著30萬多類別的...
fasttext使用筆記
這裡記錄使用fasttext訓練word vector筆記 gitclone cdfasttext make make報錯 原因gcc版本過低 gcc v 公升級版本 參考 1.新增源 首先新增ppa到庫 sudo add apt repository ppa ubuntu toolchain r ...