как не точно сопоставить 2 CSV-файлов - PullRequest
0 голосов
/ 11 октября 2019

У меня есть 2 файла CSV, dictionary.csv и file.csv, я хочу проверить, существуют ли слова в dictionary.csv в file.csv. Некоторые строки в dictionary.csv содержат более 2 слов, и я хотел знать, есть ли способ сделать это,

, если в строке 3 слова, и как минимум 2/3 слова изстрока соответствует в file.csv, возвращает 1, иначе 0

, если в строке 2 слова, и не менее 1/2 слова из строки, соответствующей в файле.csv, возвращает 1, иначе 0

Ниже приведен мой код, он точно соответствует

file=pd.read_csv("file.csv")
dictionary=pd.read_csv("dictionary.csv")

pattern='|'.join(dictionary)

news["contain diseases1"] = np.where(
    news["STORY"].str.contains(pattern, na=False),
    1, 0
)

news.to_csv("clues.csv")

Чтобы помочь вам понять мой вопрос, ниже приведены словарь dictionary.csv и file.csv

dictionary.csv

sigmoid colon cancer
site specific early onset breast cancer syndrome
skin cancer
file.csv

id   STORY
0    Ari have a colon cancer
1    Cancer is an epidemic
2    Breast cancer can happen to both genders

Выходные данные, которые я должен получить из этого файла:

clue.csv
id   STORY                                      contain diseases1
0    Ari have a colon cancer                         1
1    Cancer is an epidemic                           1
2    Breast cancer can happen to both genders        1
3    Prioritizing the health of skin                 0
4    A specific camping site is only for early birds 0

На данный момент, поскольку код, который у меня есть сейчас, является точным, я продолжаю получать 0

1 Ответ

0 голосов
/ 11 октября 2019

Вы рассматривали библиотеку нечетких питонов? Это библиотека, соответствующая строкам, с открытым исходным кодом SeatGeek. Он предоставляет оценку соответствия на основе несовершенных совпадений, а затем вы решаете, какой порог достаточно близок, чтобы соответствовать.

По своему опыту, я использовал его для сопоставления имен врачей из разных источников данных (например, некоторые говорят «Доктор», некоторые говорят «MD», некоторые имена сокращены, некоторые фамилии изменены из-за девичьей фамилии). имена).

Вот 2 ссылки на библиотеку.

https://chairnerd.seatgeek.com/fuzzywuzzy-fuzzy-string-matching-in-python/

https://github.com/seatgeek/fuzzywuzzy

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...