12

hOCRファイル(アプリケーションによってtesseractによって生成された)をhtmlテーブルに変換するツールまたはPythonに実装されるアイデアを探しています。アイデアは、hOCR ファイル (bbox 属性で提供される) のテキストの場所情報を利用して、提供された場所に基づいてテーブルを作成することです。上記のアイデアを説明する例を提供しています。

SlideShare.net のこの画像を、tesseract を利用するアプリケーションへの入力として使用し、以下の hOCR/xml ファイルを出力として取得しました。

hOCR ファイル:

  <div class='ocr_page' id='page_2' title='image "sample_slide.jpg"; bbox 0 0 638 479; ppageno 1'>
   <div class='ocr_carea' id='block_1_1' title="bbox 0 0 638 479">
    <p class='ocr_par' dir='ltr' id='par_1' title="bbox 31 104 620 439">
     <span class='ocr_line' id='line_1' title="bbox 32 104 613 138"><span class='ocrx_word' id='word_1' title="bbox 32 105 119 131">done:</span> <span class='ocrx_word' id='word_2' title="bbox 132 104 262 138">working</span> <span class='ocrx_word' id='word_3' title="bbox 273 105 405 138">product,</span> <span class='ocrx_word' id='word_4' title="bbox 419 104 517 132">hotels</span> <span class='ocrx_word' id='word_5' title="bbox 528 104 613 132">listed</span> 
     </span>
     <span class='ocr_line' id='line_2' title="bbox 31 160 471 194"><span class='ocrx_word' id='word_6' title="bbox 31 164 62 187">to</span> <span class='ocrx_word' id='word_7' title="bbox 75 161 122 187">do:</span> <span class='ocrx_word' id='word_8' title="bbox 134 164 227 187">smart</span> <span class='ocrx_word' id='word_9' title="bbox 236 160 330 187">traffic</span> <span class='ocrx_word' id='word_10' title="bbox 342 160 471 194">building</span> 
     </span>
     <span class='ocr_line' id='line_3' title="bbox 32 243 284 280"><span class='ocrx_word' id='word_11' title="bbox 32 243 128 280">seed</span> <span class='ocrx_word' id='word_12' title="bbox 148 243 284 280">round:</span> 
     </span>
     <span class='ocr_line' id='line_4' title="bbox 71 316 619 361"><span class='ocrx_word' id='word_13' title="bbox 71 321 156 356">CEO</span> <span class='ocrx_word' id='word_14' title="bbox 171 319 240 355">will</span> <span class='ocrx_word' id='word_15' title="bbox 260 321 384 356">invest</span> <span class='ocrx_word' id='word_16' title="bbox 517 316 619 361">$30k</span> 
     </span>
     <span class='ocr_line' id='line_5' title="bbox 75 392 620 439"><span class='ocrx_word' id='word_17' title="bbox 75 397 252 433">investor</span> <span class='ocrx_word' id='word_18' title="bbox 489 392 620 439">$120k</span> 
     </span>
    </p>
   </div>
  </div>

必要なのは、次の場所に基づいて hOCR ファイルを html テーブルに変換することです。目的のテーブルは、このテーブルのようになります。

表のセルのサイズと位置は、hOCR ファイルで提供される情報を反映しています。

画像ソース:slideshare.net

4

2 に答える 2

0

これは、いくつかの既存のツールを使用して hocr ファイルをテーブルに変換する方法のアイデアです (元の質問には遅すぎる可能性もあります)。

  1. hocr ファイルを画像ファイルと一緒に取得hocr-pdfし、hocr-tools リポジトリからpdf を作成します https://github.com/tmbdev/hocr-tools#hocr-pdfを参照してください
  2. tabula https://github.com/tabulapdf/tabulaを使用して、pdf からテーブル データを抽出します。
  3. CSV データを HTML テーブルに変換します (このタスク用のツールはたくさんあるはずです)。

tabula は pdf でのみ機能するため、最初のステップのみが必要です。2 番目のステップは、IMO であり、視覚情報から表データを抽出するための主な課題です。アルゴリズムのアプローチについていくつかのアイデアを得たい場合は、そこで詳細を確認することも興味深いかもしれません。

于 2017-03-06T18:18:14.670 に答える