Здравствуйте, у меня есть набор данных, в котором я хочу сопоставить свое ключевое слово с местоположением. У меня проблема с местоположением «Афганистан», «Кабул» или «Гельмунд», которое у меня есть в моем наборе данных, и которое встречается в более чем 150 комбинациях, включая орфографические ошибки, использование заглавных букв и название города или города. То, что я хочу сделать, это создать отдельный столбец, который возвращает значение 1, если какой-либо из этих символов «afg» или «Afg» или «kab» или «helm» или «содержится в месте. Я не уверен, если верхний илинижний регистр имеет значение.
Например, существуют сотни комбинаций местоположений, таких как: Джегдалак, Афганистан, Афганистан, Газни ♥, Кабул / Афганистан,
Я пробовал этот код, и онхорошо, если оно точно соответствует фразе, но слишком много вариаций, чтобы записать каждое исключение
keywords= ['Afghanistan','Kabul','Herat','Jalalabad','Kandahar','Mazar-i-Sharif', 'Kunduz', 'Lashkargah', 'mazar', 'afghanistan','kabul','herat','jalalabad','kandahar']
#how to make a column that shows rows with a certain keyword..
def keyword_solution(value):
strings = value.split()
if any(word in strings for word in keywords):
return 1
else:
return 0
taleban_2['keyword_solution'] = taleban_2['location'].apply(keyword_solution)
# below will return the 1 values
taleban_2[taleban_2['keyword_solution'].isin(['1'])].head(5)
Просто нужно заменить эту логику, где все результаты будут помещены в столбец "keyword_solution", который соответствует либо "Afg"или «афг» или «каб» или «каб» или «кунд» или «кунд»