nltk には、トークン化されたテキストを書き出すためのシリアル化形式がありますか? 私は 175MB のテキスト ファイルを持っていて、それをオブジェクトに入れるnltk.Text
のに 4 分かかります (Macbook Retina の場合、つまり、最先端のプロセッサ、8 ギガの RAM と SSD)。ディスクからの raw ファイルのロードは、ほぼ瞬時に行われます。
作業を行う関数は次のとおりです。
def _load_all_text(self):
if not self._text_loaded:
file = open("all_posts","r")
self._text = file.read()
self._text_loaded = True
def nltk_text(self):
self._load_all_text()
return nltk.Text(nltk.word_tokenize(self._text))
完了するのに 4 分かかるなんて信じられません。これは、Python ガベージ コレクターと、nltk が構築するリスト オブジェクトのせいだと思います。私はピクルスについてあまり知りません。リストをピクルスにすることでうまくいきますか (つまり、問題のリストは の結果ですword_tokenise
)?