|
每个 产品 可以有很多 细分 行(千)。每个细分市场都有一个 位置 列,该列从每个产品(1、2、3、4、5等)的1开始,还有一个 值
# A( g& ~2 Z' `! [- i列,可以包含任何值,例如(323.113、5423.231、873.42、422.64、763.1等)。 )。数据是只读的。
0 E+ q' w5 X) r将产品视为一首歌曲,将片段视为该歌曲中的一组音符可能会有所帮助。
' ^( R0 C; m% S! f# e; |给定连续片段的子集,例如一首歌曲的片段,我想确定产品的潜在匹配项。但是,由于测量潜在的错误,子集中的片段可能 不 匹配数据库中的部分 正好 。0 s) o& T4 F' A. t+ D! T, @
如何通过找到与我所测量的细分子集 最匹配 的商品细分来识别候选商品?另外,数据库是否是此类数据的最佳媒介?* q/ A' |0 k$ q H! R
--) Z3 r) Y: C2 ?- [2 q6 T/ {
这只是关于我将如何解决此问题的一些想法。 请不要将这些作为确切的要求。
! O, N* ^( G3 d! f我乐于接受任何一种算法,以使这项工作尽可能地出色。我当时认为需要多个阈值变量来确定紧密度。一种可能性是实现 接近度 阈值和 匹配 阈值。
& c8 T, f% q U' [7 L例如,给定这些值:
, y8 @& l/ d. g7 C3 OProduct A contains these segments: 11,21,13,13,15.
8 u6 L+ Y' r( d2 a! CMeasurement 1 has captured: 20,14,14,15.
$ m9 i J8 _3 P; @7 }! [. g* jMeasurement 2 has captured: 11,21,78,13.
6 V% F- c6 Q, C+ d' h' k w- LMeasurement 3 has captured: 15,13,21,13,11.
3 [% w8 v3 i. R如果 接近度 阈值所允许的测量段为1以上或实际段的下方,然后测量1可以匹配产品A,因为尽管许多段不匹配 准确 ,它们相对于实际值的接近度阈值内。( a! |3 H" c7 v4 v' s/ |" o! p
如果 匹配
6 Z9 p) w( s& Q4 h阈值允许进行大于等于3的测量,则度量2可能会返回乘积A,因为尽管分段(78)之一远超过了接近阈值,但它仍按正确的顺序匹配了3个分段,因此在 匹配
2 L+ G) j. O8 ]$ S6 k/ p+ Q6 g阈值。
! p: W: r9 s. L" D+ s度量3不会与产品A匹配,因为尽管所有测量的细分都存在于实际细分中,但它们不在接近度或匹配阈值之内。
7 s/ l; ~$ `) _更新: 答案之一是要求我定义 最紧密匹配的: d; G" S) g4 {2 B- M
含义。我不确定如何回答,但我会继续以歌曲为类比,以进行解释。假设片段代表录制歌曲的最大频率。如果我再次录制同一首歌曲,它将是相似的,但是由于背景噪声和录音设备的其他限制,某些频率将匹配,某些频率将接近,而另一些频率则会偏离。在这种情况下,您将如何定义某条记录何时与另一条记录“匹配”?这就是我要在此问题中使用的匹配逻辑。; d6 E. {; J0 T8 x2 {, e
4 v4 C9 _8 _/ }( I
解决方案:
+ ~* d3 ?5 q7 B& G' n
' T) A5 P6 {6 m- b$ e b; Q
& {6 I8 u+ l3 d1 p( h" E0 M) o
8 M6 a, J$ R [' A. D5 M p0 t- J 如果从字面上看您的歌曲示例,一种方法是将输入简化为位向量指纹,然后在数据库中查找该指纹??作为精确匹配。您可以通过从输入中提取多个指纹和/或尝试使用所有比您的指纹仅1或位错误的位向量来增加找到合适匹配项的机会。% D$ e+ v$ F- g6 N
如果您有权访问ACM数字图书馆,则可以在acm = 1321038137_73cd62cf2b16cd73ca9070e7d5ea0744“>
2 ?8 [8 d: G5 S5 \# } n0 I) ?0 \http://delivery.acm.org/10.1145/1150000/1145312/上的“ Shazam音乐识别服务”中阅读这种方法的说明。
' n9 c/ r7 f1 y' _" Jp44-wang.pdf?ip = 94.195.253.182&acc = ACTIVE%20SERVICE&CFID =
; @% l, H% k3 b* F( Z53180383&CFTOKEN = 41480065& acm =3 Q7 F% O! |" v" K. U* h. R) c
1321038137_73cd62cf2b16cd73ca9070e7d5ea0744.http://www.music.mcgill.ca/~alastair/print-
- |% w% w' V) \% q# nsumer/inger-sumer
& _0 l" A0 t$ Z8 u.pdf。
/ d, m: w3 x9 ~9 N/ E您描述的输入格式建议您可以使用http://en.wikipedia.org/wiki/Locality_sensitive_hashing中描述的随机投影方法执行某些操作。
* c$ K+ e( V# s% c( E" _7 S7 |2 q" l要回答第二个问题,具体取决于位置的确切含义,您可以考虑降低数字以哈希由位或字符组成的指纹,并将其存储在文本搜索数据库中,例如Apache Lucene。 |
|