だからここに私の問題があります。3 列の非常に大きな csv ファイルがあります。最初の列は一意の ID です。2列目は英文の文字列です。3 番目の列は、2 番目の列の文を説明する単語タグの文字列です (通常は 3 つのタグ、最大 5 つ)。ここに例があります。
id | sentence | tags
1 | "people walk dogs in the park" | "pet park health"
2 | "I am allergic to dogs" | "allergies health"
私がやりたいのは、文中の単語とタグ単語の共起をすべて見つけることです。したがって、上記の例の望ましい出力は次のようになります。
("walk","pet"),1
("health","dogs"),2
("allergies","dogs"),1
etc...
ここで、最初のエントリは単語のペア (文の最初の単語、2 番目の単語はタグ単語) であり、それらが共起する回数です。
これを行う最善の方法は何だろうと思っています。キーがタグ ワードで、値がそのタグ ワードが表示される ID のセットである Python 辞書を考え出すことができるのではないかと考えていました。すべての文に現れるすべての単語で同じことを行うことができます (ストップワードを削除した後)。次に、2 つの単語のすべての組み合わせについて、両方のセットの共通部分にある ID の数を数えることができます。これにより、それらが同時に発生する回数がわかります。
ただし、これには非常に長い時間がかかるようです (巨大な csv ファイル!)。また、メモリが不足する可能性があります。誰でもこれを行うためのより良い方法を考えることができますか? ファイルをデータベースにインポートして、何らかのクエリを実行することはできますか?