标签: fuzzy

模糊数据算法

我正在寻找模糊日期算法.我刚刚开始写一个,并意识到它是一个繁琐的任务.它迅速退化为许多可怕的代码,以应对特殊情况,如"昨天","上周"和"上个月末"之间的差异,所有这些都可以(在某些情况下)指的是同一天但是个别正确根据今天的日期.

我确信必须有一个开源模糊日期格式化器,但我找不到它.理想情况下,我喜欢使用NSDate(OSX/iPhone)及其格式化程序,但这并不困难.有没有人知道模糊日期格式化程序相对于现在采取任何时间段并返回像(但不限于)的字符串:

  • 不久前
  • 在最后五分钟
  • 今日早些时候
  • 今天早上
  • 昨晚
  • 上个星期
  • 上周三
  • 上个月初
  • 去年6月
  • 几年前

在一个理想的世界中,我希望字符串尽可能丰富(即在"刚才之前"返回随机变体,例如"just now").

澄清.我正在寻找比基本的buckts和字符串更微妙的东西.我想要一些知道"昨天"和"上周三"的东西都可以指同一时期,但只有一个是正确的,今天是星期四.

algorithm formatting date fuzzy nsdate

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

django模糊字符串翻译没有显示出来

  1. 为什么有时我会fuzzydjango.po语言文件中获得一个项目.实际上,我已经检查了我的项目,fuzzy字符串项是完全独特的.

    #: .\users\views.py:81 .\users\views.py:101
    #, fuzzy
    msgid "username or email"
    msgstr "9988"
    
    Run Code Online (Sandbox Code Playgroud)
  2. 可以模糊但我的模糊项目的翻译没有显示在页面上,只显示英文版本.这完全是奇怪的.

django fuzzy internationalization

23
推荐指数
2
解决办法
9984
查看次数

模糊匹配重复数据删除小于指数时间?

我有一个大型数据库(可能在数百万条记录中),文本串相对较短(按街道地址,名称等顺序排列).

我正在寻找一种去除不精确重复的策略,模糊匹配似乎是首选方法.我的问题:许多文章和SO问题涉及将单个字符串与数据库中的所有记录进行匹配.我希望立即对整个数据库进行重复数据删除.

前者是线性时间问题(将值与一百万个其他值进行比较,每次计算一些相似性度量).后者是一个指数时间问题(将每个记录的值与每个其他记录的值进行比较;对于一百万条记录,这与前一个选项的1,000,000次计算相比,大约为5 x 10 ^ 11次计算).

我想知道是否有另一种方法,而不是我提到的"蛮力"方法.我想可能生成一个字符串来比较每个记录的值,然后对具有大致相等的相似性度量的字符串进行分组,然后通过这些组运行暴力方法.我不会达到线性时间,但它可能有所帮助.此外,如果我正确地考虑这一点,这可能会错过字符串A和B之间潜在的模糊匹配,因为它们与字符串C(生成的校验字符串)的相似性尽管彼此非常相似但是非常不同.

有任何想法吗?

PS我意识到我可能在时间复杂度上使用了错误的术语 - 这是一个我基本掌握的概念,但不够好,所以我可以在现场将算法放入适当的类别.如果我使用了错误的术语,我欢迎更正,但希望我至少得到了我的观点.

编辑

一些评论者提出,鉴于记录之间的模糊匹配,我的策略是选择要删除哪些(即给出"foo","boo"和"coo",这将被标记为重复并删除).我应该注意,我不是在寻找自动删除.其目的是在6000万个记录数据库中标记可能的重复数据,以供人工审查和评估之用.如果有一些误报,可以,只要它是一个大致可预测/一致的数量.我只需要了解复制品的普遍程度.但是如果模糊匹配传递需要一个月才能运行,那么这首先不是一个选项.

algorithm fuzzy duplicates time-complexity record-linkage

17
推荐指数
1
解决办法
9313
查看次数

用于模糊解析C++的Clang

