2016-10-31 10 views
0

私はsklearnを使用して潜在ディリクレ割り当てモデルを訓練しました。私はそれをunpickle化するとき、私は、トピックの分布を取得するには、ドキュメントを変換して、LDAを使用して、このインスタンスを変換するcountVectorizerを使用しますが、私は次のエラーを取得しています:ここで潜在ディリクレ割り当てから変換メソッドを使用したときのエラー

AttributeError: module '__main__' has no attribute 'tokenize' 

は私のコードです:

lda = joblib.load('lda_good.pkl') 
#LDA trained model 

tf_vect = joblib.load('tf_vectorizer_.pkl') 
#vectorizer 


texts = readContent('doc_name.pdf') 

new_doc = tf_vect.transform(texts) 

print(new_doc) 

print(lda.transform(new_doc)) 

事は、関数トークン化がある ... unipickled countVectorizerオブジェクトが正常に動作していると私は.transformを使用することができますが、私はLDAの属性を使用して、その後.transformしようとすると、countvectorizerからトークン化機能を参照しているようだということですコードの前に定義されていますが、私は理解できませんhatize tokenizeは、潜在的なディリクレ割り当ての変換方法と関係しています。 奇妙なことに、このコードはすべてjupyterノートブックでうまく動作していますが、スクリプトとして実行したときではありません。

すべてのコードは1つのファイルにあります。モデルはjupyterノートブックを使って訓練されましたが、今はスクリプト内でモデルを使用しようとしていました。ここで

がトレースバックです:

