Форум программистов, компьютерный форум, киберфорум
Visual Basic
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.67/15: Рейтинг темы: голосов - 15, средняя оценка - 4.67
 Аватар для Power_Basic
46 / 25 / 0
Регистрация: 08.03.2016
Сообщений: 443

Как наиболее рационально подойти к разбиению очень большого текста на отдельные слова?

08.07.2020, 18:51. Показов 3862. Ответов 49
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Всем здравствуйте!

Задумал написать на Визуальном бейсике программу, которая будет обрабатывать большие (ну очень большие!) тексты, разбивая их на отдельные слова. На ум приходит только такой подход к решению этой задачи:

1. В цикле проходим по всем словам текста, отправляя каждое из них во вложенный цикл.
2. Во вложенном цикле создаём 2 связанных между собой массива - массив (базу данных) всех найденных слов и массив счётчиков количества повторений для каждого слова.

3. Если найденное слово новое, тогда добавляем его в нашу базу данных со значением счётчика, равным единице.
Если найденное слово уже встречалось, тогда НЕ добавляем его в базу данных, но значение его счётчика увеличиваем на единицу.
Ну а уже в самом конце сортируем нашу базу данных (массив) по алфавиту.

Ахиллесова пята здесь это поиск слов в составляемой базе данных. На это уйдёт львиная часть времени.
Отсюда вопрос: можно ли как-нибудь оптимизировать этот процесс?
Мне на ум приходит, что можно попробовать вставлять в "базу данных" новые слова сразу в алфавитном порядке, а потом начинать поиск (но как?) с первой буквы слова-кандидата.

И ведь, наверняка же, оптимальный подход к этой задаче уже давно разработан, поскольку уж очень она вроде бы стандартная.
Но я не могу найти. Даже не могу сформулировать строку поиска

Пытался гуглить "VB6 разбить текст на отдельные слова", но там все ответы либо на VB.Net, либо вообще на других языках.
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
08.07.2020, 18:51
Ответы с готовыми решениями:

Как рационально подойти к сокращению и упрощению кода?
Добрый день! Прошу подсказать новичку как рационально подойти к сокращению и упрощению (приведение к компактности) в данном ниже...

Как наиболее рационально обратиться к элементам динамического массива через цикл For
Здравствуйте, подскажите пожалуйста, как наиболее рационально обратиться к элементам динамического массива через цикл For? Есть вот такой...

Как наиболее рационально проверять и устанавливать события из разных потоков? (про атомарность)
Привет! Догадываюсь, что события, точнее их хэндлы, созданные по средствам CreateEvent, не относятся к данным, операции над которыми могут...

49
bite
 Аватар для I can
5011 / 4841 / 852
Регистрация: 13.04.2015
Сообщений: 10,123
12.07.2020, 05:25
Студворк — интернет-сервис помощи студентам
Цитата Сообщение от Power_Basic Посмотреть сообщение
карабкаюсь вверх к поставленньой цели - озвучить книгу без ошибок.
Есть же готовые сервисы по переводу и озвучке, с использованием обучаемых нейросетей, даже бесплатные. Зачем изобретать велосипед ? У вас всё-равно лучше не получится сделать
0
Наивное Существо
 Аватар для vedunasv
