fastText、およびそれをテキスト分析に使用する方法は?

私たちはすべてフェイスブックを使用しています。投稿を行ったときに、すべての経験を積んでいる必要があります。フェイスブックは、そのことと正確に関連する広告を表示し始めます。

たとえば、Facebookの投稿を作成して仕事を辞めて新しいベンチャーを始めようとすると、突然Facebookが次のような広告を表示し始めます。

それでは、facebookは何を表示するのかを正確にどのように知っていますか?

NLPライブラリfastTextの魔法です。

FastTextは、Facebookによって最近オープンソース化されたオープンソースの無料の軽量ライブラリです。FastTextは、単語表現と文分類を効率的に学習するためにFacebook Research Teamによって作成されたライブラリです。

このライブラリは、さまざまなNLPドメインで優れた最新の結果を示しているため、NLPコミュニティで多くの注目を集めています。

それを使用する方法?

この記事では、テキスト分類にどのように使用するかを説明します。

ステップ1:データを正しい形式で配置する

fastTextがデータを所定の正しい形式で保持することは非常に重要です。

フォーマット:

_label_0 your_text

ここでは、「_ label_」をそのまま使用する必要があります。

「0」はラベルを示します(その特定の行のラベル列の値)

「your_text」は、分類子をトレーニングするテキストです。

上記のコードでは、データフレームの書き込みと書き込みのために新しいファイル「train.txt」を開く方法を示しました。

ステップ2:リポジトリの複製

次に、関数を使用するには、fastTextリポジトリをノートブックに複製する必要があります。

リポジトリID:https://github.com/facebookresearch/fastText.git

クローンを作成したら、次の手順に従います。

「train.txt」ファイルがレポのクローンを作成して作成されたfastTextフォルダー内にあることを確認してください。

ステップ3:コマンドをいじる

これでモデルをトレーニングする準備ができました。次のコマンドを実行して分類器をトレーニングします。

./fasttext supervised -input train.txt -output

-label __label__ -lr 0.1 -epoch 40

次の引数は必須です。

  • -inputトレーニングファイルのパス
  • -output出力ファイルのパス

これらのパラメーターをいじってモデルを微調整することができます(引数を使用する前にダッシュ(-)を使用してください)

ダッシュなしで引数を提供しました!

使用法:

次の引数はオプションです。

  • -詳細レベル[2]

辞書の次の引数はオプションです。

  • -minCount単語出現の最小数[1]
  • -minCountLabelラベルオカレンスの最小数[0]
  • -wordNgramsワードngramの最大長[2]
  • -バケットのバケット数[2000000]
  • -minn char ngramの最小長[0]
  • -maxn char ngram [0]の最大長
  • -tサンプリングしきい値[0.0001]
  • -label labels prefix [__label__]

トレーニングの次の引数はオプションです。

  • -lr学習率[0.1]
  • -lrUpdateRateは、学習率[100]の更新率を変更します
  • -dimベクトルのワードベクトル[100]
  • -wsコンテキストウィンドウのサイズ[5]
  • -エポックのエポック数[40]
  • -negサンプリングされたネガの数[5]
  • -損失関数{ns、hs、softmax、one-vs-all} [softmax]
  • -threadスレッドの数[12]
  • -pretrainedVectors教師あり学習用の事前学習済み単語ベクトル[]
  • -saveOutput出力パラメーターを保存するかどうか[false]

量子化の次の引数はオプションです。

  • 保持する単語とngramのカットオフ数[0]
  • -カットオフが適用される場合、埋め込みが微調整されるかどうかを再訓練します[true]
  • -qnormノルムが個別に量子化されるかどうか[false]
  • -qout分類子が量子化されるかどうか[false]
  • -dsub各サブベクトルのサイズ[2]

ステップ4:保存されたモデルを使用した予測

次のコマンドは、事前に注釈が付けられたテストデータセットでモデルをテストし、元のラベルと予測ラベルを比較し、精度とリコール値の形式で評価スコアを生成します。

精度は、fastTextによって予測されたラベルの中の正しいラベルの数です。リコールは、正常に予測されたラベルの数です。

./fasttext test <モデルへのパス> <テストファイルへのパス> k

テストファイルもトレインファイルと同じ形式であることを確認してください。

新しいラベルを予測するには:

./fasttext predict <モデルへのパス> <テストファイルへのパス> k> <予測ファイルへのパス>

kは、モデルが各レビューの上位kラベルを予測することを意味します。

上記のレビューで予測されるラベルは次のとおりです。

__label__2
__label__1
__label__2
__label__2
__label__2
__label__2
__label__2
__label__2
__label__1
__label__2
__label__2

予測ファイルは、さらに詳細な分析と視覚化の目的に使用できます。

fastTextは、今後の記事で取り上げる単語表現など、他の分野でも素晴らしい結果を示しています。

この記事を読んでくれてありがとう。