24

我试图遵循这一点。
但是有些我浪费了很多时间却没有任何用处。
我只想GloVe在我自己的语料库(~900Mb corpus.txt 文件)上训练一个模型。我下载了上面链接中提供的文件并使用cygwin(编辑 demo.sh 文件并将其更改为VOCAB_FILE=corpus.txt. 我应该CORPUS=text8保持不变吗?)对其进行编译,输出为:

  1. cooccurrence.bin
  2. cooccurrence.shuf.bin
  3. 文本8
  4. 语料库.txt
  5. 矢量.txt

如何使用这些文件将其作为GloVe模型加载到 python 上?

4

4 回答 4

19

您可以使用 GloVe 库来做到这一点:

安装它:pip install glove_python

然后:

from glove import Corpus, Glove

#Creating a corpus object
corpus = Corpus() 

#Training the corpus to generate the co-occurrence 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')

参考:使用glove的词向量化

于 2019-06-25T07:36:36.973 回答
12

这就是你运行模型的方式

$ git clone http://github.com/stanfordnlp/glove
$ cd glove && make

要在您自己的语料库上训练它,您只需更改一个文件,即 demo.sh。

在“make”之后从 if 到 fi 中删除脚本。用您的文件名“corpus.txt”替换 CORPUS 名称文件“demo.sh”末尾还有另一个 if 循环

if [ "$CORPUS" = 'text8' ]; then

将 text8 替换为您的文件名。

进行更改后运行 demo.sh。

$ ./demo.sh

确保您的语料库文件格式正确。您需要将语料库准备为单个文本文件,所有单词由一个或多个空格或制表符分隔。如果您的语料库有多个文档,则文档(仅)应由换行符分隔。

于 2019-02-07T05:52:38.813 回答
3

您的语料库应该转到变量 CORPUS。vector.txt 是输出,应该很有用。你可以在python中训练Glove,但是需要更多的时间并且你需要有C编译环境。我以前试过,不推荐。

于 2018-03-01T21:41:35.823 回答
2

这是我对此的看法::

  1. 克隆存储库后,编辑 demo.sh 文件,因为您必须使用自己的语料库对其进行训练,将 CORPUS 名称替换为文件名。
  2. 然后删除 MAKE 和 CORPUS 之间的脚本,因为这是为您下载示例语料库。
  3. 然后运行make它将在构建文件夹中形成四个文件。
  4. 现在运行./demo.sh它将在您自己的语料库上训练并执行脚本中提到的所有内容,并且输出将生成为vectors.txt 文件。

注意:不要忘记将您的语料库文件直接保存在 Glove 文件夹中。

于 2018-07-13T06:10:27.133 回答