gensim 實現tfidf 之語料的流式載入

2021-09-25 02:54:37 字數 1088 閱讀 3627

有37萬個文字資料來生成tfidf模型,如果直接一次性放入記憶體,會出現memoryerror

gensim實現了流式載入語料的功能,故定義迭代器完成語料的載入。

生成字典過程中,遍歷file檔案,每個處理乙個文字資料。

import warnings

warnings.filterwarnings(action='ignore',category=userwarning,module='gensim')

from gensim import corpora,similarities,models

file = open('train.txt','r',encoding='utf-8')

class mycorpus(object):

def __iter__(self):

for doc in file:

yield doc.split(' ')

corp = mycorpus()

dictionary = corpora.dictionary(corp)

同理,在產生gensim可以接收的bow資料過程中,重新開啟train.txt遍歷一遍文件。因為在上一次的for迴圈裡,檔案指標已經到了檔案末尾。

class mycorpus(object):

def __init__(self):

print('mycorpus')

def __iter__(self):

for doc in open('dingding.txt','r',encoding='utf-8'):

# print(doc)

yield dictionary.doc2bow(doc.split(' '))

corpus = mycorpus()

# corpus = [dictionary.doc2bow(text) for text in self.text]

tfidf_model = models.tfidfmodel(corpus, id2word=dictionary)

corpus_tfidf = tfidf_model[corpus]

TF IDF和gensim實現主題提取

主題抽取 經過分詞 單詞清洗 詞幹提取後,基於tf idf演算法可以抽取一段文字中的核心主題詞彙,從而判斷出當前文字的主題。屬於無監督學習。gensim模組提供了主題抽取的常用工具 import gensim.models.ldamodel as gm import gensim.corpora a...

python 動手實現tfidf

最近自己實現了一下tfidf,發現實現起來細節跟tfidf的公式還是不大一樣,我這裡把我的實現過程分享出來。import pandas as pd import glob import numpy as np from nltk.tokenize import word tokenize impor...

TF IDF的原理和實現

1 tf idf原理 是term frequency inverse document frequency的縮寫,即 詞頻 逆文字頻率 它由兩部分組成,tf和idf tf也就是我們前面說到的詞頻,我們之前做的向量化也就是做了文字中各個詞的出現頻率統計,並作為文字特徵 idf,即 逆文字頻率 幾乎所有...