これは、より複雑なフォローアップの質問です。連続した値を検索する効率的な方法
各製品には、多くのセグメント行(数千)を含めることができます。各セグメントには、各製品(1、2、3、4、5など)の1から始まる位置列と、(323.113、5423.231、873.42、422.64、763.1など)などの任意の値を含むことができる値列があります。 )。データは読み取り専用です。
製品を曲として、セグメントを曲の音符のセットとして考えると役立つ場合があります。
曲のスニペットなど、連続するセグメントのサブセットを前提として、製品に一致する可能性のあるものを特定したいと思います。ただし、測定値にエラーが発生する可能性があるため、サブセット内のセグメントがデータベース内のセグメントと正確に一致しない場合があります。
測定したセグメントのサブセットに最も近い製品のセグメントを見つけることで、製品候補を特定するにはどうすればよいですか?また、データベースはこのタイプのデータに最適なメディアですか?
-
これが、私がこの問題にどのように取り組んでいたかについてのいくつかの考えです。これらを正確な要件と見なさないでください。私は、これを可能な限り最高に機能させるために、あらゆる種類のアルゴリズムを受け入れています。近さを判断するには、複数のしきい値変数が必要だと考えていました。1つの可能性は、近接しきい値と一致しきい値を実装することです。
たとえば、次の値が与えられます。
Product A contains these segments: 11,21,13,13,15.
Measurement 1 has captured: 20,14,14,15.
Measurement 2 has captured: 11,21,78,13.
Measurement 3 has captured: 15,13,21,13,11.
近接しきい値により、測定されたセグメントが実際のセグメントより1上または下になる場合、測定1は製品Aと一致する可能性があります。これは、多くのセグメントが正確に一致しない場合でも、実際の値に対して近接しきい値内にあるためです。
一致しきい値が3以上の一致の測定に許可されている場合、測定2は製品Aを返す可能性があります。これは、セグメントの1つ(78)が近接しきい値をはるかに超えているにもかかわらず、正しい順序で3つのセグメントに一致しているため、一致しきい値。
測定されたすべてのセグメントは実際のセグメントに存在しますが、近接または一致のしきい値内にないため、測定3は製品Aと一致しません。
更新:回答の1つで、最も厳密に一致することの意味を定義するように求められました。どう答えたらいいのかよくわかりませんが、歌のアナロジーを続けて説明しようと思います。セグメントが録音された曲の最大周波数を表すとしましょう。同じ曲をもう一度録音すると似たようなものになりますが、バックグラウンドノイズや録音機器のその他の制限により、周波数の一部が一致し、一部が近くなり、一部がかなり離れます。このシナリオでは、ある録音が別の録音と「一致」するタイミングをどのように定義しますか?これは、この問題で使用するために私が探しているのと同じ種類のマッチングロジックです。