666 / 141 / 27
Регистрация: 09.05.2020
Сообщений: 750
Записей в блоге: 15
12.07.2020, 08:28
Цитата Сообщение от I can Посмотреть сообщение
Зачем изобретать велосипед ? У вас всё-равно лучше не получится сделать
И так всегда ((((( А, может быть, и получится? Откуда такая уверенность, что не получится? И потом, почему изобретать? Челу не надо такие мощности
Цитата Сообщение от I can Посмотреть сообщение
Есть же готовые сервисы по переводу и озвучке, с исп...
Это как использовать эскаватор для копки ямы посадить двухлетний саженец....Если достаточно лопаты.
И еще вот это

Если бы Вы читали досконально,
Цитата Сообщение от Power_Basic Посмотреть сообщение
Не по теме:
Ну и ещё из забавного: наш любимый COM++ в 50% случаев распознаётся как СОМ. На первый взгляд вроде бы никакой разницы
Но в первом случае, это Component Object Model, а во втором это огромная (аж с двумя плюсами!) рыба сом
Ну и разумеется, речевой движок именно так и прочитает
Ну и конечно, отвратительная схожесть цифры 1 с заглавной буквой I и строчной буквой l. OCR очень часто их путает. А движок как написано, так и прочитает. Ну вот и хочу вылавливать такие огрехи с помощью словаря.
Вот ещё вспомнил из забавного:
OneCore частенько распознаётся как ОпеСоге. Вот даже сейчас у меня на мониторе они выглядят совершенно одинаковыми, хотя я прекрасно знаю, что в первом случае это "ОдноЯдро", а во втором таинственное "ОПЕСОГЕ"
то поняли б, что не всё так гладко в уже разработанных прогах.
I can, почитайте ВСЕ страницы данной темы, чтоб увидеть, что Power_Basic изучает этот вопрос досконально - и потом уже критикуйте
И, самое главное: человек развивает свои способности...
Так что и тут возможны чудеса.
0
12.07.2020, 09:46

Не по теме:

Цитата Сообщение от Power_Basic Посмотреть сообщение
Но идея всё-таки, согласитесь, оригинальная
Точно такая же оригинальная идея как поехать (точнее полететь) из Москвы в Подмосковье через Австралию.

0
Наивное Существо
 Аватар для vedunasv
666 / 141 / 27
Регистрация: 09.05.2020
Сообщений: 750
Записей в блоге: 15
12.07.2020, 10:17
locm, конечно! А в Австралии страусы водятся. А их одно яйцо - это примерно 24 куриных. Так что такаят поездка трёх зайцев убьёт:
1. доехать в москву
2. посмотреть мир, чудеса по дороге
3. яйца.

Power_Basic, не слушайте никаких критиков, я с Вами.
1
bite
 Аватар для I can
5011 / 4841 / 852
Регистрация: 13.04.2015
Сообщений: 10,123
12.07.2020, 10:39
Цитата Сообщение от vedunasv Посмотреть сообщение
И, самое главное: человек развивает свои способности..
Это называется "сизифов труд".
Цитата Сообщение от vedunasv Посмотреть сообщение
Это как использовать эскаватор для копки ямы посадить двухлетний саженец....Если достаточно лопаты.
Но лопата как раз - это современные технологии, а экскаватор - это то, что он хочет сделать.
Весь вопрос решается буквально в 10 строк кода, но, конечно, не на vb6.
0
 Аватар для Power_Basic
46 / 25 / 0
Регистрация: 08.03.2016
Сообщений: 443
12.07.2020, 15:48  [ТС]

Не по теме:

Цитата Сообщение от I can Посмотреть сообщение
Есть же готовые сервисы по переводу и озвучке, с использованием обучаемых нейросетей, даже бесплатные. Зачем изобретать велосипед ? У вас всё-равно лучше не получится сделать
С нетерпением жду ссылку в личку на ваш любимый (проверенный) бесплатный сайт, предназначенный для распознавания текстов.

На самом деле, я же уже успел попробовать парочку таких якобы бесплатных сайтов. Загружаешь туда книжку (900 страниц в формате PDF), они распознают ровно две первые страницы, а за всё остальное просят денежку :)
Ну а после этого даже и качество распознавания проверять уже как-то вся охота пропадает почему-то :)
Так что не могу судить, насколько ваши хвалёные обучаемые нейросети справляются с этой задачей лучше чем ABBYY FineReader, Foxit PhantomPDF и Solid Converter PDF, которые я сейчас использую.

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



Не по теме:

Цитата Сообщение от I can Посмотреть сообщение
Есть же готовые сервисы по переводу и озвучке, с использованием обучаемых нейросетей, даже бесплатные. Зачем изобретать велосипед ? У вас всё-равно лучше не получится сделать
А зачем же мне его заново изобретать, если он у меня уже вот прямо здесь стоит? Новенький, блестящий! :)
Это моя собственная TTS программа.
Собственно говоря, вся эта "эпопея" крутится вокруг того, что мне хочется озвучивать именно "компьютерные" тексты, а первой "жертвой" попалась под руку книга, которая доступна только в формате PDF.

Но, на самом деле, для меня очень большой сюрприз слышать аргументы в стиле "не изобретай велосипед" на сайте программистов.
Нет, когда мне мой хороший приятель говорит: "Зачем ты занимаешься всей этой ерундой, в интернете полно любых программ, скачивай любую, не изобретай велосипед", это мне понятно. Он целыми днями (и даже зимой!) играет в волейбол. Ну хобби у него такое.

А вот моё хобби - писать программы.
Кто-то пишет стихи, а я вот пишу программы :)
Ну хобби у меня такое :)
Для меня это, своего рода, творчество.

