|
|
1
1
作为第一个切入点,我只需选择那些足够接近相同长度的字符串,它们可以在给定的概率内匹配。这不是很有选择性,但(除非你指定了非常宽松的公差)可能会消除相当大比例的不可能匹配 非常 迅速地(例如,对于像Levenstein这样将插入计数为1次操作的编辑度量,如果您从长度为5的字符串开始,并且需要在5次操作内匹配,那么您可以消除所有长度超过10的字符串,而无需进一步检查)。 这是否有足够的选择性,可以直接进行昂贵的比较,这是一个悬而未决的问题——显然,这将取决于你匹配的字符串长度的可变性。 |
|
|
2
1
我通过做以下事情终于成功地进行了预选: 1.使用客户记录的某些字段来构建2Grams 2.将具有6个Minhash函数家族的2Grams Minhash转换为192位签名 3.使用boost::geometry库的rtree实现在签名上创建6维空间索引 4.为我正在比较的记录选择最近的k条(在我的情况下为30条)记录,并对这些候选者进行原始的“昂贵”比较 5.这将复杂性从E(i,i=n,i=1)降低到大约30n+m,其中m是建立索引所需的时间(令人惊讶的是,几乎可以忽略不计)。 我现在可以在60秒内以高精度运行15000次比较,这是在单线程测试中完成的。多线程到4或8核,这将运行得更快。 |
|
Ben · 统计向量中的单词在字符串中出现的频率 1 年前 |
|
|
bear_525 · 从列中删除中间名和首字母,并保存在单独的列中 1 年前 |
|
|
asdfadf · 为什么具有相同内存值的字符串和整数打印方式不同? 1 年前 |
|
|
user764754 · 防止多行原始字符串文字中出现新行字符 1 年前 |
|
|
Bogaso · 从列表中返回与模式匹配的元素 1 年前 |
|
|
Jasco · 如何使用VBA提取两个相似字符之间的字符串中的单词? 1 年前 |