我想使用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?
答案 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)