标签: fuzzy-logic

使用 Python 对大数据集进行模糊逻辑

我的团队一直坚持在两个大型数据集上运行模糊逻辑算法。第一个(子集)大约有 180K 行,包含我们需要在第二个(超集)中匹配的人员的姓名、地址和电子邮件。超集包含 250 万条记录。两者具有相同的结构,并且数据已经被清理,即解析地址、标准化名称等。

  • 联系人ID int,
  • 全名 varchar(150),
  • 地址 varchar(100),
  • 电子邮件 varchar(100)

目标是将子集中的行中的值与超集中的相应值进行匹配,因此输出将组合子集和超集以及每个字段(标记)的相应相似性百分比。

  • 联系方式,
  • 查找联系人ID,
  • 全名,
  • 查找全名,
  • 全名_相似度,
  • 地址,
  • 查找地址,
  • 地址_相似度,
  • 电子邮件,
  • 查找电子邮件,
  • 电子邮件_相似度

为了首先简化和测试代码,我们连接了字符串,并且我们知道代码可以在非常小的超集上运行;然而,一旦我们增加记录数量,它就会陷入困境。我们尝试了不同的算法,Levenshtein、FuzzyWuzzy 等,但均无济于事。在我看来,问题在于 Python 是逐行执行的;不过,我不确定。我们甚至尝试使用流式传输在 Hadoop 集群上运行它;然而,它尚未取得任何积极成果。

#!/usr/bin/env python
import sys
from fuzzywuzzy import fuzz
import datetime
import time
import Levenshtein

#init for comparison
with open('normalized_set_record_set.csv') as normalized_records_ALL_file:
# with open('delete_this/xab') as normalized_records_ALL_file:
    normalized_records_ALL_dict = {}
    for line in normalized_records_ALL_file:
        key, value = line.strip('\n').split(':', 1)
        normalized_records_ALL_dict[key] = value
        # normalized_records_ALL_dict[contact_id] = concat_record

def score_it_bag(target_contact_id, target_str, ALL_records_dict): …
Run Code Online (Sandbox Code Playgroud)

python fuzzy-logic fuzzy-comparison fuzzywuzzy record-linkage

4
推荐指数
1
解决办法
7929
查看次数

如何检查两个非结构化街道地址字符串是否相同?

我需要比较两个非结构化地址,并能够确定它们是否相同(或足够相似)。

设想

  • 地址由最终用户以纯文本形式提供。
  • 没有什么可以帮助用户以更可识别的方式书写(没有自动完成,什么都没有。只是一个空文本框)。
  • #102 Nice-Looking Street, Gotham City, NY ”应与“ Nice Loking St., Gotham City, New York, apt 102 ”匹配。
  • 使用第三方服务不是一种选择。
  • 搜索不是问题。我已经有两个字符串了。我需要的是检查它们是否代表相同的地址,尽管它们在结构上有所不同。

我发现了什么

