Автоматическая обработка слов в строках текста.

Подсчет количества уникальных слов в строках текста.

Программная обработка слов / строк текста в программе Excel.

Любой пользователь компьютера, периодически сталкивается с проблемой обработки текста большой базы данных / или, многострочного офисного Excel документа ... В частности, интересуют вопросы, ответы на которые - нельзя получить стандартными средствами обработки текстовых данных : ...

# Как получить список уникальных / не повторяющихся значений ? ...

# Как подсчитать количество повторяющихся значений в столбце ? ...

# Как подсчитать количество повторений ? ...

# Как посчитать количество одинаковых ячеек ? ...

Ну, и - в том же духе ... Ладно, бы - это я, такой привередливый ... В крайнем случае, до 10 тысяч - могу и ручками посчитать ... Так - нет, же ... Это проблема известная, пусть и не часто встречаемая, но когда приспичит - хоть по компьютеру молотком колоти - он умнее не станет ... Я считаю, что это проблема разработчиков, напихавших всякой хрени в офисный пакет, из которой - 99% пользователей Microsoft Office - никогда не использовали встроенные функции, и понятия не имеют, как их использовать вообще ... А, те - что работают и часто применяются - порой оставляют желать лучшего в прямом смысле этого слова ... Лучшей функциональности ...

Посмотрите, сами - язык сломаешь : ДАТАКУПОНДО (Купондо - это, что за место?) ; ДЛСТР ... ; ДСТАНДОТКЛП (Дуст от клопов?) ... Это только на букву Д и таких примеров / весь список вставки функций - более 440 позиций ... Выговорить трудно - не то, что / запомнить и понять, как работает функция ... Да, при вводе - всплывают подсказки, ну - а толку ? ...

Категории функций, в основном - работают со значениями элементов / индексов (а не с их количеством), и не решают насущных задач ... Финансовые (гроши я и в уме посчитаю), статистика / логика и аналитика (тоже - пусть мозг занимается, главное - не мешать ему в этом), математические (эти - реально могут пригодиться для облегчения расчетов с цифрами) ... Текстовые ... Давайте рассмотрим внимательно ... Специально убил время, чтобы поближе узнать потенциальные возможности обработки текста ...

Задача : в колонке / столбце таблицы Excel - более 400000 (тысяч) строчек / слов - и надо подсчитать, сколько раз повторяются уникальные слова из общего массива текстовых данных ... Сделаем сортировку от А до Я, что дальше ? А, ничего, сиди / считай вручную ... Текстовые функции Excel предлагают для обработки текста : ...

UNICODE - возвращает число / код знака первого символа в тексте ...

БАТТЕКСТ - преобразование числа в текст ...

ДЛСТР - длина строки, количество знаков в строке (иногда применимо для тупого сравнения) ...

ЗАМЕНИТЬ - замена части строки текста ...

ЗНАЧЕН - преобразование текста в число ...

КОДСИМВ - возвращает число / код знака первого символа в тексте ...

ЛЕВСИМВ - возвращает число символов / знаков от начала строки ...

НАЙТИ - возвращает позицию искомой строки в тексте ...

ПЕЧСИМВ - удаление всех непечатаемых символов / знаков из текста ...

ПОВТОР - повтор текста заданное число раз ...

ПОДСТАВИТЬ - замена части строки текста ...

ПОИСК - возвращает позицию искомой строки в тексте / поиск слева направо ...

ПРАВСИМВ - возвращает число символов / знаков от конца строки ...

ПРОПИСН - конвертация всех букв текста в прописные ...

ПРОПНАЧ - конвертация первой буквы каждого слова текста в прописные, остальные - в строчные ...
ПСТР - возвращает заданное количество знаков / символов текста с указанной позиции ...

РУБЛЬ - преобразование текста в число, денежный формат ...

СЖПРОБЕЛЫ - сжать пробелы / удалить все лишние пробелы в тексте, кроме одиночных между словами ...

