如何在R的wordVectors包中使用word2phrase函数获取ngrams?

时间:2017-03-25 06:28:02

标签: r word2vec

我想使用wordVectors包中的word2phrase()函数生成一些ngram,以便使用train_word2vec()进行后续训练。

library(wordVectors)
word2phrase(train_file="txt.csv", output_file="ngrams.txt", min_count=10, threshold=50, force=TRUE)

我第一次运行它时,收到以下输出消息:

Vocab size (unigrams + bigrams): 20868
Words in train file: 193569

第二次运行它时,我得到以下输出消息:

Vocab size (unigrams + bigrams): 20868
Words in train file: 258092

所以每次我运行它时,“火车文件中的单词”不断增加,而“Vocab size”保持不变。但是当我检查输出文件“ngrams.txt”时,没有什么真正改变:我在文件中只有1克和2克。如何在“ngrams.txt”中存储n-gram?

1 个答案:

答案 0 :(得分:0)

要计算n元语法,您需要连续两次运行word2phrase n-1次。

第一次运行后,您的词汇表为1克和2克。从第一次运行的输出开始,第二次运行可以从上一个词汇表中的单词中创建2克,因此您可以创建3克(甚至4克,我猜它是否会创建2双向的二元语法,克)。

非常感谢,它已经在函数prep_word2vec中实现。

您可以简单地运行:

library("wordVectors")

max_n_grams <- 4

prep_word2vec("txt.csv", "ngrams.txt", bundle_ngrams = max_n_grams, 
              min_count=10, threshold=50, force=TRUE)