Я не уверен, чего вы здесь добиваетесь. Однако я собираюсь указать на проблему, которая может вам помочь.
В своем комментарии вы сказали, что keyword
- это список слов, а phrase['Search term']
- это список предложений.
for i in phrase['Search term']:
if i in keyword:
hit.append(i)
...
В этой части кода вы проверяете, можно ли найти полное предложение i
в любое из отдельных слов в keyword
. Эта логика ошибочна, вам нужно проверить, существует ли слово в предложении, а не наоборот.
Примерно так:
for i in phrase['Search term']:
for j in keyword:
if j in i:
hit.append(i)
...
Это пример , вам нужно будет приспособиться к своей цели, так как теперь он будет проверять слово в слово.
Приведенный выше код может привести к нежелательному поведению, поскольку он проверяет, существует ли меньшая строка (слово) внутри большей строки (предложения). Это на самом деле не проверить слова. Например, если вы ищете cat в предложении вроде:
этот пациент cat atonic
Запустит вашоператор if как True
. Чтобы свести к минимуму это, разделите ваше предложение в списке слов и проверьте, найдено ли слово в списке. Как это:
for i in phrase['Search term']:
for j in keyword:
if j in i.split(" "):
hit.append(i)
...