我想用这个配置尝试 word2vec:
compile "org.deeplearning4j:deeplearning4j-core:1.0.0-beta2"
compile "org.nd4j:nd4j-native-platform:1.0.0-beta2"
//compile "org.nd4j:nd4j-cuda-9.2-platform:1.0.0-beta2"
compile group: 'org.deeplearning4j', name: 'deeplearning4j-nlp', version: '1.0.0-beta2'
compile group: 'org.deeplearning4j', name: 'deeplearning4j-ui_2.11', version: '1.0.0-beta2'
SentenceIterator iter = new BasicLineIterator(new File("E:/temp/text_1.txt"));
TokenizerFactory t = new DefaultTokenizerFactory();
t.setTokenPreProcessor(new CommonPreprocessor());
Word2Vec vec = new Word2Vec.Builder()
.minWordFrequency(20)
.iterations(1)
.layerSize(150)
.seed(42)
.windowSize(5)
.iterate(iter)
.tokenizerFactory(t)
.allowParallelTokenization(true)
.batchSize(1000)
.workers(8)
.elementsLearningAlgorithm(new SkipGram<>())
.build();
vec.fit();
包含句子的文件大约 15GB,每行一个句子。
22:33:07.116 [main] INFO o.d.m.w.wordstore.VocabConstructor - Sequences checked: [200000]; Current vocabulary size: [48699]; Sequences/sec: 8298,07; Words/sec: 69217,82;
我怎样才能调整它以使其不那么慢?仅仅构建词汇就需要超过 24 小时。
这些是我要处理的文本文件中的一些行:
杰登阿本德 sieht sie den schatten am fenster
dann weht ein eisiger hauch ins zimmer
der unheimliche besucher laessst sich nicht abwehren
bei seinem anblick erstarrt die frau vor entsetzen
denn sie kann nicht begreifen dass ploetzlich der mann vor ihr steht den sie vor vielen jahren begraben hat
dem unheimlichen besucher eine falle zu stellen