1
  • 私はPDFドキュメントから読み取り可能なコンテンツ(つまりテキスト)を取得することに取り組んでいます。そのほとんどは科学雑誌の記事です。
  • Popplerテキストユーティリティを使用してPDFをテキスト形式に変換しています。
  • テキストはうまく抽出されますが、残念ながら、記事の他のコンポーネント(数値表など)も同様であり、プレーンテキストで適切にレンダリングすることはできません。
  • たとえば、記事の途中で次の出力が表示される場合があります。

    文字分布ランダムHmax

    1 2 3 4

    組織c)(種を超えたキャラクターの

    A

    B

    A 0 0 0 + C

    B + + + +

    C + + + + A

    B 4+

    H文字分布非ランダムホブ

    エントロピ

    3+ 2+ 1+

    (種に対するキャラクターの多様性

私の質問は、そのような「ノイズ」をどのように識別し、それを通常のテキストブロックと区別するのかということです。既存のアルゴリズムはありますか?私はRubyで作業していますが、どの言語のコードでも役に立ちます。

4

1 に答える 1

1

単純ベイズ分類器を使用して、有効な線と無効な線をモデル化できます。

これがRubyの記事です; Pythonのnltkには優れた実装があります。

設定するには、例を示す必要があります。たとえば、1つのファイルに適切な行を入力し、もう1つのファイルに不適切な行を入力します。これは、スパムフィルターで使用されるのと同じモデルです。

このユースケースの1つのトリックは、多くの基本的な単純ベイズ分類器が機能の単語出現モデルを使用して単語を使用することですが、ここでは重要な語彙ではありません。行の長さ、スペースのパーセント(5%または10%の間隔に丸められる)、またはさまざまな句読点のパーセント(丸められますが、より高い精度)を使用する必要がある場合があります。うまくいけば、分類子は「ピリオドがなく、スペースが30%ある行は悪い」、または「すべての単語が大文字で始まる句読点がない行は悪い」ことを学習します。

ただし、上記の例だけに基づいて、スペースの比率が高すぎる行や、コンマやピリオドなどの文の句読点が完全に不足している行を拒否する可能性があります。

于 2012-09-27T01:54:14.287 に答える