まず、Python/nltkの新機能です。質問があまりにも基本的であれば、私の謝罪です。私はトークン化しようとしている大きなファイルを持っています。私はメモリエラーが発生します。Python NLTKを使用して大きな(> 70MB)TXTファイルをトークン化します。ストリームのエラーを連結してデータを書き込む
私が読んだ解決策の1つは、一度に1行ずつ読むことですが、それは意味がありますが、そのときにエラーcannot concatenate 'str' and 'list' objects
が表示されます。
私は7MBのファイルを4つの小さなファイルに分割しようとしましたが、そのファイルを実行すると、そのエラーが表示される理由がわかりません(ファイルを読み込んだ後、私が取得:。 error: failed to write data to stream
最後に、ファイル(100キロバイト以下)の非常に小さなサンプルを試して、変更したコードを実行するときに、私は、ファイルをトークン化することができる午前何が起こっているかに
任意の洞察力を。 ?ありがとう。
# tokenizing large file one line at a time
import nltk
filename=open("X:\MyFile.txt","r").read()
type(raw) #str
tokens = ''
for line in filename
tokens+=nltk.word_tokenize(filename)
#cannot concatenate 'str' and 'list' objects
小さなファイルで、次の作品:
import nltk
filename=open("X:\MyFile.txt","r").read()
type(raw)
tokens = nltk.word.tokenize(filename)
完璧に機能します。ありがとうございますluke14free –
しかし、 'word_tokenize'は一度に1つの文で実行されていることを前提としているので、トークン化エラーが発生します。実際には、ファイルの塊を読み込み、 'sent_tokenize'で分割し、' word_tokenize'に渡す必要があります。 1行ずつ読む必要があり、文章が複数の行にまたがる場合は痛みです。だから今のところ不完全で暮らしている方が好きかもしれません... – alexis
はい、私のコードは、文の途中で\ nを見つけることができないというかなり強い仮定に基づいています。 – luke14free