3

pdf から抽出したさまざまなデータ構造を含む何百万もの単純な txt ドキュメントがあり、テキストは行ごとに印刷されるため、すべての書式設定が失われます (書式を維持するためのツールを試したところ、めちゃくちゃになってしまったためです)。このテキスト ドキュメントからフィールドとそこの値を抽出する必要がありますが、これらのファイルの構造にはいくつかのバリエーションがあります (あちこちに新しい行があり、一部のシートにノイズがあるためスペルが正しくありません)。

キーワードと値の座標 (行、単語/単語番号) に関する情報を使用してある種のテンプレート構造を作成し、この情報を使用して、さまざまなアルゴリズムを使用してそのようなキーワード値を見つけて収集し、一貫性のない書式設定を補うと考えていました。

これを行う標準的な方法、役立つリンクはありますか? 他のアイデアはありますか?

4

5 に答える 5

1

このノイズは、agrep などのファジー テキスト マッチング ツールを使用して修正または無視できます。http://www.tgries.de/agrep/ ただし、余分な改行の問題は残ります。

私が提案する 1 つの手法は、コンパイラと同様の方法でエラーの伝播を制限することです。たとえば、テンプレートやパターンに一致させようとしても、それはできません。テキストの後半に確実に一致するものがありますが、それは現在の一致しないパターンの一部である可能性があります。この場合、確実に一致したものを受け入れて、一致しなかったテキストのチャンクを将来の処理のために取っておく必要があります。これにより、解析が難しすぎるエラーをスキップできます。

于 2011-05-06T21:11:11.677 に答える
1

ここではLarry Wall のPerlがあなたの友達です。これはまさに、それが優れている問題領域の一種です。

Sed は問題ありませんが、この種の考えでは、Perl はミツバチの膝です。

于 2011-05-06T21:11:41.877 に答える
1

ここでは、非常に弱いルールと最終承認述語を使用して、グラフの正規表現を使用することをお勧めします。ここでは、トークン レベルでファジー マッチングを記述し、次に行レベルで記述できます。

于 2011-05-07T10:53:21.443 に答える
1

Talend データ統合ツールをお勧めします。これはオープン ソースです (つまり、無料です)。これは Java 上に構築されており、基礎となる Java コードを変更することで、好きなようにデータ統合プロジェクトをカスタマイズできます。

私はそれを使用しましたが、低予算の非常に複雑なデータ統合プロジェクトで非常に役立つことがわかりました. ここに彼らの WEB サイトへのリンクがあります。タレント

幸運を。

于 2011-05-09T12:53:49.340 に答える
1

私は Unix コマンドラインと Perl の推奨事項に賛成ですが、役立つ可能性がある高レベルのツールはGoogle Refineです。乱雑な実世界のデータを処理するためのものです。

于 2011-05-07T04:58:47.243 に答える