使用word2vec函数将手套导入h2o引发NullPointerException

使用word2vec函数将手套导入h2o引发NullPointerException,r,word2vec,h2o,R,Word2vec,H2o,我正在尝试使用word2vec函数通过R将手套导入h2o集群。 对此, 我下载了pretrained glove.840B.300d.txt文件,并试图将其导入h2o,但解析时出现问题。 然后我将手套读给R,删除一行识别为NA的代码,并将其保存为csv。h2o中的csv文件解析进行得很顺利,但我无法用它创建word2vec模型,因此它抛出了java.lang.NullPointerException 我有h2o_3.15.0.99999版本 我的代码: h2o.init() glove<-

我正在尝试使用word2vec函数通过R将手套导入h2o集群。 对此, 我下载了pretrained glove.840B.300d.txt文件,并试图将其导入h2o,但解析时出现问题。 然后我将手套读给R,删除一行识别为NA的代码,并将其保存为csv。h2o中的csv文件解析进行得很顺利,但我无法用它创建word2vec模型,因此它抛出了
java.lang.NullPointerException

我有
h2o_3.15.0.99999
版本

我的代码:

h2o.init()
glove<-h2o.importFile("glove.840B.300d.csv",header = F)
model<-h2o.word2vec(pre_trained = glove,vec_size = 300)
h2o.init()

手套感谢您的报告,当前的实现受到JVM最大数组长度的限制。这个模型似乎太大,超出了JVM的限制


我们必须在H2O中修复它。

鉴于您超过了模型的最大阵列大小,作为一种解决方法,您可以将其向后修剪一点。我假设词汇表是按频率排序的,在手套文件中。换言之,我假设最常用的词排在第一位,最后的词通常是晦涩难懂的,用处不大

例如,此代码只使用前50%的单词

h2o.init()
glove <- h2o.importFile("glove.840B.300d.csv",header = F)
parts <- h2o.split(glove, [0.5])
modelCommon <- h2o.word2vec(pre_trained = parts[[1]],vec_size = 300)
h2o.init()

手套谢谢!Google word2vec预训练模型是以二进制文件的形式提供的,您是否也有处理此类文件的计划?这当然是可能的,但我们没有任何时间线来提供此功能。如果您能在我们的jira:jira.h2o.ai中记录一个功能请求,那就太好了
h2o.init()
glove <- h2o.importFile("glove.840B.300d.csv",header = F)
parts <- h2o.split(glove, [0.5])
modelCommon <- h2o.word2vec(pre_trained = parts[[1]],vec_size = 300)
modelObscure <- h2o.word2vec(pre_trained = parts[[2]],vec_size = 300)