我知道我们可以使用一些模糊逻辑进行这种比较,对拼写错误有一定的容忍度,但是......

  • 有一些关键字(例如,将“Street”与“St.”进行比较或将“#102”与“apt 102”进行比较,或将“NY”与“New York”进行比较)不应惩罚可靠性。
  • 有些词可以按不同的顺序放置(如上例中的 appartement)。

我不想重新发明轮子。在不同的上下文中,这个问题似乎是一个普遍关注的问题,我认为有一种算法(可能稍作修改)可能适合这种情况。

提前致谢

fuzzy string-comparison fuzzy-logic fuzzy-comparison

4
推荐指数
1
解决办法
1614
查看次数

java中的模糊逻辑

我得到了一个涉及模糊逻辑的新项目模块.它是使用模糊逻辑方法确定不同的Hydrometeors.我对模糊逻辑是什么一无所知.所以我想从已经使用Java中的模糊逻辑完成项目的人那里得到一些建议(比如我可以采用的基本编程策略).

我遇到过模糊的logc API.使用它的人请评论它的用途.

java fuzzy-logic

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

模糊逻辑真的能改进简单的机器学习算法吗?

我正在阅读模糊逻辑,我只是​​看不出它在大多数情况下如何改进机器学习算法(它似乎相对经常应用).

例如,k个最近的邻居.如果你有很多属性color: [red,blue,green,orange], temperature: [real number], shape: [round, square, triangle],你可能不会真正模糊这些属性除了真正的编号属性(请纠正我,如果我错了),我不知道这怎么可以改善任何东西比把东西拼凑在一起.

机器模糊逻辑如何用于改善机器学习?大多数时候,您在大多数网站上找到的玩具示例似乎都不适用.

computer-science machine-learning fuzzy-logic data-structures

3
推荐指数
1
解决办法
3928
查看次数

skfuzzy无法识别

我从raspi制作了一个交通信号灯原型。我的源代码给出了一个错误。埃罗说

Traceback (most recent call last):
File "/home/pi/testing.py", line 2, in <module>
import skfuzzy as fuzz
ImportError: No module named 'skfuzzy'
Run Code Online (Sandbox Code Playgroud)

我已经检查过我的raspi上已经安装了scikit-fuzzy,但是无论何时运行,源都无法识别出scikit-fuzzy工具。

这是我的一些源代码:

import numpy as np
import skfuzzy as fuzz
import RPi.GPIO as GPIO
import time

Curr_GtGB=40 
Curr_GtSU=46 
Curr_GtSS=26 
Curr_GtK=12 

GPIO.setwarnings(False)
GPIO.setmode(GPIO.BOARD)

redGB=16
yelGB=18
grenGB=22

redSU=40
yelSU=38
grenSU=36

redSS=33
yelSS=35
grenSS=37

redK=11
yelK=13
grenK=15

GPIO.setup(redGB, GPIO.OUT)
GPIO.setup(yelGB, GPIO.OUT)
GPIO.setup(grenGB, GPIO.OUT)
GPIO.setup(redSU, GPIO.OUT)
GPIO.setup(yelSU, GPIO.OUT)
GPIO.setup(grenSU, GPIO.OUT)
GPIO.setup(redSS, GPIO.OUT)
GPIO.setup(yelSS, GPIO.OUT)
GPIO.setup(grenSS, GPIO.OUT)
GPIO.setup(redK, GPIO.OUT)
GPIO.setup(yelK, GPIO.OUT)
GPIO.setup(grenK, GPIO.OUT)
Run Code Online (Sandbox Code Playgroud)

python fuzzy fuzzy-logic raspberry-pi

3
推荐指数
1
解决办法
5470
查看次数

删除 R 中的模糊重复项

我有一个在 R 中看起来像这样的数据集:

address = c("882 4N Road River NY, NY 12345", "882 - River Road NY, ZIP 12345", "123 Fake Road Boston Drive Boston", "123 Fake - Rd Boston 56789")
            
 name = c("ABC Center Building", "Cent. Bldg ABC", "BD Home 25 New", "Boarding Direct 25")
            
my_data = data.frame(address, name)

                            address                name
1    882 4N Road River NY, NY 12345 ABC Center Building
2    882 - River Road NY, ZIP 12345      Cent. Bldg ABC
3 123 Fake Road Boston Drive …
Run Code Online (Sandbox Code Playgroud)

sql r data-manipulation duplicates fuzzy-logic

3
推荐指数
1
解决办法
1095
查看次数

找到php中两个字符串之间的匹配百分比?

任何人都可以建议我一个更好的方法(或最喜欢的方法)来找到两个字符串之间的匹配百分比(即这两个字符串(例如名称)在百分比方面有多接近)使用模糊逻辑.任何人都可以帮我写代码吗?我真的想知道从哪里开始..

php string string-comparison fuzzy-logic

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

模糊逻辑与人工智能与机器学习与深度学习

这四个科目如何相互不同?据我所知,他们从众多输入数据中学习并输出估计的输出.我的理解非常缺乏,因此我质疑这些.关于人们给出的例子,例如垃圾邮件,苹果橙猫识别,神经网络例子,我没有任何意义.

在一个更简单的例子中是否有更好的代表这四个主题的编码来展示这个概念?我真的很感激.

链接到您认为代码非常简单的示例非常受欢迎.我需要能够更好地获得代码编写概念的东西.

非常感谢!

artificial-intelligence machine-learning fuzzy-logic deep-learning

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

python Fuzzywuzzy 限制,它是如何工作的?

极限是如何与 python 的fuzzywuzzy 模块一起工作的,它是什么意思?

matches = process.extract(query, choices, limit=2, scorer=fuzz.partial_ratio)
Run Code Online (Sandbox Code Playgroud)

fuzzy fuzzy-logic python-3.x fuzzywuzzy

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

运行时错误:matplotlib 不支持生成器作为输入

我正在使用模糊艺术算法来应用我的数据,并且在结果的情况下一切正常,但是当绘制结果时,解释器说:RuntimeError:matplotlib 不支持生成器作为输入。

顺便说一下,我使用 python 作为编程语言和 matplotlib 来绘制结果。

import numpy as np
from sys import argv
import matplotlib.pyplot as plt
from random import shuffle

def scaledList(list):
    min = None
    max = None
    for i in range(len(list)):
        if min is None or min > list[i]:
            min = list[i]
        if max is None or max < list[i]:
            max = list[i]
    for i in range(len(list)):
        list[i] = (float)(list[i] - min)/(max - min)
    #print "min = " + str(min) + ", max = " + …
Run Code Online (Sandbox Code Playgroud)

fuzzy-logic neural-network python-3.x

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