СИМВОЛ - возвращает символ с заданным кодом ...

СОВПАД - проверка идентичности двух строк текста ; возвращает : ИСТИНА / ЛОЖЬ

СТРОЧН - конвертация всех букв текста в строчные ...

СЦЕПИТЬ - объединение / коннектация нескольких строк текста в одну ...

Т - проверка содержимого ячейки на соответствие : текст ? или нет ...

ТЕКСТ - преобразование / форматирование числа в текст ...

ФИКСИРОВАННЫЙ - преобразование / форматирование числа в текст, с заданным числом десятичных знаков ...

ЧЗНАЧ - преобразование текста в число без учета языкового стандарта ...

ЮНИСИМВ - возвращает знак / символ Unicode, соответствующий числу / коду знака ...

Не густо ... Первое, что бросается в глаза : вернуть код первого символа ... Бред ...Зачем ? А, если - мне нужен третий / или, восьмой ? ... Если сильно не придираться - есть функция сравнения строк СОВПАД () щелкните мышью на точку / квадратик... Но, она - работает с логическими ИСТИНА / ЛОЖЬ значениями ... Как и функция ЕСЛИ () ... Языки программирования - не трогаем, VBS макросы оставим в покое, сводная таблица или диаграмма / курят бамбук - что, остается ? : ЕСЛИ, СУММ, СЧЁТ, СЧЁТЕСЛИ, СУММЕСЛИМН ... Их применение не позволило мне придумать простую и работоспособную конструкцию программного кода для подсчета вхождений / количества уникальных слов в тексте ... Поэтому я плюнул, тщательно растер, и обратил свой взор на привычные системные инструменты Windows - DOS / BAT / CMD командный процессор ...

Программная обработка слов / строк текста в скрипте процессора CMD / Windows.

Неважно, каким путем / обработкой были получены слова (построчно / в столбец) из массива текста (например, используя WinHex, шестнадцатеричный редактор - можно заменить HEX пробел 20 между словами на код 0D0A переноса строки) ... Главное, чтобы в обрабатываемом тексте не встречались специальные и служебные символы и команды, которые нарушают выполнение BAT / CMD скриптов ... Во-первых, это большинство знаков верхнего ряда клавиатуры ... Плюс - еще по мелочи ...

