自然语言处理爬过的坑:基于爬虫抓取的语料,使用gensim建设dictionary、corpus、tfidf_model并保存成文件


                # 生成字典和向量语料
                dictionary = corpora.Dictionary([corpora_documents])
                #print(dictionary)
                # print 'dfs:', dictionary.dfs  # 字典词频,{单词id,在多少文档中出现}
                print 'num_docs:', dictionary.num_docs  # 文档数目
                print 'num_pos:', dictionary.num_pos  # 所有词的个数
                # word_id_dict = dictionary.token2id  # {词:id}
                # print 'word_id_dict:'
                # print len(word_id_dict)
                # for k in word_id_dict.keys():
                # kuozhan(corpora_documents)
                # big_shuzu.append(corpora_documents)
                #print big_shuzu
                #dictionary.add_documents(big_shuzu)  # 词典扩展
                print 'num_docs:', dictionary.num_docs  # 文档数目
                print 'num_pos:', dictionary.num_pos  # 所有词的个数
                # dict.add_documents(dictionary)
                dictionary.save('ths_dict.dict')  # 保存生成的词典
                dictionary = corpora.Dictionary.load('ths_dict.dict')  # 加载
                # 通过下面一句得到语料中每一篇文档对应的稀疏向量(这里是bow向量)
                corpus = [dictionary.doc2bow(text) for text in [corpora_documents]]
                # 向量的每一个元素代表了一个word在这篇文档中出现的次数
                # print(corpus)
                corpora.MmCorpus.serialize('ths_corpuse.mm', corpus)  # 将生成的语料保存成MM文件
                corpus = corpora.MmCorpus('ths_corpuse.mm')  # 加载

                # corpus是一个返回bow向量的迭代器。下面代码将完成对corpus中出现的每一个特征的IDF值的统计工作
                tfidf_model = models.TfidfModel(corpus)
                corpus_tfidf = tfidf_model[corpus]

                # 使用for循环查看model中的内容
                for item in corpus_tfidf:
                    print(item)
                corpus_tfidf.save("ths_tfidf.model")#保存成model格式
                corpus_tfidf = models.TfidfModel.load("ths_tfidf.model")#加载
                #print(tfidf_model.dfs)

会在该程序所在的目录下生成四个文件,index文件是在保存corpus时自动生成。




猜你喜欢

转载自blog.csdn.net/weixin_41931602/article/details/80458852