私はデータベースに多くのベンダーを持っていますが、それらはすべてデータの面で異なります。以前のデータに基づくデータ検証ルールを作成したいと思います。実際のデータに基づいて自動的にパターンを作成するにはどうすればよいですか?
例:
A: XZ-4, XZ-23, XZ-217
B: 1276, 1899, 22711
C: 12-4, 12-75, 12
目標:ベンダーBのためのユーザ入力文字列「XZ-217」の場合、アルゴリズムは、以前のデータを比較し、言う必要があります。この文字列はB以前のデータをベンダーに類似していないです。
このような比較を達成するための良い方法やツールがありますか? Answerにはいくつかの汎用的なアルゴリズムやPerlモジュールがあります。
編集: 「類似性」は定義するのが難しいですが、私は同意します。しかし、私は以前の約100のサンプルを分析し、新しいデータと分析の結果を比較することができたアルゴリズムに注目したいと思います。類似性は、長さ、文字/数字の使用、文字列作成パターン、類似の開始/終了/中間、いくつかの区切り文字を含むことがあります。
私はそれが簡単な作業ではないと感じますが、非常に広い用途。だから私は、すでにいくつかのヒントがあることを願っています。
これは実際には曖昧です。「似ている」のようなものを定義しようとする。あなたが正確な規則を与えない限り、コンピュータは「あ、それは十分に近い」と言うことはできません。たとえば、「X文字以上が共通している」、「同じY文字で始まっています」、「真ん中に同じ記号があります(ダッシュなど)」などがあります。 – FakeRainBrigand
追加の制約をいくつか課すことができない限り、これはかなり難しいでしょう。パターン学習アルゴリズムが 'qr /.*/'を使うことを決める方法を考えてみましょう。 –