有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,即 逆文字頻率 幾乎所有...