用泡菜装载tfidf对象时出现问题

时间:2019-02-14 23:29:19

标签: python pickle

我对泡菜有疑问: 在以前的工作中,我创建了一个sklearn tfidfvectorizer对象,并通过pickle保存了它。 她是我以前做过的代码:

def lemma_tokenizer(text):
     lemmatizer=WordNetLemmatizer()
     return [lemmatizer.lemmatize(token) for token in 
word_tokenize(text.replace("'"," "))]

punctuation=list(string.punctuation)
stop_words=set(stopwords.words("english")+punctuation+['``',"''"]+['doe','ha','wa']) 
tfidf = TfidfVectorizr(input='content',tokenizer=lemma_tokenizer,stop_words=stop_words)

pickle.dump(tfidf, open(filename_tfidf, 'wb'))

我看到,如果我由于pickle不想加载这个tfidf对象,则需要先定义函数“ lemma_tokenizer”。 因此,我创建了以下名为“ loadtfidf.py”的python脚本来加载tfidf对象:

import pickle
from nltk.stem import WordNetLemmatizer
from nltk.tokenize import word_tokenize


def lemma_tokenizer(text):
    lemmatizer=WordNetLemmatizer()
    return [lemmatizer.lemmatize(token) for token in word_tokenize(text.replace("'"," "))]

tfidf = pickle.load(open('tfidf.sav', 'rb'))

如果我运行此脚本,则对象加载良好,一切顺利!

然后,我在“ loadtfidf.py”的同一目录中创建了另一个名为“ test.py”的python脚本,在这里我只是尝试导入loadtfidf:

import loadtfidf

当我尝试运行这一行时,出现以下错误:

“”“无法从'... / test.py'”“

获取模块'主要'上的属性'lemma_tokenizer'

我真的不明白为什么...我什至不知道该怎么解决这个错误...您能帮我解决这个问题吗?

预先感谢您的帮助!

0 个答案:

没有答案