Ну вы же, например, не станете говорить начинающему поэту-любителю: "Зачем ты пробуешь писать свои стихи, если лучше Есенина всё равно не напишешь. Не изобретай велосипед, открывай книжку и читай!" :)

Да мы все здесь на этом форуме, по большому счёту, "изобретаем велосипеды" :)
Ну не закрывать же теперь форум по этой причине :)
А то да, повесить в шапке объявление крупными буквами: "Форум закрыт и распущен! Хорош изобретать велосипеды! Граждане, пользуйтесь услугами бесплатных обучаемых нейросетей! С уважением, Администрация сайта" :)



Добавлено через 11 минут

Не по теме:

Цитата Сообщение от locm Посмотреть сообщение
Цитата Сообщение от Power_Basic
Но идея всё-таки, согласитесь, оригинальная
Точно такая же оригинальная идея как поехать (точнее полететь) из Москвы в Подмосковье через Австралию.
Ну там же ещё самайлик был :)



Добавлено через 2 минуты

Не по теме:

Цитата Сообщение от vedunasv Посмотреть сообщение
3. яйца.
Да мне достаточно и своих двух :)
За третьим в Австралию уж точно не поеду :)



Добавлено через 51 секунду

Не по теме:

Цитата Сообщение от vedunasv Посмотреть сообщение
Power_Basic, не слушайте никаких критиков, я с Вами.
Спасибо за поддержку в это нелёгкое время! :)



Добавлено через 2 минуты
Цитата Сообщение от I can Посмотреть сообщение
Весь вопрос решается буквально в 10 строк кода, но, конечно, не на vb6.
Мы вот прямо сейчас находимся на подфоруме "Visual Basic". Мне этот диалект очень нравится и поэтому именно здесь я опубликовал свой вопрос и уже получил вполне устраивающий меня ответ.

Ну пусть это не 10 строчек кода, а 20. Для меня эта разница несущественна
0
bite
 Аватар для I can
5011 / 4841 / 852
Регистрация: 13.04.2015
Сообщений: 10,123
12.07.2020, 16:24
Цитата Сообщение от Power_Basic Посмотреть сообщение
Граждане, пользуйтесь услугами бесплатных обучаемых нейросетей!
А почему бы и не использовать, если есть готовый удобный инструмент ? Или у вас от них изжога ?
Вы же среду разработки не сами писали, а тут какие-то предубеждения появились... Непонятно.

Добавлено через 19 минут
Цитата Сообщение от Power_Basic Посмотреть сообщение
Это моя собственная TTS программа.
Да и с этим не всё понятно. Наверняка используете SAPI, lame, BASS, FFmpeg и т.п. Почему не пишите с нуля всё ?
0
 Аватар для Power_Basic
46 / 25 / 0
Регистрация: 08.03.2016
Сообщений: 443
12.07.2020, 16:30  [ТС]
Цитата Сообщение от I can Посмотреть сообщение
А почему бы и не использовать, если есть готовый удобный инструмент ? Или у вас от них изжога ?
Вы же среду разработки не сами писали, а тут какие-то предубеждения появились... Непонятно.
Слушайте, уважаемый, давайте прекратим этот взаимный бессмысленный флуд. Вопрос уже решён, тема закрыта.
Мне реально на этом форуме постоянно помогают 3 серьёзных специалиста: The trick, Pro_grammer и locm, и мне этого вполне достаточно, и за это я им очень сильно благодарен.
А вот так вот придти к шапошному разбору и начать пустые разговоры, это уже без меня.

Ну нет, вообще-то я большой любитель поболтать на форумах и в чатах, да водится за мной такой грешок

Но только не здесь. Сюда я прихожу за конкретными ПОЛЕЗНЫМИ советами. Ну просто потому что у этого сайта такая вот специфика.

Тема закрыта!
1
bite
 Аватар для I can