~ ` ! @ # $ % ^ & * ( ) - _ + = \ | / ' " ?

опасные знаки : больше / меньше, одиночная / двойная кавычка, двоеточие ...

Эти символы можно и нужно использовать при разработке CMD скриптов, но только при тщательном контроле и используя экранировку (если они применяются, как текст, а не специальные инструкции и команды) ... В случае обработки огромного массива строк (а, 400000 (тысяч) - это огромное число, в секундах равное 6666 минут, или 111 часов, или 4 с половиной дня ...) - нет возможности лично проконтролировать каждое значение, и поэтому - лучше сразу избавиться от них (в текстовом редакторе / блокноте : CTRL+ H, найти и заменить, заменить все на [пустая строка в качестве аргумента замены]) ... В разных кодировках текста / национальных алфавитах - также могут встречаться символы, расцениваемые командным процессором, как управляющие ...

Примечание : в этом месте, программисты - обычно организовывают проверку на соответствие символа - печатному и отбрасывают непечатные ... Серьезно - даже не представляю, есть ли подобная проверка в CMD ... А если еще учесть разнообразие кодировок текста ...

Не суть ... Скрипт подсчета слов / строк работает следующим образом ... В некоторой временной папке есть несколько файлов : ...

in.txt - исходный набор отсортированных слов / строк для подсчета и анализа количества уникальных словоформ ... Скрипт будет правильно работать только с предварительно отсортированным списком ... Чтобы последнее значение счетчика было записано в файл количества повторений - в файл in.txt, в самый конец - нужно добавить произвольное слово, например stopword ... Если слово / заглушку не добавлять - достигнув EOF / конца файла - цикл завершит выполнение без сработки на новое слово и последний счет счетчика не будет записан в файл (обусловлено программным кодом сценария скрипта) ...

inout.cmd - собственно / CMD скрипт, который рассмотрим ниже ...

null.txt - пустой файл ... используется для автоматической очистки выходных файлов при новом / следующем запуске скрипта ...

outnum.txt - выходной файл для счетчика повторений слова ...

outtxt.txt - выходной файл для уникального слова / строки ...

tmp.xlsx - временный файл Excel для сортировки и анализа (при необходимости) ...

Вывод результатов в два файла outnum.txt и outtxt.txt сделан для облегчения программного кода скрипта и не мешает совершать / получать успешный подсчет слов и строк в тексте ... Скрипт подсчета количества слов содержит следующие строки программного кода : ...

CHCP 1251 ... Для работы с текстом в кодировке Windows-1251 / русский ... Применяется при необходимости ...

COPY null.txt outnum.txt ...
COPY null.txt outtxt.txt ...
При каждом запуске скрипта - старые выходные файлы очищаются / заменяются (пере записываются) пустым файлом ...

SET OLD=nullword ... Это слово / заглушка - нужно для выравнивания строк в выходных файлах, чтобы слово и его значение - совпадали ... Обосновано работой логики скрипта ...

SET CNT=11 ... При установке счетчика в 0 или 1 - происходит сбой команды ECHO ... Для устойчивой работы скрипта - значение счетчика было умышленно увеличено на +10, что может быть учтено при анализе результатов ...

ECHO %OLD% перенаправляется в outtxt.txt ... Запись выравнивающего строки слова в файл слов / строк ...

SETLOCAL ENABLEEXTENSIONS ENABLEDELAYEDEXPANSION ... Включение режима локальной / расширенной обработки команд и отложенного расширения переменной среды для обработки переменных в режиме реального времени ... Переменные изменяют знак отображения с %x% (значение известно только после работы сценария, особенно в циклах) на !x! - значение известно сразу после расчета, в реальном времени ...

FOR /F %%I IN (in.txt) DO ( ... Запуск цикла для построчного считывания и обработки слов / строк из файла / источника ...

IF !OLD!==%%I (SET /A CNT=!CNT!+1) ... Если слово одинаковое с предыдущим / не изменилось - увеличить счетчик на +1 ...

REM ECHO Old !OLD! ; Word %%I ; Counter !CNT! ... Отладочная строка ... Можно удалить ... Раскомментировать REM строки, чтобы пошагово и наглядно увидеть, как происходит обработка входных слов и заполнение выходных файлов ...

IF NOT !OLD!==%%I ( ... Если слово изменилось - выполнить следующие действия ...

ECHO !CNT! перенаправить в outnum.txt ... Записать в файл значение счетчика для предыдущего слова ...

REM outnum.txt ... Отладочная строка ... Можно удалить ...

SET CNT=11 ... Установить / сбросить счетчик в псевдо нулевое значение ...

ECHO %%I перенаправить в outtxt.txt ... Записать новое слово в файл слов / строк ...

REM outtxt.txt ... Отладочная строка ... Можно удалить ...

SET OLD=%%I ... Установить новое слово - предыдущим / для будущего сравнения ...

) ... Завершение конструкции обработки для нового слова ...
Продолжение работы цикла построчного считывания слов из файла / источника ...

) ... Завершение цикла построчного считывания слов ... Если не было ошибок при чтении - исходный файл прочитан полностью / до конца ...

ENDLOCAL Завершение локализации рабочей среды CMD ...

EXIT ... Завершение работы интерпретатора команд / файла сценария ...

Результатом обработки слов CMD скриптингом - будут два OUT / выходных файла : со словами и с количеством / счетчиком повторений ... Чтобы иметь возможность сортировки, обработки и анализа полученного результата - можно открыть временный Excel файл и скопировать содержимое файлов в таблицу, например : ...
в столбец A - уникальные слова ...
в столбец B - значение счетчика количества повторов ...
В обоих файлах записи синхронизированы так что - проблем с копированием / вставкой быть не должно ...

Получится примерно такая Excel таблица, из которой явно видно, что слово скрипт встречалось в тексте 294 раза, а слово CMD - всего 161 раз ... Если вам нужны предельно точные значения - заполните в столбце C (ячейке C1) - формулу ...

=B1-10 ... Введенная в скрипте поправка будет вычтена из суммы подсчетов ...

Точка / квадратик в правом нижнем углу ячейки с формулой ... Щелкнуть на нее мышью, чтобы продлить ее действие - на все, следующие вниз - автоматически заполнить ячейки формулой по образцу первой ячейки ...

В столбце $B будет условно / сравнительный, а в столбце $C - точный результат подсчета количества слов по строкам ...

A		B	C
nullword	11	1
скрипт		294	284
CMD		161	151
BAT		193	183
строка		189	179
слово		265	255
stopword		-10

Используя Excel - можно вертеть полученной таблицей, "как угодно" : сортировкой найти максимум и минимум, самое часто употребляемое слово по-русски или самое редкое слово по-английски ... Таким образом, используя встроенные средства BAT / CMD программирования Windows, WinHex и Excel - можно относительно легко решить задачу по подсчету уникальных вхождений слов в текст значительного объема, не утруждая себя изучением сложных языков программирования высокого уровня и решением, связанных с ними, проблем ...

август, 2019 ...

Популярные теги для сайта.

Самые популярные теги, краткое описание более 1000 страниц менее, чем в 100 ключевых словах ... Чтобы найти более подробную информацию, самое простое - использовать поиск по сайту на соответствующие запросу - ключевое слово или фразу ...

Decoder данных ... Авто ... Бесплатно онлайн ... Список ПК программ ... Россия ... Погода ... ЭБУ ... Sat ... Torrent tracker ... Работа двигателя ... На трассе и по маршруту ... Диагностика ... ЦУП ... УпрДор ... Метео ... Гидрометцентр ... Москва ... Екатеринбург ... Смотреть прогноз ... Расчет ... Калькулятор ... Онлайн ... Вeacon ... Calculator ... COVID ... ECU ... Meritor ... Motor ... OBD ... SDR ... Telemetry ... Tool ... USB ... Windows ... Радио ... Развлекательный сайт ... Новости сегодня ... Связь ... Ремонт ... Системы ... Сканер ... Состояние трассы ... Диагностика двигателя ... Длина волны ... Программы для компьютера ...

Быстрый поиск по сайту :


Популярное : ...

... Найти ... Как улучшить фото ... Делфи на Андроид ... Погода М-4, М-5, М-7, Р-22 ... Список торрент трекеров ... Калькулятор кода радио ... Частота в длину волны ... RTL SDR Radio ...

TechStop-Ekb.ru : познавательные развлечения, техника, технологии ... На сайте, для работы и соответствия спецификациям - используются ... Протокол HTTPS шифрования для безопасного соединения с сервером и защиты пользовательских данных ... Антивирус DrWeb для превентивной защиты пользователей от интернет угроз и вирусов ... Ресурс входит в рейтинги Рамблер Топ 100 (познавательно-развлекательные сайты) и Mail Top 100 (авто мото информация) ...

Тех Стоп Екб RU (РФ) официальный сайт, популярные темы, погода, новости, обзоры с картинками, бесплатно, актуально, без регистрации ... Смотреть утром, днем, вечером и ночью - круглосуточно онлайн ...

Меню раздела, новости и новые страницы.

... | ... ТехСтоп Екб ... | ... Главное меню ... | ... Быстрый поиск ... | ...


© 2021 Тех Остановка Екатеринбург, создаваемый с 2016++ с вами вместе навсегда бесплатно ...