現在、pyPdf と extractText() を使用して pdf ページのページ オブジェクトを作成すると、行が連結されます。たとえば、ページの 1 行目が「hello」で 2 行目が「world」の場合、extractText() から返される結果のテキストは「hello world」ではなく「helloworld」になります。誰かがこれを修正する方法を知っていますか、または回避策の提案がありますか? このpdfテキストでテキストマイニングを行っており、行間にスペースがないとそれが殺されるため、テキストの行間にスペースが必要です....
5107 次
1 に答える
2
これは、pdf の解析でよくある問題です。場合によっては修正が必要な末尾のダッシュも期待できます。ここで簡単に説明するプロジェクトの1つの回避策を思いつきました。
pdfminerを使用して PDF から XML を抽出したところ、XML 内に連結された単語も見つかりました。同じ PDF を HTML として抽出しました。HTML は、次の正規表現の行で記述できます。
<span style="position:absolute; writing-mode:lr-tb; left:[0-9]+px; top:([0-9]+)px; font-size:[0-9]+px;">([^<]*)</span>
スパンは絶対的に配置され、改行が発生したかどうかを判断するために使用できるトップ スタイルがあります。改行が発生し、最後の行の最後の単語にダッシュが付いていない場合、最後の行の最後の単語と現在の行の最初の単語を区切ることができます。詳細は難しいかもしれませんが、ほとんどすべてのテキスト解析エラーを修正できる可能性があります。
さらに、テキストにenchantなどの辞書ライブラリを実行してエラーを見つけ、辞書によって提案された修正がエラー ワードのようであるが、どこかにスペースがある場合、エラー ワードは解析エラーである可能性が高く、修正できます。辞書の提案で。
PDF の解析は面倒です。より良いソースを見つけたら、それを使用してください。
于 2009-11-04T11:04:33.867 に答える