3

検索する用語がよくわからないので、私のタイトルはファンキーです...これが私が持っているワークフローです:

  1. 半構造化文書はスキャンしてファイルに保存します。ファイルは OCR でテキストに変換されます。
  2. テキストは Python オブジェクトに解析されます
  3. オブジェクトは、使用するために (SQL、JSON などに) シリアル化されます。

ドキュメントは次のような構造です。

HEADER 何とか、ページ ###

何とか

ゴミ文字…

1. 質問文...

今まで続けた。A. 選択テキスト...

adsadsf。B. 別の選択肢...

2. 別の質問...

質問と選択肢を抽出する必要があります。問題は、テキストが OCR 出力であるため、'2' -> 'Z' のような奇妙な置換が時折あり、通常の正規表現が役に立たなくなることです。私は Levenshtein モジュールを試してみましたが、役に立ちましたが、予想される編集距離について事前に知っておく必要があります。

パーサーを作成しようとしているかどうかわかりません。レクサー?他の何か?これは、あらゆる種類の興味深いが無関係な道に私を導きました. ガイダンスをいただければ幸いです。また、テキストは通常​​、特定の技術分野のものであるため、一般的なスペル チェック ツールはあまり役に立ちません。

文書の構造に関しては、改行やインデントなどの明確な視覚的パターンはありませんが、「質問」は通常行の先頭にあるという事実を除いては. ドキュメントのがらくたは、実際の行頭の前に文字を表示させる可能性があります。これは、r'^[0-9]+' の行に沿った何かが確実に機能しないことを意味します。

「質問」は常にint、ピリオド、スペースで始まりますが。OCR は、他の文字を置き換えたり、文字をスキップしたりできます。これは、Tesseract や Cunieform ではそれほど問題ではなく、紙の文書の質が悪いためです。

#

注: 問題のプロジェクトでは、ソリューションのコーディングに時間を費やすよりも、OCR されたテキストを人間が準備する方がよいと判断されました。しかし、私はまだ良いポインタが大好きです。

4

1 に答える 1

1

あなたのステートメントから理解できることから、あなたはパーサーを構築しようとしているかもしれません。あいまいな要件と例が提供されているので、nltk.orgを確認することから始めることをお勧めします。別の選択肢はgate.ac.ukかもしれません

于 2012-07-24T14:44:01.637 に答える