Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Найти все вхождения 100 слов в длиииинный текст, текст не влезает в память 
V
    Опции темы
imageman
Дата 28.12.2012, 10:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 66
Регистрация: 30.9.2004

Репутация: нет
Всего: 1



Дано: длинный текст не помещающийся в память (или в кэш). 
Нужно найти "координаты" всех вхождений 100-300 слов (разной длины).

Т.е. на выходе что-то вроде: 1-е слово находится в тексте на позициях 3, 88, 900. 2-е слово не найдено. 3-е слово на позициях 1000, 1020, 1090

Тупой вариант использования find не проходит - текст длинный и слов довольно много, поэтому find жрет очень много ресурсов.

Сейчас есть мысль использовать через CRC (как в rsync), но смущает то, что слова разной длины (от 1-й до 15 букв).

Кто что посоветует?
PM MAIL   Вверх
Akina
Дата 28.12.2012, 10:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20581
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 20
Всего: 454



НаписАть спецприблуду для решения задачи.


--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
nworm
Дата 28.12.2012, 22:03 (ссылка) |    (голосов:2) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 502
Регистрация: 22.10.2005

Репутация: 4
Всего: 8



PM MAIL WWW   Вверх
skyboy
Дата 28.12.2012, 22:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


неОпытный
****


Профиль
Группа: Модератор
Сообщений: 9820
Регистрация: 18.5.2006
Где: Днепропетровск

Репутация: нет
Всего: 260



nworm, я правильно понял, что на основе словаря-списка искомых слов строится дерево? тогда сложность получается порядка N(длины текста для разбора), что очень круто  smile и ведь не сложная-то идея, но как-то сразу в голову и не придет. и не сразу — тоже smile
PM MAIL   Вверх
nworm
Дата 28.12.2012, 22:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 502
Регистрация: 22.10.2005

Репутация: 4
Всего: 8



Цитата

я правильно понял, что на основе словаря-списка искомых слов строится дерево?

Да, именно так.
PM MAIL WWW   Вверх
imageman
Дата 28.12.2012, 22:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 66
Регистрация: 30.9.2004

Репутация: нет
Всего: 1



буду изучать! Спасибо! Нечто подобное мне и предлагали знатоки (составление конечного автомата), но тут написано намного лучше и (похоже) то, что мне надо.

Это сообщение отредактировал(а) imageman - 29.12.2012, 12:41
PM MAIL   Вверх
Polesinskij
Дата 31.10.2013, 21:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 13
Регистрация: 31.10.2013

Репутация: нет
Всего: нет




Модератор: Сообщение скрыто.

PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Алгоритмы"

maxim1000

Форум "Алгоритмы" предназначен для обсуждения вопросов, связанных только с алгоритмами и структурами данных, без привязки к конкретному языку программирования и/или программному продукту.


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, maxim1000.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Алгоритмы | Следующая тема »


 




[ Время генерации скрипта: 0.1034 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.