web-dev-qa-db-ja.com

自分のコーパスでGloVeアルゴリズムをトレーニングする方法

私はフォローしようとしました これ
しかし、私が多くの時間を無駄にして、役に立たないものになってしまったこともあります。
私は自分のコーパス(〜900Mb corpus.txtファイル)でGloVeモデルをトレーニングしたいだけです。上記のリンクで提供されているファイルをダウンロードし、cygwinを使用してコンパイルしました(demo.shファイルを編集してVOCAB_FILE=corpus.txtに変更した後、CORPUS=text8を変更しないでください?)出力だった:

  1. cooccurrence.bin
  2. cooccurrence.shuf.bin
  3. テキスト8
  4. corpus.txt
  5. vectors.txt

これらのファイルを使用して、PythonでGloVeモデルとしてロードするにはどうすればよいですか?

14
Codir

コーパスは変数CORPUSに移動する必要があります。 vectors.txtは出力であり、役立つと思われます。 PythonでGloveをトレーニングできますが、時間がかかり、Cコンパイル環境が必要です。以前試してみましたが、お勧めしません。

2
MLam

これが私の見解です::

  1. リポジトリのクローンを作成したら、独自のコーパスを使用してトレーニングする必要があるため、demo.shファイルを編集します。CORPUS名をファイルの名前に置き換えます。
  2. 次に、サンプルのコーパスをダウンロードするために、MAKEとCORPUSの間のスクリプトを削除します。
  3. 次にmakeを実行すると、ビルドフォルダーに4つのファイルが作成されます。
  4. 次に、./demo.shを実行します。これにより、スクリプトで言及されているすべての処理が独自のコーパスでトレーニングおよび実行され、出力がvectors.txtファイルとして生成されます。

:コーパスファイルをGloveフォルダーに直接保存することを忘れないでください。

2
Akash Kandpal

これがモデルの実行方法です

$ 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つ以上のスペースまたはタブで区切った単一のテキストファイルとして準備する必要があります。コーパスに複数のドキュメントがある場合、ドキュメント(のみ)は改行文字で区切る必要があります。

2
Palak

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')

参照: 手袋を使用した単語のベクトル化

2
Ghanem