5

PDFMiner を使用して外国語の PDF ファイルからテキストを抽出しようとしていますが、ToUnicode ステートメントによって失敗しています。このファイルは、通常の PDF ビューアでも奇妙な動作をします。

たとえば、ファイル内の一部のテキストのスクリーンショットを次に示します。

正しいテキスト

しかし、テキストを選択してコピーすると、次のようになります。

िनरि</p>

いくつかの文字、特に最後から 2 番目の文字が変更されていることがわかります。

当然のことながら、PDFMiner は間違ったテキストを抽出します。しかし、どの PDF ビューアでもこれらのデータを正しく表示できます。問題は、ToUnicode マップか、文字が結合されたものであると思われます。目的の文字は、0x915、0x94D、0x937 のシーケンスである必要があります。PDFMiner は、別の文字を表す 0x915 のみを報告します。

PDFMiner がテキストを正しく抽出するには、つまり、コピーして貼り付けたテキストではなく画像のようにするにはどうすればよいですか?

問題の PDF へのリンクを次に示します。

4

1 に答える 1

9

要するに:

PDF には、OCR を使用せずに正しいテキストを抽出するために必要な情報が含まれていません。

詳細に:

ToUnicodeマップと、PDF に埋め込まれた Mangal-Regular のサブセットのフォント プログラムの Unicode エントリの両方で、これらの 4 つのグリフが

0x915 であると主張する 4 つのグリフ

すべて同じ Unicode コード ポイント 0x915 を表します。

したがって、描画されたグリフを調べない (つまり、OCR を試行しない) テキスト抽出プログラムは、これらのグリフのいずれかに対して 0x915 を返します。

バックグラウンド:

PDF ビューアではテキストが正しく表示されるのに、テキスト抽出 (コピー & ペーストまたは PDFMiner) では正しく抽出されないのはなぜでしょうか。

その理由は、形式としての PDF にはテキスト自体が含まれていないためです。これには、埋め込みフォント プログラムのグリフ描画命令へのポインター (直接ポインターまたはマッピング経由) が含まれています。これらのポインターを使用すると、PDF は期待どおりに描画されます。

さらに、そのようなグリフ ポインタを Unicode コード ポイントにマッピングする追加情報を含めることができます。このような追加情報は、テキスト抽出プログラムによって使用されます。PDF の場合、これらのマッピングが正しくないため、抽出されたテキストが正しくありません。

于 2015-02-24T11:33:19.023 に答える