2011-08-05 16 views
-2

私はPDFの内容を作成する必要があります。PDFの内容を作成

+0

これはまだ私にhttp://stackoverflow.com/questions/6822884/how-do-i-index-pdf-files-and-search-for-keywordsの重複のように見えます。どのように違うのですか? – katrielalex

答えて

0

collections.Counterを使用すると、単語数を把握できます。正規表現を使ってページ上のすべての単語をキャッチし、それぞれをカウンターに追加してから次のページに移動します。ルックアップインデックスをすべての単語に対して同時に保存し、一般的な単語(counter[word] > threshold)をフィルタリングするか、ドキュメントを再度実行して、一般的な単語のみのインデックスを作成することができます。

a)これはやや遅くなります b) 'a'、 'the'、 'and'などのような単語を扱う必要があります。

1

すべてのテキストをPythonで文字列として使用している場合は、Natural Language ToolkitをPythonに使用することができます。 from hereをダウンロードできます。

例:

import nltk, re, pprint 
from nltk import FreqDist 

tokens = nltk.word_tokenize(pdf_text) 
text = nltk.Text(tokens) 
fdist = FreqDist(text) 
vocabulary = fdist.keys() 

print vocabulary[:50] # Print the 50 most common words 

基礎の詳細についてはBookChapter 1をチェックしてください。 (xpdfが付属しています)

+0

これは、PDFテキストを文字列として含む変数です。 – betamax

+0

ループの前に 'pdf_text'変数を作成し、PDFのページをループし、各ページを' pdf_text + = text'のような 'pdf_text'に追加する必要があります。 – betamax

+0

はい - 'pdf_text'にPDFのテキストが含まれていれば、上記のコードが動作します。 – betamax

1
  1. 使用pdftotextテキストファイルにあなたのPDFファイルをダンプします。これは、subprocess.callを使ってPythonスクリプトを通して呼び出すことができます。最も一般的な単語を見つけるために

  2. 使用collections.Counter.most_commonまたはntlk

    import collections 
    keywords = collections.Counter(open(<...>).read()).most_common(20) 
    
  3. this questionを参照してください。

関連する問題