15

私は修士論文 - NLP システムを書いています。コンポーネントが 1 つあります - エクストラクタです。

PDFファイルからプレーンテキストを抽出しています。正しく抽出できない PDF ファイルがいくつかあります。Extractor (PDFBox ライブラリ) は、次のような文字列を返します。

"┤xDn║if|d├gDF"Ti&cD╬lh d FÁhis~n ╗xd f«"d┤ffih »h"

また

"10a61a91a22a25a3a27a17a23a20a8a13a14a61a25a17"

この抽出の問題を引き起こす各ファイルをチェックしていましたが、これらすべてのファイルのテキストも PDF リーダー (Adobe Reader および FoxIt リーダー) からコピー アンド ペーストできません。このリーダーでそれらを表示することはできますが、そのコンテンツを選択してクリップボードにコピーした後、同じ間違ったテキストが表示されます (上記のように、意味的に正しくない文字の文字列または数字と文字の文字列)。

誰か助けてくれませんか???

4

7 に答える 7

10

このような場合、Acrobat(リーダー)ウィンドウからテキストを選択してコピーして貼り付けることができない場合は、それでも機能する可能性のある別のオプションがあります。

  • 「ファイル」メニューを開き、
  • [名前を付けて保存...]を選択します。
  • 'テキスト(通常)(*。txt)'を選択します。
  • ターゲットディレクトリを参照し、
  • テキストファイルに使用する名前を入力します。

ファイル内のすべてのページのすべてのテキストがあり、最初にコピーして貼り付けたい場所を見つける必要があります。直接コピーして貼り付けるほど快適ではない場合に限ります。しかし、それはより確実に動作します...。

Linuxでも動作します(ただし、ファイルメニューから[テキストとして保存...]acroreadを選択する必要があります)。

アップデート

pdffontsコマンドラインユーティリティを使用して、PDFで使用されているフォントのクイックショット分析を取得できます。

これは出力例であり、テキスト抽出の問題が発生する可能性が非常に高い場所を示しています。これは、 GitHubリポジトリからのこれらの手作業でコーディングされたPDFファイルの1つを使用します。これは、コメントが付けられ、テキストエディタで簡単に開くことができるPDFサンプルファイルを提供するために作成されました。

$ pdffonts  textextract-bad2.pdf
  name                            type         encoding    emb sub uni object ID
  ------------------------------- ------------ ----------- --- --- --- ---------
  BAAAAA+Helvetica                TrueType     WinAnsi     yes yes yes     12  0
  CAAAAA+Helvetica-Bold           TrueType     WinAnsi     yes yes no      13  0

このテーブルをどのように解釈しますか?

  • 上記のPDFファイルは、2つのサブセット化されたフォント(名前の接頭辞と接頭辞、および列のBAAAAA+エントリで示されている)とを使用しています。CAAAAA+yessubHelveticaHelvtica-Bold
  • どちらのフォントもタイプはTrueTypeです。
  • どちらのフォントもエンコーディングを使用しWinAnsiます(フォントエンコーディングは、PDFソースコードで使用されているchar識別子を描画する必要のあるグリフにマップします)。ただし、フォントの/Helvetica場合のみ、-列の/で示されている/ToUnicodeように、PDF内に使用可能なテーブルがあります(存在しないため)。/Helvetica-Boldyesnouni

この/ToUnicodeテーブルは、文字識別子/コードから文字への逆マッピングを提供するために必要です。

特定のフォントのテーブルがない/ToUnicodeことは、ほとんどの場合、このフォントを使用するテキスト文字列をPDFから抽出またはコピーして貼り付けることができないことを示しています。/ToUnicodeテーブル存在する場合でも、テキスト抽出は問題を引き起こす可能性があります。これは、このテーブルが破損しているか、正しくないか、不完全である可能性があるためです。これは、多くの実際のPDFファイルで見られ、上記のいくつかのコンパニオンファイルでも示されています。リンクされたGitHubリポジトリ。)

于 2011-06-21T12:26:58.230 に答える
6

Adobe Reader でテキストを正常に選択してコピーできる場合 (PDF にテキスト オブジェクトが含まれていることを示しています)、コピーしたテキストをメモ帳に貼り付けることはできず、文字化けのように見えない場合、問題は次のとおりです。おそらく、選択したテキストが使用する CMap に関連しています。

PDF 仕様は、テキスト コンテンツの表示および関連するテキスト コンテンツの抽出のための多くのオプションを提供します。CMap は、文字コードから文字セレクターへのマッピングを指定します。PDF 仕様では、いくつかの事前定義された CMap の概要が示されていますが、他の CMap を埋め込むこともできます。

私の推測では、このテキストの CMap が破損しているか、PDFBox ライブラリがこの特定の CMap をサポートしていません。別の SDK を試して、別の結果が得られるかどうかを確認することをお勧めします。

于 2010-05-28T08:34:51.533 に答える
1

PDFは何で作成されましたか。一部の PDF には、エンコーディング情報が含まれておらず、描画するためのデータのみが含まれています。したがって、データを抽出する方法はありません。

于 2010-05-28T08:43:56.227 に答える
-1

これに対処する最善の方法は、ドキュメントを JPEG として保存することです (Adobe Acrobat などを使用している場合、Reader でこれができるかどうかはわかりません)。次に、すべての画像を単一の pdf として再コンパイルし、OCR 機能を使用してページ内のテキストを検索し、テキストをコピーして貼り付けることができます。

于 2016-07-31T23:16:34.167 に答える
-4

PDF はテキスト文書ではありません。これは、テキストを含めることができるベクター グラフィック形式に近いものです。そのため、OCR を実行する意思がない限り、テキストを抽出できないドキュメントがいくつかあります。仕方ないよ。

于 2010-05-28T02:22:40.863 に答える