2

我想使用带有 text2vec 的预训练模型。我的理解是,这里的好处是这些模型已经在大量数据上进行了训练,例如Google News Model

阅读 text2vec文档,看起来入门代码读取文本数据,然后用它训练模型:

library(text2vec)
text8_file = "~/text8"
if (!file.exists(text8_file)) {
  download.file("http://mattmahoney.net/dc/text8.zip", "~/text8.zip")
  unzip ("~/text8.zip", files = "text8", exdir = "~/")
}
wiki = readLines(text8_file, n = 1, warn = FALSE)

然后文档继续展示如何创建令牌和词汇:

# Create iterator over tokens
tokens <- space_tokenizer(wiki)
# Create vocabulary. Terms will be unigrams (simple words).
it = itoken(tokens, progressbar = FALSE)
vocab <- create_vocabulary(it)
vocab <- prune_vocabulary(vocab, term_count_min = 5L)
# Use our filtered vocabulary
vectorizer <- vocab_vectorizer(vocab)
# use window of 5 for context words
tcm <- create_tcm(it, vectorizer, skip_grams_window = 5L)

然后,这看起来像是拟合模型的步骤:

glove = GlobalVectors$new(word_vectors_size = 50, vocabulary = vocab, x_max = 10)
glove$fit(tcm, n_iter = 20)

我的问题是,众所周知的 Google 预训练 word2vec 模型是否可以在这里使用,而无需依靠我自己的词汇或我自己的本地设备来训练模型?如果是,我怎么能读入它并在 r 中使用它?

我想我在这里误解或遗漏了什么?我可以使用 text2vec 来完成这项任务吗?

4

2 回答 2

2

目前text2vec不提供任何下载/操作预训练词嵌入的功能。我有一份草稿,可以将此类实用程序添加到下一个版本中。

但另一方面,您只需使用标准 R 工具即可轻松手动完成。例如,这里是如何读取fasttext向量:

con = url("https://s3-us-west-1.amazonaws.com/fasttext-vectors/word-vectors-v2/cc.af.300.vec.gz", "r")
con = gzcon(con)
wv = readLines(con, n = 10)

然后你只需要解析它 -strsplit并且rbind是你的朋友。

于 2018-05-28T17:52:13.990 回答
1

这有点晚了,但其他用户可能会感兴趣。Taylor Van Anne 提供了一个小教程,如何在此处使用带有 text2vec 的预训练 GloVe 矢量模型: https ://gist.github.com/tjvananne/8b0e7df7dcad414e8e6d5bf3947439a9

于 2019-09-17T18:33:15.157 回答