Подсчет вхождения слов в файле построчно в Python - PullRequest
0 голосов
/ 24 сентября 2019

Итак, я новичок в Python, и мне дали две задачи.

Один из них - подсчет частот для каждой пары слов и слов в файле, что я и сделал.

Другая задача состоит в том, чтобы посчитать вхождение слов и пар слов в строку (это нормально, если я получу (x, y) и (y, x), поскольку мы считаем их отличными для этой оценки)

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

Пример: Привет, мир Привет, кошка, все коты и привет всем собакам в мире! Мир круглый, мир не плоский

Я бы хотел ["hello", 2] ["world", 3], поскольку они появляются в 2 и 3 строках соответственно. Для пар это будет [(hello, world), 2], поскольку эти слова появляются водна и та же строка дважды.

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

Любая помощь приветствуется, спасибовы!

1 Ответ

0 голосов
/ 24 сентября 2019

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

Лучшим решением было бы сначала удалить все повторяющиеся слова в каждой строке.Самым простым решением было бы составить список наборов.Наборы могут иметь только уникальные элементы, поэтому, если вы попытаетесь добавить дублирующий элемент в набор, он не будет добавлен.

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

...