Дан файл, содержащий текст на русском языке и некоторые два слова. Определить, сколько раз они встречаются в тексте и сколько из них — непосредственно друг за другом. Python

olga2610 olga2610    1   08.06.2020 02:16    9

Ответы
неудачник16 неудачник16  16.01.2024 20:07
Хорошо, рассмотрим данную задачу шаг за шагом:

Шаг 1: Чтение файла
- Создадим переменную `filename` и присвоим ей путь к файлу с текстом.
- Откроем файл с помощью функции `open()` в режиме чтения и присвоим его содержимое переменной `text`.
- Закроем файл с помощью метода `close()`.

Вот код для выполнения этого шага:
```python
filename = "путь_к_файлу.txt"
file = open(filename, "r")
text = file.read()
file.close()
```

Шаг 2: Подготовка текста
- Приведем весь текст к нижнему регистру с помощью метода `lower()`. Это необходимо для сравнения слов без учета регистра.
- Используем метод `split()` для разделения текста на слова.
- Создадим пустой список `words` для хранения всех слов.

Вот код для выполнения этого шага:
```python
text = text.lower()
words = text.split()
```

Шаг 3: Подсчет количества вхождений слов
- Создадим переменные `word1` и `word2` и присвоим им значения двух слов, которые нужно найти.
- Создадим переменные `count_total` и `count_adjacent` и присвоим им значение 0. Они будут использоваться для подсчета общего количества вхождений и количества соседних слов соответственно.
- Проходим по списку `words` с помощью цикла `for`.
- Сравниваем каждое слово из списка с `word1` и `word2`.
- Если слово совпадает с `word1` или `word2`, увеличиваем `count_total` на 1.
- Если следующее слово в списке также совпадает с `word2`, увеличиваем `count_adjacent` на 1.

Вот код для выполнения этого шага:
```python
word1 = "слово1"
word2 = "слово2"
count_total = 0
count_adjacent = 0

for i in range(len(words)):
if words[i] == word1 or words[i] == word2:
count_total += 1
if i < len(words) - 1 and (words[i + 1] == word1 or words[i + 1] == word2):
count_adjacent += 1
```

Шаг 4: Вывод результатов
- Выведем значения `count_total` и `count_adjacent`, чтобы узнать количество вхождений слов и количество соседних слов соответственно.

Вот код для выполнения этого шага:
```python
print("Количество вхождений слов:", count_total)
print("Количество соседних слов:", count_adjacent)
```

Итоговый код будет выглядеть следующим образом:
```python
filename = "путь_к_файлу.txt"
file = open(filename, "r")
text = file.read()
file.close()

text = text.lower()
words = text.split()

word1 = "слово1"
word2 = "слово2"
count_total = 0
count_adjacent = 0

for i in range(len(words)):
if words[i] == word1 or words[i] == word2:
count_total += 1
if i < len(words) - 1 and (words[i + 1] == word1 or words[i + 1] == word2):
count_adjacent += 1

print("Количество вхождений слов:", count_total)
print("Количество соседних слов:", count_adjacent)
```

Нужно заменить "путь_к_файлу.txt", "слово1" и "слово2" на соответствующие значения в вашем случае.
ПОКАЗАТЬ ОТВЕТЫ
Другие вопросы по теме Информатика