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
不变?) 结果是:

  • cooccurrence.bin
  • 共现
  • 文本8
  • 语料库.txt
  • vectors.txt

  • 如何使用这些文件将其作为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')