text2vec パッケージの vignette に基づいて、単語の埋め込みを作成する例が提供されています。wiki データがトークン化され、パッケージで提供されるグローブ関数を使用して単語の埋め込みを作成するために使用される用語共起行列 (TCM) が作成されます。パッケージで提供される映画レビュー データの単語埋め込みを構築したいと考えています。私の質問は:
- すべての映画レビューを 1 つの長い文字列にまとめてからトークン化する必要がありますか?
これにより、2 つのレビュー間の境界トークンが同時に発生し、意味がありません。
**vignettes code:**
library(text2vec)
library(readr)
temp <- tempfile()
download.file('http://mattmahoney.net/dc/text8.zip', temp)
wiki <- read_lines(unz(temp, "text8"))
unlink(temp)
# Create iterator over tokens
tokens <- strsplit(wiki, split = " ", fixed = T)
# Create vocabulary. Terms will be unigrams (simple words).
vocab <- create_vocabulary(itoken(tokens))
vocab <- prune_vocabulary(vocab, term_count_min = 5L)
# We provide an iterator to create_vocab_corpus function
it <- itoken(tokens)
# Use our filtered vocabulary
vectorizer <- vocab_vectorizer(vocab,
# don't vectorize input
grow_dtm = FALSE,
# use window of 5 for context words
skip_grams_window = 5L)
tcm <- create_tcm(it, vectorizer)
fit <- glove(tcm = tcm,
word_vectors_size = 50,
x_max = 10, learning_rate = 0.2,
num_iters = 15)
単語埋め込みの開発に関心のあるデータは、次のように取得できます。
library(text2vec)
data("movie_review")