是否可以通过clang与现有的libclang API解析C++与不完整的声明?即解析.cpp文件,不包括所有标题,动态推断声明.所以,例如以下文字:

A B::Foo(){return stuff();}
Run Code Online (Sandbox Code Playgroud)

将检测未知符号A,使用我的魔法启发式调用我的回调来减去A是一个类,然后用B和Foo和东西以相同的方式调用此回调.最后我希望能够推断出我看到B级的成员Foo返回A,而东西是一个函数..或者是那种效果.上下文:我想看看我是否可以进行合理的语法突出显示和即时代码分析,而无需快速解析所有头文件.

[编辑]为了澄清,我正在寻找非常严格限制的C++解析,可能有一些启发式来解除一些限制.

C++语法充满了上下文依赖性.Foo()是函数调用还是Foo类的临时构造?是Foo <Bar>的东西; 模板Foo <Bar>实例化和变量东西的声明,还是看起来很奇怪2调用重载的运算符<和运算符>?它只能在上下文中讲述,而上下文通常来自解析头文件.

我正在寻找的是一种插入我的自定义约定规则的方法.例如,我知道我没有重载Win32符号,所以我可以安全地假设CreateFile 始终是一个函数,我甚至知道它的签名.我也知道我的所有课程都以大写字母开头,都是名词,函数通常是动词,所以我可以合理地猜测Foo和Bar是类名.在一个更复杂的场景中,我知道我不会像<b> c那样编写无副作用的表达式; 所以我可以假设a始终是模板实例化.等等.

所以,问题是每次遇到未知符号时是否可以使用Clang API回调,并使用我自己的非C++启发式给它一个答案.如果我的启发式失败,那么解析就会失败.我不是在谈论解析Boost库:)我说的是非常简单的C++,可能没有模板,仅限于clang在这种情况下可以处理的最小值.

c++ syntax parsing fuzzy clang

17
推荐指数
3
解决办法
2578
查看次数

违反了CPython中的字符串不变性

这更像是我在Python模块中遇到的"有趣"现象,我试图理解,而不是请求帮助(尽管解决方案也很有用).

>>> import fuzzy
>>> s = fuzzy.Soundex(4)
>>> a = "apple"
>>> b = a
>>> sdx_a = s(a)
>>> sdx_a
'A140'
>>> a
'APPLE'
>>> b
'APPLE'
Run Code Online (Sandbox Code Playgroud)

是的,所以模糊模块完全违反了Python中字符串的不变性.能够这样做是因为它是C扩展吗?这是否构成CPython以及模块中的错误,甚至是安全风险?

此外,任何人都可以想办法解决这种行为吗?我希望能够保持字符串的原始大小写.

干杯,

亚历克斯

python string fuzzy

15
推荐指数
1
解决办法
228
查看次数

Emacs模糊自动完成

我真的很喜欢idoemacs中的模糊匹配.我想拥有自动完成功能.最好随着auto-complete,因为我有ac-python和其他事情设置auto-complete.我知道auto-complete如果找不到正常匹配,则提供模糊匹配,但我通常需要这样.

emacs autocomplete fuzzy ido

12
推荐指数
1
解决办法
2599
查看次数

C#.NET中的模糊日期时间选择器控件?

我正在C#中为winforms应用程序实现模糊日期控件.模糊日期应该能够采用类似的模糊值

  • 去年六月
  • 2小时前
  • 2个月前
  • 上个星期
  • 昨天
  • 去年

等等

是否有"模糊"日期时间选择器的任何示例实现?

任何实现这种控制的想法都将受到赞赏

PS:我知道这里这里所说的模糊日期算法,我真的在寻找开发这种控制的任何想法和灵感

c# user-controls datetime fuzzy winforms

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

计算相对Levenshtein距离 - 有意义吗?

我正在使用Daitch-Mokotoff soundexing和Damerau-Levenshtein来查明用户条目和应用程序中的值是否"相同".

Levenshtein距离应该被用作绝对值吗?如果我有一个20个字母的单词,那么4的距离就不那么糟了.如果这个单词有4个字母......

