Почему этот код не работает должным образом для поиска по ключевым словам? - PullRequest
0 голосов
/ 12 ноября 2018

Я прочитал следующий код из упражнений kaggle. Цель кода для функции multi_word_search(documents1, keywords1) - показать строковые индексы в документах1, которые содержат определенные слова в ключевых словах1. Например, если

documents1 = ['what do you want to do', 'what is your research goal', 'what do you want to accomplish in life']
keywords1 = ['want', 'your']

тогда вывод функции должен быть {'want': [0, 2], 'your': [1]}, но, к сожалению, вывод, который я получаю после выполнения кода, равен {'want': [0, 2]}. Где проблема в коде. Любая помощь в этом отношении будет высоко ценится. Заранее спасибо.

def word_search(documents, keyword):
    indices=[]
    for i, doc in enumerate(documents):
        tokens=doc.split()
        normalized=[token.rstrip('.,').lower() for token in tokens]
        if keyword.lower() in normalized:
            indices.append(i)
    return indices
def multi_word_search(documents1, keywords1):
    keyword_to_indices={}
    for keyword2 in keywords1:
        keyword_to_indices[keyword2]=word_search(documents1, keyword2)
    return keyword_to_indices
s=['what do you want to do', 'what is your research goal', 'what do you want to accomplish in life']
keywords=['want', 'your']
r=multi_word_search(s,keywords)
print(r)
...