Traceback (most recent call last): 
File "<string>", line 1, in <module> 
Traceback (most recent call last): 
File  "C:\Users\eduard.bermejo\AppData\Local\Continuum\Anaconda3\lib\multiprocessing\spawn.py", line 106, in spawn_main 
File "<string>", line 1, in <module> 
File "C:\Users\eduard.bermejo\AppData\Local\Continuum\Anaconda3\lib\multiprocessing\spawn.py", line 106, in spawn_main 
exitcode = _main(fd) 
File "C:\Users\eduard.bermejo\AppData\Local\Continuum\Anaconda3\lib\multiprocessing\spawn.py", line 115, in _main 
exitcode = _main(fd) 
prepare(preparation_data) 
File "C:\Users\eduard.bermejo\AppData\Local\Continuum\Anaconda3\lib\multiprocessing\spawn.py", line 115, in _main 
File "C:\Users\eduard.bermejo\AppData\Local\Continuum\Anaconda3\lib\multiprocessing\spawn.py", line 226, in prepare 
prepare(preparation_data) 
File "C:\Users\eduard.bermejo\AppData\Local\Continuum\Anaconda3\lib\multiprocessing\spawn.py", line 226, in prepare 
_fixup_main_from_path(data['init_main_from_path']) 
File "C:\Users\eduard.bermejo\AppData\Local\Continuum\Anaconda3\lib\multiprocessing\spawn.py", line 278, in _fixup_main_from_path 
Traceback (most recent call last): 
Traceback (most recent call last): 
_fixup_main_from_path(data['init_main_from_path']) 
File "<string>", line 1, in <module> 
File "<string>", line 1, in <module> 
run_name="__mp_main__") 
File "C:\Users\eduard.bermejo\AppData\Local\Continuum\Anaconda3\lib\multiprocessing\spawn.py", line 278, in _fixup_main_from_path 
File "C:\Users\eduard.bermejo\AppData\Local\Continuum\Anaconda3\lib\runpy.py", line 254, in run_path 
File "C:\Users\eduard.bermejo\AppData\Local\Continuum\Anaconda3\lib\multiprocessing\spawn.py", line 106, in spawn_main 
File "C:\Users\eduard.bermejo\AppData\Local\Continuum\Anaconda3\lib\multiprocessing\spawn.py", line 106, in spawn_main 
run_name="__mp_main__") 
pkg_name=pkg_name, script_name=fname) 
File "C:\Users\eduard.bermejo\AppData\Local\Continuum\Anaconda3\lib\runpy.py", line 254, in run_path 
exitcode = _main(fd) 
File "C:\Users\eduard.bermejo\AppData\Local\Continuum\Anaconda3\lib\runpy.py", line 96, in _run_module_code 
exitcode = _main(fd) 
File "C:\Users\eduard.bermejo\AppData\Local\Continuum\Anaconda3\lib\multiprocessing\spawn.py", line 115, in _main 
File "C:\Users\eduard.bermejo\AppData\Local\Continuum\Anaconda3\lib\multiprocessing\spawn.py", line 115, in _main 
pkg_name=pkg_name, script_name=fname) 
prepare(preparation_data) 
File "C:\Users\eduard.bermejo\AppData\Local\Continuum\Anaconda3\lib\multiprocessing\spawn.py", line 226, in prepare 
File "C:\Users\eduard.bermejo\AppData\Local\Continuum\Anaconda3\lib\runpy.py", line 96, in _run_module_code 
mod_name, mod_spec, pkg_name, script_name) 
_fixup_main_from_path(data['init_main_from_path']) 
prepare(preparation_data) 
File "C:\Users\eduard.bermejo\AppData\Local\Continuum\Anaconda3\lib\runpy.py", line 85, in _run_code 
File "C:\Users\eduard.bermejo\AppData\Local\Continuum\Anaconda3\lib\multiprocessing\spawn.py", line 278, in _fixup_main_from_path 
mod_name, mod_spec, pkg_name, script_name) 
File "C:\Users\eduard.bermejo\AppData\Local\Continuum\Anaconda3\lib\multiprocessing\spawn.py", line 226, in prepare 
exec(code, run_globals) 
File "C:\Users\eduard.bermejo\AppData\Local\Continuum\Anaconda3\lib\runpy.py", line 85, in _run_code 
File "C:\Users\eduard.bermejo\Documents\Machine learning\gestió documental\POC\program_POC.py", line 160, in <module> 
run_name="__mp_main__") 
_fixup_main_from_path(data['init_main_from_path']) 
File "C:\Users\eduard.bermejo\AppData\Local\Continuum\Anaconda3\lib\runpy.py", line 254, in run_path 
File "C:\Users\eduard.bermejo\AppData\Local\Continuum\Anaconda3\lib\multiprocessing\spawn.py", line 278, in _fixup_main_from_path 
exec(code, run_globals) 
tf_vect = joblib.load('tf_vectorizer_.pkl') 
pkg_name=pkg_name, script_name=fname) 
File "C:\Users\eduard.bermejo\Documents\Machine learning\gestió documental\POC\program_POC.py", line 160, in <module> 
File "C:\Users\eduard.bermejo\AppData\Local\Continuum\Anaconda3\lib\site- packages\sklearn\externals\joblib\numpy_pickle.py", line 459, in load 
File "C:\Users\eduard.bermejo\AppData\Local\Continuum\Anaconda3\lib\runpy.py", line 96, in _run_module_code 
run_name="__mp_main__") 
File "C:\Users\eduard.bermejo\AppData\Local\Continuum\Anaconda3\lib\runpy.py", line 254, in run_path 
tf_vect = joblib.load('tf_vectorizer_.pkl') 
obj = unpickler.load() 
mod_name, mod_spec, pkg_name, script_name) 
File "C:\Users\eduard.bermejo\AppData\Local\Continuum\Anaconda3\lib\site-packages\sklearn\externals\joblib\numpy_pickle.py", line 459, in load 
File "C:\Users\eduard.bermejo\AppData\Local\Continuum\Anaconda3\lib\pickle.py", line 1039, in load 
File "C:\Users\eduard.bermejo\AppData\Local\Continuum\Anaconda3\lib\runpy.py", line 85, in _run_code 
pkg_name=pkg_name, script_name=fname) 
File "C:\Users\eduard.bermejo\AppData\Local\Continuum\Anaconda3\lib\runpy.py", line 96, in _run_module_code 
exec(code, run_globals) 
File "C:\Users\eduard.bermejo\Documents\Machine learning\gestió documental\POC\program_POC.py", line 160, in <module> 
obj = unpickler.load() 
mod_name, mod_spec, pkg_name, script_name) 
dispatch[key[0]](self) 
File "C:\Users\eduard.bermejo\AppData\Local\Continuum\Anaconda3\lib\pickle.py", line 1039, in load 
File "C:\Users\eduard.bermejo\AppData\Local\Continuum\Anaconda3\lib\runpy.py", line 85, in _run_code 
File "C:\Users\eduard.bermejo\AppData\Local\Continuum\Anaconda3\lib\pickle.py", line 1334, in load_global 
tf_vect = joblib.load('tf_vectorizer_.pkl') 
exec(code, run_globals) 
File "C:\Users\eduard.bermejo\AppData\Local\Continuum\Anaconda3\lib\site- packages\sklearn\externals\joblib\numpy_pickle.py", line 459, in load 
File "C:\Users\eduard.bermejo\Documents\Machine learning\gestió documental\POC\program_POC.py", line 160, in <module> 
dispatch[key[0]](self) 
File "C:\Users\eduard.bermejo\AppData\Local\Continuum\Anaconda3\lib\pickle.py", line 1334, in load_global 
tf_vect = joblib.load('tf_vectorizer_.pkl') 
obj = unpickler.load() 
klass = self.find_class(module, name) 
File "C:\Users\eduard.bermejo\AppData\Local\Continuum\Anaconda3\lib\site-packages\sklearn\externals\joblib\numpy_pickle.py", line 459, in load 
File "C:\Users\eduard.bermejo\AppData\Local\Continuum\Anaconda3\lib\pickle.py", line 1039, in load 
File "C:\Users\eduard.bermejo\AppData\Local\Continuum\Anaconda3\lib\pickle.py", line 1388, in find_class 
klass = self.find_class(module, name) 
obj = unpickler.load() 
File "C:\Users\eduard.bermejo\AppData\Local\Continuum\Anaconda3\lib\pickle.py", line 1388, in find_class 
File "C:\Users\eduard.bermejo\AppData\Local\Continuum\Anaconda3\lib\pickle.py", line 1039, in load 
dispatch[key[0]](self) 
File "C:\Users\eduard.bermejo\AppData\Local\Continuum\Anaconda3\lib\pickle.py", line 1334, in load_global 
return getattr(sys.modules[module], name) 
AttributeError: module '__main__' has no attribute 'tokenize' 
dispatch[key[0]](self) 
File "C:\Users\eduard.bermejo\AppData\Local\Continuum\Anaconda3\lib\pickle.py", line 1334, in load_global 
klass = self.find_class(module, name) 
File "C:\Users\eduard.bermejo\AppData\Local\Continuum\Anaconda3\lib\pickle.py", line 1388, in find_class 
return getattr(sys.modules[module], name) 
AttributeError: module '__main__' has no attribute 'tokenize' 
klass = self.find_class(module, name) 
File "C:\Users\eduard.bermejo\AppData\Local\Continuum\Anaconda3\lib\pickle.py", line 1388, in find_class 
return getattr(sys.modules[module], name) 
AttributeError: module '__main__' has no attribute 'tokenize' 
return getattr(sys.modules[module], name) 
AttributeError: module '__main__' has no attribute 'tokenize' 
Traceback (most recent call last): 
File "<string>", line 1, in <module> 
Traceback (most recent call last): 
File "<string>", line 1, in <module> 
File "C:\Users\eduard.bermejo\AppData\Local\Continuum\Anaconda3\lib\multiprocessing\spawn.py", line 106, in spawn_main 
File "C:\Users\eduard.bermejo\AppData\Local\Continuum\Anaconda3\lib\multiprocessing\spawn.py", line 106, in spawn_main 
exitcode = _main(fd) 
exitcode = _main(fd) 

それは実際に続けますが、私はそれがループのいくつかの種類を開始しないため、これは十分でしょうね。

さらなる情報が必要な場合は教えてください。事前に

おかげ

+0

プロジェクトのディレクトリ構造を共有できますか?また、完全なスタックトレースを共有してください。 –

+0

を指している行番号の良いアイデアを得ることができます。私はいくつかの情報を追加しました。ありがとう – ERed

+0

また、プロジェクトのファイルとフォルダの構造を貼り付けてもらえますか? –

答えて

0

SOそれは酸洗およびunpickle化問題がある示し上similar questionsてみます。 joblib.dumpのコードは、私が想定しているディレクトリとは別のディレクトリにあります。代わりに、このプログラムと同じディレクトリに置いて、picklerとunpicklerをもう一度実行することができますか? pickleされたディレクトリに対して__main__が保存され、実行されたときにunpicklerはそのディレクトリを検索しようとします。

関連する問題