我现在正在做的是取距离/长度来获得更好地反映单词的百分比变化的距离.

这是一种有效/经证实的方法吗?还是愚蠢的?

compare words fuzzy linguistics levenshtein-distance

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

聚类和matlab

我正在尝试从KDD 1999杯数据集中收集一些数据

文件的输出如下所示:

0,tcp,http,SF,239,486,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,8,8,0.00,0.00,0.00,0.00,1.00,0.00,0.00,19,19,1.00,0.00,0.05,0.00,0.00,0.00,0.00,0.00,normal.
Run Code Online (Sandbox Code Playgroud)

以该格式提供48,000种不同的记录.我已经清理了数据并删除了仅保留数字的文本.输出现在看起来像这样:

在此输入图像描述

我在excel中创建了一个逗号分隔文件并保存为csv文件,然后在matlab中从csv文件创建了一个数据源,我尝试通过matlab中的fcm工具箱运行它(findcluster输出38个数据类型,预计有38列).

然而,群集看起来不像群集,或者它不接受和按照我需要的方式工作.

任何人都可以帮助找到集群吗?我是matlab的新手,所以没有任何经验,我也是新的聚类.

方法:

  1. 选择簇数(K)
  2. 初始化质心(从数据集中随机选择的K个模式)
  3. 将每个模式分配给具有最接近质心的群集
  4. 计算每个簇的平均值作为其新的质心
  5. 重复步骤3,直到满足停止条件(没有模式移动到另一个集群)

这就是我想要实现的目标:

在此输入图像描述

这就是我得到的:

在此输入图像描述

load kddcup1.dat
plot(kddcup1(:,1),kddcup1(:,2),'o')  
[center,U,objFcn] = fcm(kddcup1,2);
Iteration count = 1, obj. fcn = 253224062681230720.000000
Iteration count = 2, obj. fcn = 241493132059137410.000000
Iteration count = 3, obj. fcn = 241484544542298110.000000
Iteration count = 4, obj. fcn = 241439204971005280.000000
Iteration count = 5, obj. fcn = 241090628742523840.000000
Iteration count = 6, obj. fcn = 239363408546874750.000000
Iteration count = 7, obj. fcn = 238580863900727680.000000
Iteration count …
Run Code Online (Sandbox Code Playgroud)

matlab cluster-analysis machine-learning fuzzy data-mining

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

通过模糊匹配名称创建唯一ID(通过使用R的agrep)

使用R,我尝试在按年份和城市构建的数据集中匹配人名.由于一些拼写错误,无法进行精确匹配,因此我尝试使用agrep()来模糊匹配名称.

数据集的样本块结构如下:

df <- data.frame(matrix( c("1200013","1200013","1200013","1200013","1200013","1200013","1200013","1200013",                             "1996","1996","1996","1996","2000","2000","2004","2004","AGUSTINHO FORTUNATO FILHO","ANTONIO PEREIRA NETO","FERNANDO JOSE DA COSTA","PAULO CEZAR FERREIRA DE ARAUJO","PAULO CESAR FERREIRA DE ARAUJO","SEBASTIAO BOCALOM RODRIGUES","JOAO DE ALMEIDA","PAULO CESAR FERREIRA DE ARAUJO"), ncol=3,dimnames=list(seq(1:8),c("citycode","year","candidate")) ))
Run Code Online (Sandbox Code Playgroud)

整洁的版本:

  citycode year                      candidate
1  1200013 1996      AGUSTINHO FORTUNATO FILHO
2  1200013 1996           ANTONIO PEREIRA NETO
3  1200013 1996         FERNANDO JOSE DA COSTA
4  1200013 1996 PAULO CEZAR FERREIRA DE ARAUJO
5  1200013 2000 PAULO CESAR FERREIRA DE ARAUJO
6  1200013 2000    SEBASTIAO BOCALOM RODRIGUES
7  1200013 2004 …
Run Code Online (Sandbox Code Playgroud)

r fuzzy string-matching agrep

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