アップロードされたドキュメントからプレーンテキストを抽出して検索可能にする必要があります。文書はMS Wordまたはpdf(スキャンまたはテキストを含む)です。問題のアプリケーションはLAMPスタック上で動作していますが、他のソフトウェアをインストールすることも可能です。このタスクを達成するために推奨できるツール、サービス、ライブラリ、またはそれらの組み合わせがありますか?文書からテキストを抽出/認識するには?
答えて
textractor rubygemがないようにあなたは、PDFファイルのためのpdftotext
、GoogleドキュメントのためwvWare
、DOCXのためdocx2txt.pl
のようなシェルユーティリティの組み合わせを使用することができます。
# on Ubuntu
apt-get install wv xpdf-utils links
PDFとdocxを抽出するためのネイティブPHPクラスもあります。
TesseractでもあなたのためにOCRを実行する別のルビー宝箱はdocsplitです。
Solrをインデックスと検索に使用することをお勧めします。 Solr Cellプラグインを使用して、Word文書、PDFなどを索引付けして検索することができます。私は私のプロジェクトの1つでそれをうまく使う。 Solr Cellは、Apache POI,TikaおよびPDFBoxのようないくつかのプロジェクトに基づいています。
トリッキーな部分は、すべてのセル依存のjarsとsolrスキーマを設定し、インデックス付けのリクエストパラメータを把握することですが、すべてはwikiドキュメントから考えることができます。 Here's私のjarとスキーマを使い始めるには、スキーマの関連部分が「添付ファイル」を含む行です。
Solr CellはOCRを行いません。最初にOCR Engineを使用して検索可能にする必要があります。
OCRの場合、Googleが開発したOpenSource Engine Tesseractを使用することも、商用エンジンAbbyyを見たいかもしれません。どちらもあなたのPHPスクリプトから実行できるコマンドラインユーティリティとして来る。 AbbyyからTesseractに匹敵する結果を得るには、事前処理と後処理を行う必要があります1。クラウドサービスもありますが、これは簡単なオプションです。たとえば、WisetrendおよびAbbyy Cloudです。後者は現時点ではベータ版であるため、無料ですぐに使用できます。PHP code samplesです。
PDFをテキストに変換するソフトウェアは分かりませんが、MS Wordの部分では、Javaで構築されたApache POI:http://poi.apache.org/を使用して、PHPファイルからバイナリを実行する必要がありますそれを機能させる。
もう一つの選択肢は、私が現在この目的のために使用しているJODConverterを使用することです。http://code.google.com/p/jodconverter/ Apache POIが機能しない場合は、jodconverterが認識します。私は3.0ベータ版を使用しています。
私のPHPコードでは、アップロードファイルを保存し、tmpディレクトリに新しいファイルを作成するtmpディレクトリのファイルにコンバータバイナリを実行しています。新しいファイルからプレーンテキストを取得します。
注:ファイルをstdinで入力するほうが効率的かもしれないので、最初にディスクに保存する必要はありません。問題のuitilityがcliスイッチを提供していない場合、Linuxでは/ dev/stdinを使用できます。 – Maarten
私が懸念している限り、PHPでOCRを使うことはあまりありません。最善の解決策は、クラウドサービスを使用することです。クラウドサービスは、画像をアップロードしてOCRのデータを送り返すWeb APIです。お試しくださいwww.ocrsdk.com、それは最近ABBYYによって開始されたクラウドベースのOCR SDKです。ベータ版になっていますので、完全に無料で使用でき、準備が整ったPHP code samplesです。Disclamer:私は@ ABBYY
面白い!これはソリューションのほんの一部なので、私は代わりに他の答えを編集しました(編集はまだ保留中です)。あなたが私を許してくれることを願っています。 – Maarten
- 1. Word文書からRTF/HTMLテキストを抽出するには?
- 2. PDF文書からテキストを抽出するには?
- 3. jsoupを使用して注文書にテキストを抽出する
- 4. 文字列からのPHPテキスト抽出
- 5. 出力構文解析ツリーからテキストを抽出する
- 6. Java - 文字列からXML文書を抽出する
- 7. 抽出文字列テキストに
- 8. phpはメール本文からテキスト/プレーンを抽出します
- 9. htmlファイルからテキストを抽出する
- 10. HTMLからテキストを抽出する
- 11. PDFファイルからテキストを抽出する
- 12. XMLファイルからテキストを抽出する
- 13. htmlからテキストを抽出する際の奇妙な文字
- 14. テキストの文字列から数字を抽出する - Excel
- 15. phyのテキストからキリル文字/キーワードを抽出する
- 16. どのように特定の矩形領域内のPDF文書からテキストを抽出するには?
- 17. HTML文書からIPアドレスを抽出する
- 18. Word 2007文書からマクロ(VBA)コードをプログラムで抽出する
- 19. PythonのDOCX Word文書からテーブルを抽出する
- 20. テスト用の文書からソースコードを抽出する
- 21. COM /オートメーションを使わずにWord文書からテキストを抽出する最も良い方法は?
- 22. テキストから何かを抽出するには?
- 23. mhtからテキストを抽出します
- 24. テキストからJSONを抽出します。
- 25. アンドロイドの画像からのテキスト認識
- 26. NSMutableStringから文字を抽出する
- 27. Objective-C:URLからテキストを抽出
- 28. テキストの文字列内でテキストを抽出する方法
- 29. ファイルから特定のテキストを抽出する方法は?
- 30. 名前空間を使用するXML文書からデータを抽出する
私はあなたが[OCR](http://en.wikipedia.org/wiki/Optical_character_recognition)のビットが必要と思います – BoltClock
古いスタイルの.docファイルからテキストを抽出することです深刻な痛み。彼らは簡単に解析できるものではありません。 .docxはほとんどの場合、.zmlファイルだけを圧縮しているので、やや簡単です。 –
@BlotClock私は知っています。私はそれが明白であると仮定したので、明示的に言及しなかった。 – Maarten