5
11

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

WindowsでfastTextをインストールした備忘

Last updated at Posted at 2018-02-21

WindowsでfastTextをインストールした備忘

  • 2019/11/20 内容があまりに雑だったのでちょっと修正しました

fastTextとは

  • facebookが発表した自然言語向けの機械学習ライブラリです
    • 単語をベクトル化するモデルを作成します
      • 単語を「単語の意味」を示すようなベクトル値に変換できます
    • 学習の文章を単語レベルで分割(分かち書き)し、近くに出現した単語は近くなるように学習します
    • 単語をベクトル化することで、単語同士の距離を測定したり単語の演算ができたりします
      • 例えば女性 + 王様 - 男性 なんていう計算ができたりする
    • 単語内で文字ngram分割をかけることで、活用形を考慮することもできます
      • subwordsという考え方です
      • 「going」という単語を学習すると、その単語を構成している「go」も同じように学習してくれる感じ
      • 結果的にgoとgoing,goedみたいな活用形は同じ単語ベクトルになる(関連性がある)という感じになります

環境

  • Windows7(後でWin10環境でもやりました)

fastTextを動かすために必要なもの

  • c++のコンパイル環境
    • fastTextのソースをコンパイルするため、c++11のコンパイル環境が必要になります
    • コンパイルしたexeを実行する環境も同じです
  • Pythonで動かす場合
    • 公式でPythonから動かすライブラリも提供されています
    • 必要なもの
      • c++11コンパイル環境
      • Python(バージョン2.7または≥3.4)
      • NumPy
      • SciPy
      • pybind11

インストールしたもの

  • c++コンパイル環境
    • Cygwin(msys2でもよい)
    • Cygwinのパッケージでmake、g++
  • Python
    • Python3.6
  • 分かち書き用

手順

1. fastTextをコンパイルする

fastTextをクローンしてコンパイルする

$ git clone https://github.com/facebookresearch/fastText.git
$ cd fastText
$ make

ここでthreadのエラーがでたらc++のコンパイラが古い可能性があります

2. Pythonライブラリをインストールする

  • cloneしたfastTextで以下を実行
pip install .

ここで

C2039: 'to_string': 'std' のメンバーではありません

というエラーがでた場合、src/productquantizer.ccを直接編集して

#include<string>

を足すといける。
issuesにあがっていた

fastTextを動かすために

  • 実際にfastTextを動かすときには以下の作業が必要になります
    • 教育用データの作成
    • モデルの作成(supervised)
    • 検証(test)

このあたりは気が向いたら記事でも書くかもしれない。。。

5
11
2

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
11

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?