ищет, сколько раз список ключевых слов встречается в списке заголовков статей - PullRequest
0 голосов
/ 15 января 2019

Как узнать, сколько раз встречался список ключевых слов в списке заголовков статей? Я смотрел на счетчик и пришел к этому решению ( Как я могу подсчитать вхождения элемента списка? ), и он отлично работает для сравнения отдельных слов, но не в том случае, если в одном из ваших списков есть сцены надо искать через. Пример:

news_keywords = ['racism','ordeal','hero']
article_list = ['live: suspect in jayme closs case appears in court - cnn', 'woman who helped missing girl describes ordeal - cnn video', 'jayme closs found alive - cnn video', 'suspect in jayme closs case tried to kidnap her twice previously, complaint states', "trump keeps mum on king's comments while separately stoking racism", 'republicans are losing the shutdown blame game', 'government shutdown: live updates - cnnpolitics', "neighbors were 'armed and ready' if suspect in jayme closs kidnapping showed up", "investigators tracking down movements of jayme closs' kidnap suspect", 'sheriff says jayme closs is a hero after she freed herself from captivity and sought help']
a = [[x,article_list.count(x)] for x in set(news_keywords)]
print(a)

Desired output: [['ordeal', 1], ['racism', 1], ['hero', 1]]
Actual output: [['ordeal', 0], ['racism', 0], ['hero', 0]]

Я мог бы объединить все элементы списка в какой-то параграф и выполнить какую-то функцию поиска. Но мне любопытно, как я могу сделать это, сохранив все заголовки статей в списке или, по крайней мере, что-то итеративное.

Edit. Итак, я закончил этим:

def searchArticles():
    article_list = ['live: suspect in jayme closs case appears in court - cnn', 'woman who helped missing girl describes ordeal - cnn video', 'jayme closs found alive - cnn video', 'suspect in jayme closs case tried to kidnap her twice previously, complaint states', "trump keeps mum on king's comments while separately stoking racism", 'republicans are losing the shutdown blame game', 'government shutdown: live updates - cnnpolitics', "neighbors were 'armed and ready' if suspect in jayme closs kidnapping showed up", "investigators tracking down movements of jayme closs' kidnap suspect", 'sheriff says jayme closs is a hero after she freed herself from captivity and sought help']
    dump = ' '.join(article_list)
    dump_list = dump.split()
    a = [[x,dump_list.count(x)] for x in set(news_keywords)]
    print(dump_list)
    print(a)

Но опять же, если есть другие идеи, ЛМК.

1 Ответ

0 голосов
/ 15 января 2019

Вот одна из возможностей:

a = []

for x in set(news_keywords):
    a.append([x, sum([article_list[i].count(x) for i in range(len(article_list))])])

print(a)

Конечно, это может быть сделано более кратко, используя понимание списка и лямбду, но пока это работает.

...