私はフォローしようとしました これ
しかし、私が多くの時間を無駄にして、役に立たないものになってしまったこともあります。
私は自分のコーパス(〜900Mb corpus.txtファイル)でGloVe
モデルをトレーニングしたいだけです。上記のリンクで提供されているファイルをダウンロードし、cygwin
を使用してコンパイルしました(demo.shファイルを編集してVOCAB_FILE=corpus.txt
に変更した後、CORPUS=text8
を変更しないでください?)出力だった:
これらのファイルを使用して、PythonでGloVe
モデルとしてロードするにはどうすればよいですか?
コーパスは変数CORPUSに移動する必要があります。 vectors.txtは出力であり、役立つと思われます。 PythonでGloveをトレーニングできますが、時間がかかり、Cコンパイル環境が必要です。以前試してみましたが、お勧めしません。
これが私の見解です::
make
を実行すると、ビルドフォルダーに4つのファイルが作成されます。./demo.sh
を実行します。これにより、スクリプトで言及されているすべての処理が独自のコーパスでトレーニングおよび実行され、出力がvectors.txtファイルとして生成されます。注:コーパスファイルをGloveフォルダーに直接保存することを忘れないでください。
これがモデルの実行方法です
$ git clone http://github.com/stanfordnlp/glove
$ cd glove && make
独自のコーパスでそれをトレーニングするには、1つのファイル(demo.sh)に変更を加えるだけです。
Makeの後にif to fiからスクリプトを削除します。 CORPUS名をファイル名「corpus.txt」に置き換えますファイル「demo.sh」の最後に別のifループがあります
if [ "$CORPUS" = 'text8' ]; then
Text8をファイル名に置き換えます。
変更を加えたら、demo.shを実行します。
$ ./demo.sh
コーパスファイルの形式が正しいことを確認してください。コーパスをすべての単語を1つ以上のスペースまたはタブで区切った単一のテキストファイルとして準備する必要があります。コーパスに複数のドキュメントがある場合、ドキュメント(のみ)は改行文字で区切る必要があります。
GloVeライブラリを使用してそれを行うことができます:
インストール:pip install glove_python
次に:
from glove import Corpus, Glove
#Creating a corpus object
corpus = Corpus()
#Training the corpus to generate the co occurence matrix which is used in GloVe
corpus.fit(lines, window=10)
glove = Glove(no_components=5, learning_rate=0.05)
glove.fit(corpus.matrix, epochs=30, no_threads=4, verbose=True)
glove.add_dictionary(corpus.dictionary)
glove.save('glove.model')
参照: 手袋を使用した単語のベクトル化