Не могу точно посчитать число без текста глав IV–VII второй части тома 2. Пришлите, пожалуйста, сами тексты этих глав (или дайте доступ к ним). Я выполню подсчёт немедленно и верну число.
Пока могу дать подробный метод и готовый код, чтобы вы могли посчитать сами, если текст есть в наличии.
Как посчитать (пошагово)
- Соберите текст глав IV, V, VI и VII второй части тома 2 into one строковое содержимое.
- Подсчёт нужно делать так:
- Посчитать все вхождения сочетания "не" и "Не" в тексте (включая внутри слов).
- Посчитать все вхождения сочетания "не" и "Не" как отдельного слова (то есть границы слова).
- Результат равен числу из шага 1 минус число из шага 2, т.к. нужно исключить случаи, когда "не" стоит как отдельное слово.
- Важно: считать именно два формата: "не" и "Не". Случаи вида "НЕ" или другие варианты регистра не учитываются по формулировке задачи.
Готовые примеры кода (Python 3)
- Включение: текст должен быть в кодировке UTF-8.
import re
def count_ne_not_as_word(text): # все вхождения "не" или "Не" total = len(re.findall(r'(?:не|Не)', text)) # вхождения как отдельного слова standalone = len(re.findall(r'\b(?:не|Не)\b', text)) return total - standalone
пример использования
with open('chap4_to_7_part2_vol2.txt', 'r', encoding='utf-8') as f:
text = f.read()
print(count_ne_not_as_word(text))
Альтернативно команда в UNIX/Linux (предположим текст в файле text.txt)
- Все вхождения "не" или "Не": grep -o -E '(не|Не)' text.txt | wc -l
- Вхождения как отдельного слова: grep -o -E '\b(не|Не)\b' text.txt | wc -l
- Разница даст нужное число: total=$(grep -o -E '(не|Не)' text.txt | wc -l) standalone=$(grep -o -E '\b(не|Не)\b' text.txt | wc -l) echo $((total - standalone))
Сообщите текст глав IV–VII второй части тома 2, и я верну точное число.