#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. Это сработало! Большое вам спасибо!