Поиск предложений из списка, который содержит фразы, хранящиеся в другом списке, используя python - PullRequest
0 голосов
/ 04 мая 2020

У меня есть список предложений, который мне нужно сравнить с другим списком, содержащим некоторые фразы. Я должен проверить, содержит ли каждое предложение в первом списке одну из фраз из второго списка. Если да, то мне нужно присвоить этому предложению 1 балл. Если это не так, мне нужно присвоить балл 0. Например: если список предложений равен list_1=['a recent study found that pomegranate juice can be used to help alleviate prostate cancer','researchers have also noted that pomegranates help slow the spread of hormone-dependent cancers','this limits their ability to multiply'], а список фраз равен list_2=['found that','noted that'], тогда мне нужно дать всем предложениям в списке номер 1 оценку при условии, что предложения содержат фразу из второго списка. Если в нем есть фраза, то он должен дать оценку 1, а если нет, он должен дать оценку 0. В приведенном выше примере первые два предложения должны получить оценку 1, поскольку они содержат фразы из второй список, тогда как последнее предложение должно получить 0 баллов, так как не содержит ни одной фразы.

1 Ответ

0 голосов
/ 04 мая 2020

Вы можете решить указанную выше проблему с помощью следующего кода:

list_1=['a recent study found that pomegranate juice can be used to help alleviate prostate cancer','researchers have also noted that pomegranates help slow the spread of hormone-dependent cancers','this limits their ability to multiply']

list_2=['found that','noted that']
count_dict={}
for l in list_1:
    c=0
    for l2 in list_2:     
       if l.find(l2)!=-1:#then it is a substring
          c=1
          break           
    if c:#
       count_dict[l]=1
    else:
       count_dict[l]=0

В приведенном выше коде l.find(l2) проверяет, является ли l2 подстрокой l. Если да, то возвращается значение, отличное от -1. Вы также можете проверить string.count(substring), которое должно быть больше 0.

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