标签: fuzzy-search

是否可以在没有SSIS的情况下执行T-SQL模糊查找?

SSIS 2005/2008进行模糊查找和分组.是否有一个功能在T-SQL中执行相同的操作?

t-sql sql-server ssis fuzzy-search

9
推荐指数
2
解决办法
2万
查看次数

如何在一个句子中模糊匹配单词到一个完整单词(并且只有完整单词)?

常见的拼写错误的英文单词是两个或三个印刷错误(的取代的组合,内小号,插入,还是信缺失d从他们正确的形式).即单词对中的错误absence - absense可以概括为具有1s,0i0d.

可以使用to-replace-re regex python模块进行模糊匹配以查找单词及其拼写错误.

下表总结了从一些句子中对一个感兴趣的词进行模糊分段的尝试:

在此输入图像描述

  • Regex1 wordsentence允许最多2个错误时找到最佳匹配
  • Regex2找到最佳word匹配,sentence允许最多2个错误,同时尝试仅操作(我认为)整个单词
  • Regex3找到最佳word匹配,sentence允许最多2个错误,同时仅操作(我认为)整个单词.我错了.
  • Regex4找到最佳word匹配,sentence允许最多2个错误,而我(我认为)寻找匹配结束为单词边界

我如何编写一个正则表达式,如果可能的话,在这些单词 - 句子对上消除假阳性和假阴性模糊匹配?

一种可能的解决方案是仅将句子中的单词(由空格包围的字符串或行的开头/结尾)与感兴趣的单词(主要单词)进行比较.如果主要单词和句子中的单词之间存在模糊匹配(e <= 2),则从句子中返回该完整单词(并且仅返回该单词).

将以下数据帧复制到剪贴板:

            word                  sentence
0      cub cadet              cub cadet 42
1        plastex              vinyl panels
2            spt  heat and air conditioner
3     closetmaid                closetmaid
4          ryobi           batteries kyobi
5          ryobi …
Run Code Online (Sandbox Code Playgroud)

python regex fuzzy-search

9
推荐指数
1
解决办法
722
查看次数

如何快速查找工作区中的文件/在缓冲区/等之间切换.在Eclipse中?

我正在寻找类似Textmate在Command-T上的模糊搜索,在Vim中使用FuzzyFinder或在Emacs中使用Ido的东西.它存在吗?如果不是,你更喜欢这样做?

eclipse textmate fuzzy-search ido-mode fuzzyfinder

8
推荐指数
1
解决办法
5441
查看次数

阈值滤波器C#的模糊匹配

我需要实现某种形式:

string textToSearch = "Extreme Golf: The Showdown";
string textToSearchFor = "Golf Extreme Showdown";
int fuzzyMatchScoreThreshold = 80; // One a 0 to 100 scale
bool searchSuccessful = IsFuzzyMatch(textToSearch, textToSearchFor, fuzzyMatchScoreThreshold);
if (searchSuccessful == true)
{
    -- we have a match.
}
Run Code Online (Sandbox Code Playgroud)

这是用C#编写的函数存根:

public bool IsFuzzyMatch (string textToSearch, string textToSearchFor, int fuzzyMatchScoreThreshold)
{
   bool isMatch = false;
   // do fuzzy logic here and set isMatch to true if successful match.
   return isMatch;
}
Run Code Online (Sandbox Code Playgroud)

但我不知道如何在IsFuzzyMatch方法中实现逻辑.有任何想法吗?也许为此目的有一个现成的解决方案?

c# fuzzy-search fuzzy-logic

8
推荐指数
2
解决办法
6376
查看次数

修改Windows 7开始菜单搜索算法?

我非常喜欢Sublime Text 2用于其命令调色板的模糊匹配搜索算法,我希望创建类似于通过Windows 7开始菜单搜索运行的东西.

我已经找到了适用于.NET FrameworkWindows API代码包,但它似乎只提供了用于在我自己的应用程序中使用现有Windows搜索的API挂钩.

有没有办法修改或替换"开始"菜单搜索用于搜索已安装的应用程序和文件的搜索算法?

search fuzzy-search windows-search windows-7

8
推荐指数
1
解决办法
524
查看次数

Ruby中字符串字典中的快速模糊/近似搜索

我有一个50K到100K字符串的字典(最多可以有50多个字符),我试图找到一个给定的字符串是否在字典中具有一些"编辑"距离容差.(例如Levenshtein).在进行搜索之前,我很好地预先计​​算任何类型的数据结构.

我的目标是尽可能快地对该字典运行数千个字符串并返回最近的邻居.我会很好的只是得到一个布尔值,说明一个给定是否在字典中,如果有一个明显更快的算法这样做

