您的位置:首页 > 其它

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

2015-08-17 14:27 253 查看
所有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的生成
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: