我想使用gensim.corpora.wikicorpus
处理维基百科。我的最终目标是从中训练Word2Vec模型。
我有它的工作,但我对西班牙语的重音元音有问题:á,é,í,ó,ú。
我想将它们标准化为a,e,i,o,u。
我似乎在gensim中有一个deaccent函数,但我想在构建语料库时直接应用它。可以这样做吗?
这是一个有效的例子:
from gensim.corpora import WikiCorpus
from gensim.models.word2vec import Word2Vec
import logging
logging.basicConfig(format='%(asctime)s : %(levelname)s : %(message)s',
level=logging.INFO)
# I would like to include here the normalization
corpus = WikiCorpus('/Users/jesusfbes/Desktop/eswiki-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
model = Word2Vec(size=400, window=5, min_count=5)
model.build_vocab(generate_lines())
model.train(generate_lines(), chunksize=500)
model.save('mymodel')
答案 0 :(得分:0)
我想你应该做的就是这些:
from gensim.utils import deaccent
def generate_lines():
for index, text in enumerate(corpus.get_texts()):
if index < max_sentence or max_sentence == -1:
yield deaccent(text)
else:
break
只要你有足够的RAM存储结果并在model.build_vocab()和model.train()调用中重用它们,我也会将调用结果存储到generate_lines()中以提高效率。