我正在尝试gensim
使用意大利维基百科“ http://dumps.wikimedia.org/itwiki/latest/itwiki-latest-pages-articles.xml.bz2 ”来训练 word2vec 模型
但是,我不确定这个语料库的最佳预处理是什么。
gensim
模型接受标记化句子的列表。我的第一次尝试是只使用WikipediaCorpus
来自gensim
. 这会提取每篇文章,删除标点符号并在空格上拆分单词。使用这个工具,每个句子都会对应一个完整的模型,我不确定这个事实对模型的影响。
在此之后,我使用默认参数训练模型。不幸的是,经过培训,我似乎无法获得非常有意义的相似之处。
维基百科语料库上最适合此任务的预处理是什么?(如果这个问题太宽泛,请通过指向相关教程/文章来帮助我)
这是我第一次试用的代码:
from gensim.corpora import WikiCorpus
import logging
logging.basicConfig(format='%(asctime)s : %(levelname)s : %(message)s', level=logging.INFO)
corpus = WikiCorpus('itwiki-latest-pages-articles.xml.bz2',dictionary=False)
max_sentence = -1
def generate_lines():
for index, text in enumerate(corpus.get_texts()):
if index < max_sentence or max_sentence==-1:
yield text
else:
break
from gensim.models.word2vec import BrownCorpus, Word2Vec
model = Word2Vec()
model.build_vocab(generate_lines()) #This strangely builds a vocab of "only" 747904 words which is << than those reported in the literature 10M words
model.train(generate_lines(),chunksize=500)