Включить отсечение очков в мой проект сопоставления строк Fuzzywuzzy, чтобы совпадения были только выше, чем оценка x - PullRequest
0 голосов
/ 12 мая 2018

Я переработал кучу кода повсюду, чтобы создать сопоставление строк для двух имеющихся у меня CSV-файлов.

Вывод моего кода прямо сейчас - это 3 самых высоких совпадения на строку. Я хочу дополнительно включить отсечение ниже определенного балла матча. Так, чтобы отображались только совпадения выше этого балла. Я думал, что это будет легко, так как в соответствии с документацией я могу просто включить параметр Score_cutoff в функцию process.extract, но по какой-то причине это не является приемлемым вводом.

Вот код, который у меня сейчас есть:

from fuzzywuzzy import process
import pandas as pd
import os



def StringMatch (master, testfile, num_match: object = 3):
    master_names = master.iloc[:,3]
    test_names = testfile.iloc[:,0]    
    fhp_new = [process.extract(x, master_names, limit=limit) for x in test_names]
    lab=" "
    i=1
    while i<=num_match:
        lab = lab + " " + "Match" + str(i)
        i = i+1
    aggregated_matches = pd.DataFrame(fhp_new, columns = lab.split())
    d={}
    for x in range (1, num_match + 1):
        d["Match{0}".format(x)] = [y[0] for y in aggregated_matches["Match" + str(x)]]
    d["test_original"] = test_names
    d["perfect match"] = d["Match1"] == d["test_original"]
    out = pd.DataFrame(data=d)
    out.to_csv(str(outFile + ".csv"))
    return (out)
    print ("finished")

master = pd.read_csv("MasterVendorDevice.csv")
testfile = pd.read_csv("testfile.csv", encoding='latin-1')
limit=3

baseDir = os.path.join("/Users", "Tim", "Desktop", "String Matcher")
outDir = os.path.join(baseDir, "out")

if not os.path.exists(outDir):
    os.makedirs(outDir)

outFile = os.path.join(outDir, "matches")

StringMatch(master, testfile)

1 Ответ

0 голосов
/ 16 мая 2018

Я не вижу "score_cutoff" как параметр в process.extract (), но я думаю, что вы можете сделать что-то вроде

process.extractBests(x,master_names,limit=limit,score_cutoff=cutoff)
...