使用Gensim处理西班牙语维基百科

时间:2015-07-10 10:05:38

标签: python wikipedia gensim word2vec

我想使用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')

1 个答案:

答案 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()中以提高效率。