私は最初のPython=プロジェクトに取り組んでおり、かなり大きなデータセット(数万行)を持っています。5つのテキスト列(複数の文の複数の文)でいくつかのnlp(クラスタリング、分類)を実行する必要があります。 'cell'あたりのテキスト)、pandas=を使用してデータセットを整理/構築しています。すべてのnlpにspaCyを使用することを望んでいますが、テキストをトークン化する方法がわかりませんspaCyのドキュメントをたくさん読んでググったところ、見つけた例はすべて1つの文またはWordのもので、pandas dfの75K行ではありません。
私は次のようなことを試しました:df['new_col'] = [token for token in (df['col'])]
しかし、間違いなくいくつかのヘルプ/リソースをいただければ幸いです。
SpaCyを使用したことはありませんが(nltkは常に私に任せてくれました)、ドキュメントを一目見たところ、次のように機能するはずです。
_import spacy
nlp = spacy.load('en')
df['new_col'] = df['text'].apply(lambda x: nlp(x))
_
nlp
は、デフォルトでSpaCyパイプライン全体を実行することに注意してください。これには、品詞のタグ付け、解析、および名前付きエンティティの認識が含まれます。 nlp.tokenizer(x)
の代わりにnlp(x)
を使用するか、モデルをロードするときにパイプラインの一部を無効にすることにより、コードを大幅にスピードアップできます。例えば。 nlp = spacy.load('en', parser=False, entity=False)
。