2016-05-19 3 views
2

私はscrapyを使用してウェブサイトをクロールし、それぞれが自然言語のテキストを含む何千もの.txtファイルを取得しました誘発された経験)。これらのファイルの名前は一意の番号です。 これらの固有の番号のそれぞれに関連付けられたメタデータを持つ.csvファイルもあります(つまり、私はtext_numberの列と、この特定の番号に対応するメタデータの他の列を持っています)。メタデータのカテゴリの1つは投与量(mg単位)です。ここでNLTKコーパス内のコンテキストワードの5ワード(左/右)内の単語の出現を見つける

は私がやろうとしているものです:100の1つのファイルが(左右)5つのワード内の特定の単語(「自己」)の発生が含まれている.txtで

  1. 検索(私は正確なリストを持っています)。

  2. すべての.txtファイルの平均投与量と比較するために、最初のステップで選んだ.txtファイルの平均投与量を取得します(メタデータから)。

私は本当に私は正規表現はこれに良い解決策かもしれないと思う...続行する方法

答えて

0

を知りません。 これは高速で、多くのデータがあります。 これを実行する最良の方法は何か分かりませんが、ここには1つの解決策があります。

は、ターゲットワード(「自己」)を言うと、コンテキストの単語のリストは以下のようになります。

target_word = 'self' 
context_words = ['one', 'hundred', 'context', 'words'] 
#mine is much shorter than yours! ;) 

その後、あなたは単語がスペースで区切られることを想定正規表現を作成することができます。 私は、文脈語が前にあるときと後であるときのために1つのパターンを使用し、その後それらをor( '|')と組み合わせた。 それが必要なのかどうかはわかりませんが、別の方法を簡単に考えることができませんでした。

次に、作業できるメタデータが保存されています。

+0

ありがとうございます!これはルーキーミス(私は非常にPythonと一般的なコーディング)の新しいですが、事前に申し訳ありませんが、私はあなたのコードを "ファイル名のファイル名"としようとすると、私は次のエラーが表示されます:NameError:name 'ファイル名が定義されていません –

+0

私はまた、os.listdir( "txt")の 'for filename 'に置き換えようとしました。私のコードがある場所に/ txtフォルダがありますが、別のエラー: 'IOError:[Errno 2]そのようなファイルやディレクトリがありません: 'sample.txt' –

+0

ああ、私はあなたのディレクトリ構造がどのようなものか分かりません。 'filenames = paste( 'data-directory /'、1:100、 '.txt'、sep = '')'など、ファイル名のリストを得るためにあなたのディレクトリ構造に一致するものを実行できます。 – Erin

関連する問題