为此,我首先尝试计算所有Levenshtein距离并采取最小值并且显然非常慢.所以我尝试在这篇文章的基础上实现Levenshtein Trie http://stevehanov.ca/blog/index.php?id=114

请参阅我的要点以重现基准:https://gist.github.com/nicolasmeunier/7493947

以下是我在机器上的一些基准测试:

编辑距离0(完美匹配)

Benchmark.measure { 10.times { dictionary.search(random_word, 0) } }
<Benchmark::Tms:0x007fa59bad8908 @label="", @real=0.010889, @cstime=0.0, @cutime=0.0, @stime=0.0, @utime=0.00999999999999801, @total=0.00999999999999801> 
Run Code Online (Sandbox Code Playgroud)

*编辑距离2,变得慢很多*

Benchmark.measure { 10.times { dictionary.search(random_word, 2) } }
<Benchmark::Tms:0x007fa58c9ca778 @label="", @real=3.404604, @cstime=0.0, @cutime=0.0, @stime=0.020000000000000018, @utime=3.3900000000000006, @total=3.4100000000000006>
Run Code Online (Sandbox Code Playgroud)

它从那里走下坡路,并且编辑距离大于2时变得非常慢.(每个测试字符串的平均值超过1秒).

我想知道如何/如果我可以显着加快这一点.如果现有的解决方案已经在ruby/gem中实现,我也不想重新发明轮子......

编辑1:在我的情况下,我希望我与字典匹配的大多数字符串不在那里.因此,如果有任何算法可以快速丢弃字符串,那可能会有所帮助.

谢谢,尼古拉斯

ruby algorithm performance fuzzy-search levenshtein-distance

8
推荐指数
2
解决办法
2226
查看次数

通过正则表达式进行模糊匹配

如何通过正则表达式进行“模糊搜索”?

例如,文本“hplaptop”可能是以下任意一项的模糊匹配:

xxx hp laptop
hp xxx laptop
laptop xxxxx hp
Run Code Online (Sandbox Code Playgroud)

regex fuzzy-search

8
推荐指数
1
解决办法
1万
查看次数

以模糊的方式获得正则表达式组

我有一个很大的单词列表(大约200k):

["cat", "the dog", "elephant", "the angry tiger"]
Run Code Online (Sandbox Code Playgroud)

我用模糊创建了这个正则表达式:

regex = "(cat){e<3}|(the dog){e<3}|(elephant){e<3}|(the angry tiger){e<3}"
Run Code Online (Sandbox Code Playgroud)

我输入了句子:

sentence1 = "The doog is running in the field"
sentence2 = "The elephent and the kat"
...
Run Code Online (Sandbox Code Playgroud)

我想得到的是:

res1 = ["the dog"]
res2 = ["elephant", "cat"]
Run Code Online (Sandbox Code Playgroud)

我试过这个例子:

re.findall(regex, sentence2, flags=re.IGNORECASE|re.UNICODE) 
Run Code Online (Sandbox Code Playgroud)

但这输出了我:

["elephent", "kat"]
Run Code Online (Sandbox Code Playgroud)

知道如何用正确的单词得到正确的答案吗?我想要的是为每场比赛获得正则表达式捕获组,但我很难这样做.

也许我不这样做的权利,也许正则表达式的方法是不好的一个,但if item in list有一个for循环是太长的方式来执行.

python regex string fuzzy-search

8
推荐指数
1
解决办法
167
查看次数

如何模糊搜索单个sqlite3字段

我在一个基本的 CRUD 应用程序中有一堆行,我想让用户按标题进行搜索。SQLite3有全文搜索解决方案,但是否建议也使用它进行非全文搜索,或者有更简单的方法吗?例如,PostgreSQL 有 trigrams,对于这个简单的用例来说,它的功能非常好,也许 SQLite3 也有类似的东西。

我觉得这个问题以前肯定已经回答过,但我找不到这样的答案,所以如果这是重复的,我很抱歉。

sqlite search fuzzy-search

8
推荐指数
1
解决办法
1万
查看次数

是否可以在 Windows 10 git-bash 中使用 fzf(命令行模糊查找器)?

我下载了 .exe 文件并将其放入我的 PATH 变量中。fzf似乎在命令提示符下工作。但我想在 git-bash 中使用它。当我fzf在 git-bash 中使用时,它似乎开始了,但没有任何反应。

任何意见将是有益的。我试图为自己节省一些按键。

windows bash fuzzy-search git-bash fzf

8
推荐指数
1
解决办法
2729
查看次数