Nlp 如何在我自己的语料库上训练手套算法
我试着跟着Nlp 如何在我自己的语料库上训练手套算法,nlp,stanford-nlp,gensim,word2vec,glove,Nlp,Stanford Nlp,Gensim,Word2vec,Glove,我试着跟着 但有些人认为我浪费了很多时间,结果却一无所获。 我只想在我自己的语料库(~900Mb corpus.txt文件)上训练一个globe模型。 我下载了上面链接中提供的文件,并使用cygwin对其进行编译(编辑demo.sh文件并将其更改为VOCAB_file=corpus.txt。我是否应该保持corpus=text8不变?) 结果是: cooccurrence.bin 共现 文本8 语料库.txt vectors.txt 如何使用这些文件将其作为python上的手套模型加载?您的语料
但有些人认为我浪费了很多时间,结果却一无所获。
我只想在我自己的语料库(~900Mb corpus.txt文件)上训练一个
globe
模型。
我下载了上面链接中提供的文件,并使用cygwin
对其进行编译(编辑demo.sh文件并将其更改为VOCAB_file=corpus.txt
。我是否应该保持corpus=text8
不变?)
结果是:
如何使用这些文件将其作为python上的
手套模型加载?您的语料库应该转到变量语料库。vectors.txt是输出,它被认为是有用的。您可以在python中训练Glove,但这需要更多的时间,并且需要C编译环境。我以前试过,不推荐 以下是我对此的看法:
克隆存储库后,编辑demo.sh文件,因为您必须使用自己的语料库对其进行训练,将语料库名称替换为文件名
然后删除MAKE和CORPUS之间的脚本,因为这是为了为您下载示例语料库
然后运行make
,它将在build文件夹中形成四个文件
现在运行/demo.sh
,它将在您自己的语料库上训练并完成脚本中提到的所有内容,输出将生成vectors.txt文件
注意:不要忘记将语料库文件直接保存在手套文件夹中。这就是运行模型的方式
$ git clone http://github.com/stanfordnlp/glove
$ cd glove && make
要在您自己的语料库中训练它,您只需更改一个文件,即demo.sh
在“make”之后从if到fi删除脚本。
将语料库名称替换为文件名“CORPUS.txt”
在文件“demo.sh”的末尾有另一个if循环
if [ "$CORPUS" = 'text8' ]; then
将text8替换为您的文件名
更改完成后,运行demo.sh
$ ./demo.sh
确保语料库文件的格式正确。您需要将语料库准备为一个文本文件,其中所有单词由一个或多个空格或制表符分隔。如果您的语料库有多个文档,则文档(仅)应以新行字符分隔
您可以使用手套库执行此操作:
安装它:pip安装gloot\u python
然后:
参考资料:我否决了这个答案,因为它没有详细说明为什么不建议使用Python,或者是否有Python更可取的特定用例。我认为,根据语料库的大小、用户与Python的协作级别等,有很好的理由朝这两个方向发展。在Windows 10和Linux Mint 19.3上,必须使用pip install glove==1.0.0。尝试安装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')