ТранскрибаторТранскрибатор
Практическая инструкция

Частота слов в расшифровке через Python Counter: как получить список для проверки

Подсчёт русских слов в TXT через collections.Counter: правила выделения, стоп-слова, словоформы и контрольный пример. Почему частота не равна важности темы.

Транскрибатор
ЗАПИСЬПЛАН РАБОТЫПодготовьте текст речиЗадайте правила подсчётаПроверьте контекстПроверить результатОТ СЛОВ К РЕЗУЛЬТАТУ
Работа с реальной записьюНаглядный учебный примерШаблон для копирования
1Подготовьте текст речи2Задайте правилаподсчёта3Проверьте контекст
Текст и правила выделения определяют счётчик; вывод по интервью требует чтения контекста.

Оставьте для подсчёта именно речь

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

Подготовьте speech.txt с текстом реплик. Удалите из рабочей копии повторяющиеся подписи говорящих и служебные заголовки, если не хотите считать их слова. Сохраняйте исходник отдельно и запишите, какие части исключили. Иначе имя участника или слово «Спикер» может оказаться среди самых частых единиц.

Получить основу можно через расшифровку аудио. Сначала проверьте ключевые имена и термины по записи: счётчик аккуратно посчитает и систематическую ошибку, если она осталась в тексте.

Определите, что считается словом

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

Копия приводится к NFC и casefold. Поэтому «Срок» и «срок» считаются вместе. Слова «срок», «срока» и «сроки» останутся разными формами; «е» и «ё» тоже не объединяются этим правилом. Для трудностей с составом символов пригодится разбор нормализации Unicode.

Стоп-слова исключаются только из selected; общее число tokens выводится отдельно. Список исключений здесь маленький и учебный. Не удаляйте отрицание «не» автоматически: его наличие способно менять смысл, даже если частотность сама по себе не показывает этого.

Запустите Counter и проверьте короткий пример

Сохраните код как count_words.py рядом с speech.txt и выполните python count_words.py или python3 count_words.py — в зависимости от Вашей системы. Дополнительные библиотеки для этого примера не нужны. Counter считает элементы последовательности, а most_common(20) выбирает до двадцати наиболее частых.

from collections import Counter
from pathlib import Path
import re
import unicodedata

text = Path("speech.txt").read_text(encoding="utf-8-sig")
search_copy = unicodedata.normalize("NFC", text).casefold()
tokens = re.findall(r"[а-яё]+(?:-[а-яё]+)*", search_copy)
stop_words = {"и", "в", "на", "а", "но", "это"}
selected = [word for word in tokens if word not in stop_words]
counts = Counter(selected)
print("Всего выделено слов:", len(tokens))
print("После исключений:", len(selected))
for word, count in counts.most_common(20):
    print(word, count)

Для контроля используйте вымышленный текст: «Срок, срок и сроки. План — план». По правилам примера получается срок: 2, план: 2, сроки: 1; «и» исключено. При равной частоте не воспринимайте порядок в списке как дополнительный показатель важности.

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

Используйте список как навигацию к репликам

Частое слово может быть частью стандартного вопроса интервьюера или повторяющегося вводного оборота. Редкое слово способно относиться к единственной, но важной договорённости. Не называйте тему главной только потому, что её обозначение встретилось чаще.

Возьмите интересующую форму и найдите контексты в тексте. Для большого TXT-архива подойдёт поиск через SQLite FTS5. Прочитайте соседние реплики и отметьте, кто говорит и на какой вопрос отвечает.

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

Учебный пример

Учебный пример: формы и значения

Вымышленный короткий текст показывает, какие единицы объединяются, а какие сохраняются отдельно.

ФрагментСчётчикЧто учитывать
Срок, сроксрок: 2Регистр объединён
срокисроки: 1Другая словоформа
План — планплан: 2Тире не стало словом
ПравилоРусские буквенные формыПроверить состав токеновЧислоПовторения формыПроверить короткий примерСмыслКонтекст употребленияПрочитать реплики
Счётчик отвечает «сколько», а контекст помогает понять «зачем сказано».

Если нужен подсчёт понятий, сначала определите словарь вариантов и проверьте неоднозначные употребления. Простое суммирование похожих слов может смешать разные значения.

Паспорт частотного списка

Рабочая заготовкаВыделите и скопируйте
Исходный файл: [имя и версия]
Исключённые служебные части: [список]
Правило слова: [описание]
Стоп-слова: [точный список]
Нормализация: [NFC + casefold]
Контрольный пример: [текст и результат]
Форма для проверки: [слово]
Контексты и таймкоды: [места]
Вывод после чтения: [наблюдение]

Частые вопросы

Counter объединяет «срок» и «сроки»?

Нет. В этом примере это разные формы. Для их объединения нужно отдельное правило.

Частое слово означает главную тему?

Нет. Частота зависит от вопросов, повторов и структуры речи. Проверьте контекст.

Почему код не считает английские слова?

В учебном регулярном выражении указаны русские буквы. Изменяйте правило под задачу и проверяйте результат.

Можно сравнить две записи по первым двадцати словам?

Это только начальное наблюдение. Нужны сопоставимые правила подготовки, учёт длины и чтение контекстов.