5011 / 4841 / 852
Регистрация: 13.04.2015
Сообщений: 10,123
12.07.2020, 16:35
Цитата Сообщение от Power_Basic Посмотреть сообщение
Тема закрыта!
Вперёд, к новым велосипедам.
0
 Аватар для Fulcrum_013
2083 / 1576 / 169
Регистрация: 14.12.2014
Сообщений: 13,614
12.07.2020, 16:47
Цитата Сообщение от Power_Basic Посмотреть сообщение
А ещё вот такой вопрос. Может быть имеет смысл создать сразу несколько коллекций, - по одной на каждую букву?
Тогда уже префиксное дерево использовать.
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
12.07.2020, 16:47

Что делать с многими файлами большого и не очень текста, а точнее как бы по быстрее его загружать под Windows XP !?
Ситуация такая: ПК с WinXP Pro (x86) и 2ГБ оперативки. Есть много различных текстов. Я мог бы их отправить в doc, docx но тогда нужно...

Разбиение текста на отдельные слова и символы
Необходимо разбить текст, на отдельные символы и слова. К примеру, есть текстовый файл с кодом какой то небольшой программы на с#, его...

Вытащить из текста все отдельные слова
Задача в том, чтобы вытащить из текстового файла слова и отсортировать их по частоте встречаемости. Вторую часть программы могу сделать:)...

Парсинг текста на отдельные символы или слова
Есть вот такой текст 1024,32,"Agree",2,4,0,176,0,1,,2013-02-13 01:49:36,2013-02-13...

Объединить функции selectDate(), setPrev() и setNext() в одну наиболее рационально
<HTML> <HEAD> <META http-equiv="Content-Type" content="text/html; charset=windows-1251"> <TITLE>Календарь</TITLE> <STYLE...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
50
Ответ Создать тему
Новые блоги и статьи
Транслитерация текста с кириллицы на латиницу (вариант №2)
Maks 13.11.2026
Обновленная версия ранее созданной обработки. Добавлено: - Проверка исходного текста на кириллицу, через обращение к стандартной функции "ТолькоКириллицаВСтроке" из общего модуля. . .
Часы с термометром и праздничным календарем
yariko 12.11.2026
Сегодня мы рассмотрим как можно сделать отличные многофункциональные часы. Итак, поставим конкретную задачу: разработать часы с календарем, двумя термодатчиками, выводом поздравительных сообщений. . .
Транслитерация текста с кириллицы на латиницу (вариант №1)
Maks 11.11.2026
Решил облегчить жизнь себе и коллегам админам при создании электронных почтовых ящиков для пользователей, в результате написал обработку "Транслитерация текста" с кириллицы на латиницу, а в ней. . .
Книги по геймдизайну, левел-дизайну, игровым механикам и проектированию игрового опыта
8Observer8 08.11.2026
Содержание блога | English Version 1. 2003 - 06 - Designing Virtual Worlds (1st Edition) Автор: Richard A. Bartle | Объем: 768 стр. Ссылки: Amazon . . .
Родители токсичные абьюзеры по отношению к своим детям ругают их оскорбляют не любят
zorxor 08.11.2026
Жить в атмосфере постоянных оскорблений, критики и холодности со стороны родителей — это тяжелое и болезненное испытание, которое оставляет глубокие эмоциональные раны. Токсичное и абьюзивное. . .
Как только я захожу к себе в свою комнату я сразу же с себя снимаю свои трусы. Ответ от Джемени ИИ.
zorxor 08.11.2026
Джемени, как только я захожу к себе в свою комнату я сразу же с себя снимаю свои трусы. Многие люди, возвращаясь домой, сразу переодеваются в максимально свободную одежду или вовсе предпочитают. . .
Паттерн очереди действий/команд (Action / Command Queue). Система очереди действий и кат-сцен с SDL3 Callbacks, cglm и OpenGL
8Observer8 07.11.2026
Содержание блога | English Version Руководство для начинающих по реализации паттерна очереди действий/ команд (Action / Command Queue) на C++ (C++20) с использованием официального SDL3 Callbacks. . .
Проверка полного ФИО в типовом справочнике
Maks 07.11.2026
Решение реализовано в конфигурации КА2, на примере справочника "КонтактныеЛицаПартнеров". Задача: Запрет инициалов. Не допускаеть использование сокращений вида "И. И. ", "И. И. ", "И И" и. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru