gpt4 book ai didi

python - 针对现有数据集重复删除一个新行

转载 作者:行者123 更新时间:2023-12-04 17:35:49 26 4
gpt4 key购买 nike

我正在使用 dedupe python library .

任何代码示例都可以,对于 example this .

假设我有一个训练有素的deduper,并用它成功地对数据集进行了去重。

现在我向数据集添加一个新行。

我想检查这个新行是否重复。

有没有办法在去重中做到这一点(无需重新分类整个数据集)?

更新:我已经尝试了@libreneitor 的建议,但我只是得到 No records have been blocked together。您尝试匹配的数据是否与您训练的数据相同? 这是我的代码 ( csv file ):

import csv
import exampleIO
import dedupe

def canonicalImport(filename):
preProcess = exampleIO.preProcess
data_d = {}
with open(filename) as f:
reader = csv.DictReader(f)
for (i, row) in enumerate(reader):
clean_row = {k: preProcess(v) for (k, v) in
viewitems(row)}
data_d[i] = clean_row
return data_d, reader.fieldnames

raw_data = 'tests/datasets/restaurant-nophone-training.csv'

data_d, header = canonicalImport(raw_data)

training_pairs = dedupe.trainingDataDedupe(data_d, 'unique_id', 5000)

fields = [{'field': 'name', 'type': 'String'},
{'field': 'name', 'type': 'Exact'},
{'field': 'address', 'type': 'String'},
{'field': 'cuisine', 'type': 'ShortString',
'has missing': True},
{'field': 'city', 'type': 'ShortString'}
]

deduper = dedupe.Gazetteer(fields, num_cores=5)
deduper.sample(data_d, 10000)
deduper.markPairs(training_pairs)
deduper.train(index_predicates=False)

alpha = deduper.threshold(data_d, 1)

data_d_test = {}
data_d_test[0] = data_d[0]
del data_d[0];

clustered_dupes = deduper.match(data_d, threshold=alpha)
clustered_dupes2 = deduper.match(data_d_test, threshold=alpha) <- exception here

最佳答案

您可以 match针对您现有的新行 Dedupe .

但是如果您已经实现了去重数据集,您可以使用 Gazetteer添加更多独特的数据,然后调用 match再次。

关于python - 针对现有数据集重复删除一个新行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56638016/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com