Gensim学习笔记-2-理解Gensim中的Corpus对象

所有corpora.xxxcorpus中的对象均继承接口

gensim.interfaces.CorpusABC

一个语料库对象(corpus)是一个可迭代的对象,每次迭代得到一篇文档(document)
一个document对象又是一个2元组的(fieldId,fueldValue)序列
不同的corpus有不同的格式和相应的处理方法,但都有继承于CorpusABC的
1 classmethod load(fname, mmap=None)
2 save(*args, **kwargs)
3 static save_corpus(fname, corpus, id2word=None, metadata=False)
方法

理解corpora.textcorpus
由Demo入手学习
在Python安装文件下查找site-packages\gensim\test
找到test_miislita.py 文件
打开后发现一个有趣的网站: http://www.miislita.com/

corpora.TextCorpus是一个抽象的语料库类,复写其get_texts方法即可构造一个能序列化为各种corpus对象的输入对象。

get_texts()
Iterate over the collection, yielding one document at a time. A document is a sequence of words (strings) that can be fed into Dictionary.doc2bow.

Override this function to match your input (parse input files, do any text preprocessing, lowercasing, tokenizing etc.). There will be no further preprocessing of the words coming out of this function.

在test_miislita.py 文件中把main函数改为

if __name__ == '__main__':
    #logging.basicConfig(level=logging.DEBUG)
    #unittest.main()
    miislita = CorpusMiislita(datapath('miIslita.cor'))
    # make sure serializing works
    ftmp = get_tmpfile('test_textcorpus.mm')
    corpora.MmCorpus.save_corpus(ftmp, miislita)
    # make sure deserializing gives the same result
    miislita2 = corpora.MmCorpus(ftmp)
    print miislita2
    for doc in miislita2:
        print doc

运行可知已经完成了MmCorpus的生成

你可能感兴趣的:(gensim,Gensim)