У меня есть список ключевых слов, которые мне нужно знать, если они находятся в пределах 4 слов от слова «доступ» в предложении из списка. В конце я хочу указать общее количество совпадений с ключевым словом. слово «доступ» для определенного предложения из списка.
Токовый выход:
[«Меньшинство», «пациенты», «часто», «иметь», «барьер», «с», «их», «доступ», «к», «здравоохранение».] 0
[«Сельские», «пациенты», «часто», «цитировать», «расстояние», «как», «а», «барьер», «к», «доступ», «здоровье», «услуги».]]
[«Меньшинство», «пациенты», «часто», «имеют», «барьеры», «с», «их», «доступ», «к», «здравоохранение».] 0
[«Меньшинство», «пациенты», «часто», «имеют», «барьеры», «с», «их», «доступ», «к», «здравоохранение».] 1
Желаемый вывод:
[«Меньшинство», «пациенты», «часто», «иметь», «барьеры», «с», «их», «доступ», «к», «здравоохранение».] 2
[«Я, заядлый, пользователь, Microsoft, Access, базы данных»] 0
[«Сельские», «пациенты», «часто», «цитировать», «расстояние», «как», «а», «барьер», «к», «доступ», «здравоохранение», «услуги».]] 3
accessdesc = ["care", "services", "healthcare", "barriers"]
sentences = ["Minority patients often have barriers with their access to
healthcare.", "I am an avid user of Microsoft Access databases", "Rural
patients often cite distance as one of the barriers to access healthcare
services."]
for sentence in sentences:
nummatches = 0
for desc in accessdesc:
sentence = sentence.replace(".","") if "." in sentence else ''
sentence = sentence.replace(",","") if "," in sentence else ''
if 'access' in sentence.lower() and desc in sentence.lower():
sentence = sentence.lower().split()
access_position = sentence.index('access') if "access" in
sentence else 0
desc_position = sentence.index(desc) if desc in sentence else 0
if abs(access_position - desc_position) < 5 :
nummatches = nummatches + 1
else:
nummatches = nummatches + 0
print(sentence, nummatches)