Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Перебор текста по словарю [D7, WinXP]


Страницы:   1 2 3

_mik ©   (2006-07-14 22:18:00) 

Сдравствуйте!

Как можно организовать   быстрыйперебор теста по словарю!

Причем словарь имеет довольно большой размер ~35000 слов и словосочетаний!, причем синтаксис словаря такой:
[$][*][слово][*]=[чему то]
где
$ -  учитывать ли индекс;
* - любое кол-во символов;


_mik   (2006-07-16 23:22:00) [41]

Нет бинарный поиск, я начал использовать не давно!

Грубый перебор текста на наличие вхождений всех записей словаря начинающихся например с символа '*', да еще и наличие словосочетанийв словаре сильно замедляет процесс замены!

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


Virgo_Style   (2006-07-16 22:47:00) [42]

Бинарный поиск занимает 10 секунд для ~500 символов (грубо - 100 слов)? Хм...

Я бы пользовался не StringList, а массивом записей (и вынес бы флаги в отдельные поля). А можно и БД попробовать...


_mik   (2006-07-16 22:34:00) [43]

Уточню формат ловаря

[$][*]слово[*]=замена

например:
$Москва=мос>ква
или

2012-й г=две тысячи двена<дцатый год
$*—ХIX=- 19

т.е. если в тексте встретится например: 'Москва' то она должна поменятся на 'мос>ква'


_mik   (2006-07-16 22:29:00) [44]

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

Даже со словарем в 150 тыс слов (без обобщающих символов, кроме
'$' - учитывать ли регистр или нет)
к списку во время поиска программа обращается от силы 30~40 раз!

Я бы хотел реализовать обобшающие символы:
например: '*' хотябы в начале и конце слова,
а также поддержку словосочетаний для обработки ОМОГРАФОВ!


Virgo_Style   (2006-07-16 21:55:00) [45]

БД, "грубая" выборка с помощью LIKE, затем проверка?


_mik   (2006-07-16 21:35:00) [46]

Вся загвоздка у меня в том, что словарь содержит словосочетания, и обобщающие символы (синтаксис приведен выше), что существенно замедляет перебор текста!

Тупой перебор на Pentium 2.4HT теста ~500 символов занимает 10 сек при полной загрузки процессора, что для меня не приемлемо!

п.с. если когота заинтересовал компонент для работы с голосовыми движками (spichapi 4.0) могу выложить!


_mik   (2006-07-16 21:32:00) [47]

Прошу прощения за не точный вопрос!
- у меня есть какой либо текст (научный, художественный и т.п. и т.д)
- есть словарь произношений под этот текст (он содержит слова и словосочентания)

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


Ketmar   (2006-07-15 16:33:00) [48]

RBTrees. AVLTrees. и ты ды, и ты пы... подробности, блин, подробности!


Pavia   (2006-07-15 15:32:00) [49]

Я бы помог автору если понял, что нужно.

> перебор теста по словарю!

Что сие значит? Найти слово или слово сочитание в словоре?
Ну так это просто. B+ деревья или поиск по хэш.


Leonid Troyanovsky   (2006-07-15 01:45:00) [50]


> rvelat ©   (15.07.06 01:40) [3]

> перебор теста

> какого такого теста?


Ну, хоть какого-нибудь.

--
Regards, LVT.


Servelat   (2006-07-15 01:40:00) [51]

> Плиз, подробней, про [чему то].

подозреваю, что что-то - это перевод слова, если словарь иностранного языка =).


> перебор теста

какого такого теста?


Gero   (2006-07-15 00:14:00) [52]

Последовательным перебором и проверкой каждой строки на соответствие шаблону.


Leonid Troyanovsky   (2006-07-14 22:34:00) [53]


> _mik ©   (14.07.06 22:18)  
> Сдравствуйте!


И тебе тогож.

> Как можно организовать  быстрый перебор теста по словарю!

MSSQL.

> [$][*][слово][*]=[чему то]

Плиз, подробней, про [чему то].

--
Regards, LVT.


Страницы:   1 2 3

Наверх

Титульная страница Поиск, карта сайта Написать письмо