回答

收藏

使用非精确测量(模糊逻辑)查找一系列数据

技术问答 技术问答 198 人阅读 | 0 人回复 | 2023-09-13

每个 产品 可以有很多 细分 行(千)。每个细分市场都有一个 位置 列,该列从每个产品(1、2、3、4、5等)的1开始,还有一个 值; z3 s# l0 S7 I
列,可以包含任何值,例如(323.113、5423.231、873.42、422.64、763.1等)。 )。数据是只读的。) }; q0 Y& a$ m2 r( P: Q8 u
将产品视为一首歌曲,将片段视为该歌曲中的一组音符可能会有所帮助。' o5 m# p2 x. p) L  q1 u1 @  U& X
给定连续片段的子集,例如一首歌曲的片段,我想确定产品的潜在匹配项。但是,由于测量潜在的错误,子集中的片段可能 不 匹配数据库中的部分 正好 。7 L7 m7 m5 r7 T' c
如何通过找到与我所测量的细分子集 最匹配 的商品细分来识别候选商品?另外,数据库是否是此类数据的最佳媒介?# N* H. x: ]  F3 p
--( U- \9 E& q" }8 {. V
这只是关于我将如何解决此问题的一些想法。 请不要将这些作为确切的要求。
0 t: E: m8 F5 Z: y我乐于接受任何一种算法,以使这项工作尽可能地出色。我当时认为需要多个阈值变量来确定紧密度。一种可能性是实现 接近度 阈值和 匹配 阈值。6 g; j1 v6 C) l7 k0 |+ @9 Y  i# p/ M
例如,给定这些值:
7 {* Y0 Z3 U  ?Product A contains these segments: 11,21,13,13,15.
# m' t8 ~; L) k6 v, N! oMeasurement 1 has captured: 20,14,14,15., N& j. }2 \1 B8 T! B& ?2 z: ]5 E
Measurement 2 has captured: 11,21,78,13.& J9 ?0 k$ b2 S
Measurement 3 has captured: 15,13,21,13,11.
4 a( u& A: F9 U1 E1 }( n. @; \+ J如果 接近度 阈值所允许的测量段为1以上或实际段的下方,然后测量1可以匹配产品A,因为尽管许多段不匹配 准确 ,它们相对于实际值的接近度阈值内。7 `" x+ ^& L3 h/ |$ e" G8 u
如果 匹配3 n8 n+ z$ C. ]0 h9 g& Z
阈值允许进行大于等于3的测量,则度量2可能会返回乘积A,因为尽管分段(78)之一远超过了接近阈值,但它仍按正确的顺序匹配了3个分段,因此在 匹配
7 @/ m$ I0 u. c4 F8 ~+ N/ m阈值。- r8 Z% r* \9 ]! X
度量3不会与产品A匹配,因为尽管所有测量的细分都存在于实际细分中,但它们不在接近度或匹配阈值之内。- U# F* s6 j" n4 O
更新: 答案之一是要求我定义 最紧密匹配的
$ A8 C6 ]7 O  O& p含义。我不确定如何回答,但我会继续以歌曲为类比,以进行解释。假设片段代表录制歌曲的最大频率。如果我再次录制同一首歌曲,它将是相似的,但是由于背景噪声和录音设备的其他限制,某些频率将匹配,某些频率将接近,而另一些频率则会偏离。在这种情况下,您将如何定义某条记录何时与另一条记录“匹配”?这就是我要在此问题中使用的匹配逻辑。
% y8 r* X# b- i1 W; I/ A0 a                7 P$ n: E  f( ?2 |
解决方案:
+ J7 P! E/ J. C1 t               
0 S' r0 \: [7 t. K/ C% h  D. j+ w
; `) L, }- o+ B& {
0 W+ E7 t3 d" v4 P! `                如果从字面上看您的歌曲示例,一种方法是将输入简化为位向量指纹,然后在数据库中查找该指纹??作为精确匹配。您可以通过从输入中提取多个指纹和/或尝试使用所有比您的指纹仅1或位错误的位向量来增加找到合适匹配项的机会。: i0 O" M7 i2 P& \
如果您有权访问ACM数字图书馆,则可以在acm = 1321038137_73cd62cf2b16cd73ca9070e7d5ea0744“>
9 U! m7 e& }* ^' a6 w- Z% vhttp://delivery.acm.org/10.1145/1150000/1145312/上的“ Shazam音乐识别服务”中阅读这种方法的说明。4 \7 l0 v3 ]7 ]7 q2 \( B
p44-wang.pdf?ip = 94.195.253.182&acc = ACTIVE%20SERVICE&CFID =
8 {* |" v4 S! k. K' [( j# C53180383&CFTOKEN = 41480065& acm =
7 H$ Z: {: _2 h& C+ u5 C1321038137_73cd62cf2b16cd73ca9070e7d5ea0744.http://www.music.mcgill.ca/~alastair/print-) F+ H5 I- f2 w: k' P
sumer/inger-sumer" R$ s2 G. y: q' Q2 Z) Z' ]  a
.pdf。) I5 E* B, Q) x
您描述的输入格式建议您可以使用http://en.wikipedia.org/wiki/Locality_sensitive_hashing中描述的随机投影方法执行某些操作。
: ~$ ]1 m# z7 J1 E  Y要回答第二个问题,具体取决于位置的确切含义,您可以考虑降低数字以哈希由位或字符组成的指纹,并将其存储在文本搜索数据库中,例如Apache Lucene。
分享到:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则