4

Apache Solrを使用してpdfを検索できるアプリケーションを作成しています。PDFで特定の用語を見つけるのに苦労していました。

列の単語が追加されていることに気付きました。

 Column1 | Column2
 stack   | overflow

ここで、PdftextStripper は抽出されたテキストとしてスタックオーバーフローを表示することがあります。これにより、solr で不適切なトキナゼーションが発生し、用語を見つけることができなくなります。(はい、ワイルドカードを使用できることはわかっていますが、フレーズ クエリでは機能しません)

ソースを調べて、問題の原因を確認しました。しかし、writePage メソッドはスペースを推測する必要があるようです。非常に複雑に見えるため、これを実際に変更することはできません。

列を含む pdf から適切なテキストを抽出するための他の解決策はありますか?

  • 他のプログラムの何らかの変換かもしれません。
  • 多分pdfboxのパッチ。
  • はい、同様の質問を見てきましたが、ほとんどの場合、抽出の順序を処理します (私の場合はそれほど重要ではありません)。
4

1 に答える 1

0

PDFboxでテキストを抽出しているときに同じ問題が発生しました。各キャラクターの位置情報を取得することで、この問題を解決しました。各キャラクターのx位置とy位置を取りました。そして、単語を区別するための単純なロジックを実装しました。それ以前は、私の単語の区切り文字は「」(スペース)だけでした。2つの文字のX位置の差が特定の値を超えており(この値が選択されます)、同じ行にある場合、つまり同じy座標であるというロジックをもう1つ追加しました(異なるy座標は確かに新しい単語)、私はそれらを新しい単語として扱いました。このロジックを使用して、テーブルの内容や改行などの問題を解決することができました。

このリンクは、PDFboxを使用してpdfから文字の位置を取得するのに役立ちます。

于 2012-12-21T06:03:41.970 に答える