モデル概要
モデル特徴
モデル能力
使用事例
🚀 fastText (言語識別)
fastTextは、オープンソースで無料の軽量ライブラリで、ユーザーがテキスト表現とテキスト分類器を学習できるようにします。標準的な汎用ハードウェアで動作し、後でモデルのサイズを縮小してモバイルデバイスにも搭載できます。このライブラリはこの論文で紹介され、公式ウェブサイトはこちらです。
このLID(言語識別)モデルは、入力テキストの言語を予測するために使用され、ホスト版 (lid218e
) は NLLBプロジェクトの一部としてリリース され、217の言語を検出できます。古いバージョン(157の言語を識別できるもの)は fastTextの公式ウェブサイト で見つけることができます。
🚀 クイックスタート
モデルの使用方法
与えられたテキストの言語を検出するためのこのモデルの使用方法は次の通りです。
>>> import fasttext
>>> from huggingface_hub import hf_hub_download
>>> model_path = hf_hub_download(repo_id="facebook/fasttext-language-identification", filename="model.bin")
>>> model = fasttext.load_model(model_path)
>>> model.predict("Hello, world!")
(('__label__eng_Latn',), array([0.81148803]))
>>> model.predict("Hello, world!", k=5)
(('__label__eng_Latn', '__label__vie_Latn', '__label__nld_Latn', '__label__pol_Latn', '__label__deu_Latn'),
array([0.61224753, 0.21323682, 0.09696738, 0.01359863, 0.01319415]))
✨ 主な機能
fastTextは、単語表現と文分類を効率的に学習するためのライブラリです。開発者、専門家、学生が簡単に使用できるように設計されています。テキスト分類と単語表現の学習に特化しており、特殊なハードウェアを必要とせずに迅速なモデルの反復と改良が可能です。fastTextモデルは、任意のマルチコアCPUで数十億単語以上を数分以内に学習できます。
このライブラリには、Wikipediaで学習された157以上の異なる言語の事前学習モデルが含まれています。fastTextは、コマンドラインとして使用することも、C++アプリケーションにリンクすることも、実験やプロトタイピングから本番運用までのユースケースにライブラリとして使用することもできます。
📦 インストール
このモデルを使用するには、fasttext
ライブラリと huggingface_hub
をインストールする必要があります。
pip install fasttext huggingface_hub
💻 使用例
基本的な使用法
与えられたテキストの言語を検出する方法は以下の通りです。
>>> import fasttext
>>> from huggingface_hub import hf_hub_download
>>> model_path = hf_hub_download(repo_id="facebook/fasttext-language-identification", filename="model.bin")
>>> model = fasttext.load_model(model_path)
>>> model.predict("Hello, world!")
(('__label__eng_Latn',), array([0.81148803]))
高度な使用法
複数の言語候補を取得するには、k
パラメータを使用します。
>>> model.predict("Hello, world!", k=5)
(('__label__eng_Latn', '__label__vie_Latn', '__label__nld_Latn', '__label__pol_Latn', '__label__deu_Latn'),
array([0.61224753, 0.21323682, 0.09696738, 0.01359863, 0.01319415]))
📚 ドキュメント
意図された使用目的と制限
事前学習された単語ベクトルをテキスト分類や言語識別に使用できます。興味のあるタスクを探すには、公式ウェブサイトの チュートリアル と リソース を参照してください。
制限事項とバイアス
このモデルに使用される学習データはかなり中立的であると特徴付けられる可能性がありますが、モデルの予測にはバイアスが含まれる可能性があります。
コサイン類似度を使用して、2つの異なる単語ベクトル間の類似度を測定できます。2つのベクトルが同一であれば、コサイン類似度は1になります。完全に無関係な2つのベクトルの場合、値は0になります。2つのベクトルが反対の関係にある場合、値は -1になります。
>>> import numpy as np
>>> def cosine_similarity(word1, word2):
>>> return np.dot(model[word1], model[word2]) / (np.linalg.norm(model[word1]) * np.linalg.norm(model[word2]))
>>> cosine_similarity("man", "boy")
0.061653383
>>> cosine_similarity("man", "ceo")
0.11989131
>>> cosine_similarity("woman", "ceo")
-0.08834904
学習データ
157の言語の事前学習単語ベクトルは、fastTextを使用して Common Crawl と Wikipedia で学習されました。これらのモデルは、位置重み付きのCBOWを使用して、次元300、文字n-gramの長さ5、ウィンドウサイズ5、ネガティブサンプリング数10で学習されました。また、フランス語、ヒンディー語、ポーランド語の3つの新しい単語類推データセットも配布しています。
学習手順
トークン化
中国語には Stanford word segmenter 、日本語には Mecab 、ベトナム語には UETsegmenter を使用しました。ラテン文字、キリル文字、ヘブライ文字、またはギリシャ文字を使用する言語には、Europarl の前処理ツールのトークナイザーを使用しました。その他の言語には、ICUトークナイザーを使用しました。
これらのモデルの学習に関する詳細情報は、論文 Learning Word Vectors for 157 Languages で見つけることができます。
評価データセット
論文で説明されている類推評価データセットは、以下の場所で入手できます。
BibTeXエントリと引用情報
単語表現の学習にこのコードを使用する場合は [1] を引用し、テキスト分類に使用する場合は [2] を引用してください。
[1] P. Bojanowski*, E. Grave*, A. Joulin, T. Mikolov, Enriching Word Vectors with Subword Information
@article{bojanowski2016enriching,
title={Enriching Word Vectors with Subword Information},
author={Bojanowski, Piotr and Grave, Edouard and Joulin, Armand and Mikolov, Tomas},
journal={arXiv preprint arXiv:1607.04606},
year={2016}
}
[2] A. Joulin, E. Grave, P. Bojanowski, T. Mikolov, Bag of Tricks for Efficient Text Classification
@article{joulin2016bag,
title={Bag of Tricks for Efficient Text Classification},
author={Joulin, Armand and Grave, Edouard and Bojanowski, Piotr and Mikolov, Tomas},
journal={arXiv preprint arXiv:1607.01759},
year={2016}
}
[3] A. Joulin, E. Grave, P. Bojanowski, M. Douze, H. Jégou, T. Mikolov, FastText.zip: Compressing text classification models
@article{joulin2016fasttext,
title={FastText.zip: Compressing text classification models},
author={Joulin, Armand and Grave, Edouard and Bojanowski, Piotr and Douze, Matthijs and J{'e}gou, H{'e}rve and Mikolov, Tomas},
journal={arXiv preprint arXiv:1612.03651},
year={2016}
}
これらの単語ベクトルを使用する場合は、次の論文を引用してください。
[4] E. Grave*, P. Bojanowski*, P. Gupta, A. Joulin, T. Mikolov, Learning Word Vectors for 157 Languages
@inproceedings{grave2018learning,
title={Learning Word Vectors for 157 Languages},
author={Grave, Edouard and Bojanowski, Piotr and Gupta, Prakhar and Joulin, Armand and Mikolov, Tomas},
booktitle={Proceedings of the International Conference on Language Resources and Evaluation (LREC 2018)},
year={2018}
}
(* これらの著者は同等の貢献をしています。)
🔧 技術詳細
fastTextは、単語表現と文分類を効率的に学習するためのライブラリです。このライブラリは、開発者、専門家、学生が簡単に使用できるように設計されています。テキスト分類と単語表現の学習に特化しており、特殊なハードウェアを必要とせずに迅速なモデルの反復と改良が可能です。fastTextモデルは、任意のマルチコアCPUで数十億単語以上を数分以内に学習できます。
📄 ライセンス
この言語識別モデルは、Creative Commons Attribution - NonCommercial 4.0 International Public License の下で配布されています。








