1

私が遊んでいる実験的なプロジェクトでは、テキストデータを見て、表形式のデータが含まれているかどうかを検出できるようにしたいと考えています。もちろん表形式のデータのように見えるケースも多いので、共通点を探すにはどのようなアルゴリズムを研究すればいいのだろうと考えていました。

私が最初に考えたのは、タブで区切られたデータをチェックする長い switch/case ステートメントを書き、次にパイプ記号で区切られたデータの別のケース、さらに別の方法で区切られたデータの別のケースなどを書くことでした。検出するさまざまなもののリストを作成する必要がありますが、これらの機能を検出するには、各タイプを比較的ゆっくりと検索するよりもインテリジェントな方法があるのではないかと考えました。

この質問は特に雄弁に語られているわけではないので、意味があることを願っています!

何か案は?

(これにタグを付ける方法もわかりません-そのため、助けを歓迎します!)

4

3 に答える 3

1

混合ソリューション、つまり、提案したように単純なヒューリスティック(「スイッチのような」方法で処理される)で最も一般的/明白なケースを処理し、自動学習や他のタイプの分類子ロジック。

于 2009-11-13T20:46:08.543 に答える
1

これは、TSV に格納されている定義済みの型がまだないことを前提としています。

通常、TSV ファイルは [Value1]\t[Value..N]\n

私の提案は次のとおりです。

  1. すべてのタブを数えます
  2. すべての改行を数えます
  3. 最初の行の合計タブを数える
  4. タブの総数を最初の行のタブで割ります

結果が 4 で余りが 0 の場合は、TSV ファイルの候補があります。そこから、次のことを行うことができます。

  1. データの読み取りを続行し、1 行あたりの予測されたタブより少ないまたは多い行のエラーを無視できます。
  2. 読む前に各行をスキャンして、すべてが一貫していることを確認できます
  3. フォーマットに合わない行まで読み込んでからエラーを投げることができます

タブで区切られた値の量を適切に予測したら、正規表現を使用して値を [グループとして] 解析できます。

于 2009-11-13T21:21:05.440 に答える
1

信頼できる唯一の方法は、機械学習を使用することです。たとえば、表形式および非表形式のマテリアルの例のスタックでパーセプトロン分類器をトレーニングできます。

于 2009-11-13T20:39:09.707 に答える