我正在使用Spanish Billion Words Corpus and Embeddings
处提供的word2vec数据数据集看起来像这样
v1 v2 v3
once 0.1 0.2
upon 0.3 0.4
a 0.5 0.6
time 0.7 0.8
... + thousands of lines and columns ...
这是我读取数据的代码,但最重要的是最后两行:
#install.packages("R.utils")
#install.packages("readr")
#install.packages("jsonlite")
library(R.utils)
library(readr)
library(jsonlite)
##############################
# word vectors in text format
##############################
url <- "http://cs.famaf.unc.edu.ar/~ccardellino/SBWCE/SBW-vectors-300-min5.txt.bz2"
compressed <- "SBW-vectors-300-min5.txt.bz2"
file <- "SBW-vectors-300-min5.txt"
file2 <- "SBW-vectors-300-min5.RData"
if(!file.exists(compressed)) {
print("downloading")
download.file(url, compressed, method="curl")
}
if(!file.exists(file) & file.exists(compressed)) {
bunzip2(compressed, file, remove = FALSE, skip = TRUE)
}
SBW_vectors_300_min5 <- readr::read_lines(file, skip = 1, n_max = -1L)
SBW_vectors_300_min5_df = as.data.frame(do.call(rbind, strsplit(SBW_vectors_300_min5, split = " ")),
stringsAsFactors=FALSE)
当我跑步时
SBW_vectors_300_min5 <- readr::read_lines(file, skip = 1, n_max = -1L)
SBW_vectors_300_min5_df = as.data.frame(do.call(rbind, strsplit(SBW_vectors_300_min5, split = " ")),
stringsAsFactors=FALSE)
我收到错误invalid subscript type 'list'
但是,如果我这样做
SBW_vectors_300_min5 <- readr::read_lines(file, skip = 1, n_max = -1L)
SBW_vectors_300_min5 = strsplit(SBW_vectors_300_min5, split = " ")
SBW_vectors_300_min5 = as.data.frame(SBW_vectors_300_min5)
我选择了最后一个选项,因为该工作没有错误消息。最后一个解决方案的问题是列被读作因子而且因子I不能进行主成分分析,除非我这样做
index <- sapply(values, is.factor)
SBW_vectors_300_min5 <- lapply(SBW_vectors_300_min5[index], function(x) as.numeric(as.character(x)))
计算时间超过24小时。如果我想让它重现,那么我必须考虑更高效的东西。
如何让SBW_vectors_300_min5_df = as.data.frame(do.call(rbind, strsplit(SBW_vectors_300_min5, split = " ")), stringsAsFactors=FALSE)
工作?