python - нечеткое соответствие, циклически проходя по набору данных, чтобы найти соответствующие элементы в наборе ссылок - PullRequest
0 голосов
/ 05 мая 2018

Я пытаюсь изучить и реализовать нечеткое сопоставление в python. У меня есть два набора данных, которые я загружаю как фреймы данных в панды. Набор 1 является эталонным набором. Набор два - это набор, содержащий данные для сопоставления с именами ссылок.

Я перебираю элементы set_1 для поиска соответствующих записей в ссылке, но получаю ошибку. Мне нужна помощь с ошибкой.
Пытаюсь ли я правильно структурировать алгоритм?

Моя попытка:

import pandas as pd
import fuzzywuzzy as fuzzy
from difflib import SequenceMatcher

set_1 = pd.read_csv("C:/Folder/file_1.csv")
set_2 = pd.read_csv("C:/Folder/file_2.csv")

query = set_1['name']
choices = set_2['name2']

for query in query:
    match = fuzzy.extractOne(query,choises=choises,scorer=scorer,score_cutoff=cutoff)

Я получаю следующую ошибку:

AttributeError: module 'fuzzywuzzy' has no attribute 'extractOne'

1 Ответ

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

Если вы посмотрите на использование пакета на github, вы заметите, что extractOne - это функция, определенная в fuzzywuzzy.process, поэтому вам нужно импортировать этот подмодуль следующим образом:

import pandas as pd
from fuzzywuzzy import process  # <-- note the difference
from difflib import SequenceMatcher

set_1 = pd.read_csv("C:/Folder/file_1.csv")
set_2 = pd.read_csv("C:/Folder/file_2.csv")

query = set_1['name']
choices = set_2['name2']

for query in query:
    #       vvvvvvv  note the difference
    match = process.extractOne(query,choises=choises,scorer=scorer,score_cutoff=cutoff)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...