Подсчитайте вхождения списка слов в наблюдении за строкой

#python #string #find-occurrences #multiple-occurrence

#питон #строка #находки-происшествия #множественное возникновение

Вопрос:

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

В топ-10 слов входят:

 top10 = ['model','language','models','task', 'data', 'paper', 'results', 'information', 'text','performance']  

Примером первых 3 наблюдений являются:

 column[0:3] = ['The models are showing a great performance.', 'The information and therefor the data in the text are good enough to fulfill the task.', 'Data in this way results in the best information and thus performance'.]  

Предоставленный код должен возвращать список общих вхождений всех слов в конкретном наблюдении. Я попробовал следующий код, но он выдал ошибку: count() принимает не более 3 аргументов (приведено 10).

Мой код:

 count = 0 for sentence in column:  for word in sentence.split():  count  = word.lower().count('model','language','models','task', 'data', 'paper', 'results', 'information', 'text','performance')  

Я также хочу, чтобы все слова были написаны в нижнем регистре и убрали знаки препинания. Таким образом, результат должен выглядеть следующим образом:

 output = (2, 4, 4)  

Первое наблюдение включает 2 слова из списка топ10, а именно модели и производительность

Второе наблюдение содержит 4 слова из списка топ10, а именно информацию, данные, текст и задание

Третье наблюдение содержит 4 слова данных, результатов, данных, информации и производительности

Надеюсь, вы сможете мне помочь!

Комментарии:

1. Где «предоставленный код» и какую ошибку/некорректность вы получаете?

2. Я обновил свой вопрос!

Ответ №1:

Вы можете использовать регулярное выражение для разделения и просто проверить, входит ли оно в топ-10.

 count =[] for i,sentence in enumerate(column):  c = 0  for word in re.findall('w ',sentence):  c  = int(word.lower() in top10)  count  = [c]  

количество = [2, 4, 4]

Комментарии:

1. Когда я пробую этот код, я снова получаю количество [0, 0, 0]. Кроме того, моя фактическая база данных составляет около 10 000 наблюдений. Означает ли это, что я должен подсчитать = для этих 10 000 наблюдений?

2. @PaulEngelbert Я просто использую 3 колонки, которые вы упомянули. Вы должны настроить его в соответствии с вашим собственным кодом, а не просто копировать без проверки

3. Я, конечно, понимаю, но знаете ли вы способ подсчитать 10 тысяч наблюдений, а не использовать копирование count = [0, 0, 0] снова и снова?

4. @PaulEngelbert Хорошо, я только что изменил его

5. Это сработало! Большое вам спасибо!