Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » Обработка текста шаблонами

Модерирует : ShIvADeSt

 Версия для печати • ПодписатьсяДобавить в закладки

Открыть новую тему     Написать ответ в эту тему

VadKomarov



Junior Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Здравствуйте.
Уже есть много алгоритмов по работе с текстами. Но всё же уважаемые знатоки мне требуется ваши советы и рекомендации.
Перейду сразу к задаче.
Есть какой то текст и не известно какого объема, может быть и абзац а может и не одна книга.
необходимо в максимально короткие сроки обрабатывать этот текст согласно неких шаблонов которые будут создавать пользователи.
и так ТЕКСТ и N-шаблонов.
что может представлять из себя шаблон:


шаблон 1

Код:
жестко заданный текст {переменная} жестко заданный текст -2 {переменная 2}
жестко заданный текст-3 {переменная 3} жестко заданный текст -4 {переменная 4}



шаблон 2

Код:
{определенной длины переменная} жестко заданный текс {переменная}  
жестко заданный текс {переменная} жестко заданный текс-2 {переменная 2}
 


шаблон 3

Код:
жестко заданный текст {переменная} жестко заданный текст -2 {переменная 2} жестко заданный текст-3 {переменная 3}
жестко заданный текст -4 {переменная 4} жестко заданный текст -5 {переменная 5}



шаблон 4

Код:
жестко заданный текст {переменная} жестко заданный текст -2 {переменная 2}



теперь что точно нам известно...
если шаблон стостоит из нескольких абзацев то и в тексте сравнивать надо с несколькими абзацами.
 
подводные камни....
шаблон может быть частью одного из шаблонов и соответственно надо выбрать наиболее подходящий к примеру шаблон 4 это часть шаблона 1 и шаблона 2 если делить по абзацам, но если в тексте нет явного совпадения с шаблонами 1,2 то использовать шаблон 4 именно для этого участка текста.
 
какие могут быт проблемы: обрабатываемый текст создается людьми и может содержать к примеру двойной пробел или какой нибудь непечатываемый и не видимый символ и собственно при "наложении" жестко заданного текста из шаблона будет не соответствие.
Пример  

  • шаблон [объединенная корпорация {НАЗВАНИЕ} занимается {ДЕЙСТВИЕ}{ПРОДУКЦИЯ} с {ДАТА}]
  • часть обрабатываемого текста с двойным пробелом [...объединенная   корпорация "ЛЕСНИК" занимается выращиванием сосны с 1950 года.....]

 
необходимо обработать текст и исходя из всех существующих и подходящих шаблонов а собранные результаты уже обрабатывать.
 
к примеру  

Код:
объединенных корпораций     - 4
магазинов - 100
реализуют продукцию (виноград, горох, .....)
по выбранным вами параметрам фирмы находящиеся на рынке более 5 лет
 

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

Всего записей: 100 | Зарегистр. 01-05-2005 | Отправлено: 07:42 05-04-2015
LadyOfWood

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Я не понял задача в генерации текста по заданному шаблону или вытащить переменные из текста используя данный шаблон?

Всего записей: 620 | Зарегистр. 16-09-2003 | Отправлено: 19:34 05-04-2015
nyinick



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
LadyOfWood
Я так понимаю у автора задача:

Цитата:
 вытащить переменные из текста используя данный шаблон?

 
В сторону каких алгоритмов смотреть? К примеру парсинг html кода из этой серии  
Ещё лет 15 назад писал граббер информации с сайта, так вот текст выдирал по шаблонам, основная функция, используемая в алгоритме была Pos (дельфийская)  
Сейчас уже его тоговые решения для парсинга текста и регулярные выражения. На счёт первых не смогу посоветовать, но вот второе - тоже вполне рабочий подход парсинга. Если шаблоны текста заранее известны, то подставляете в регулярки нужные части текста и выдираете из пользовательских документов уже тот текст, который находится в переменных по отношению к шаблону.

Всего записей: 251 | Зарегистр. 26-06-2006 | Отправлено: 19:46 05-04-2015
LadyOfWood

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
Я так понимаю у автора задача:  

Тогда либо простой поиск либо регулярки, вообще как бы регуляные выражения большей частью для этого и нужны.

Всего записей: 620 | Зарегистр. 16-09-2003 | Отправлено: 23:29 05-04-2015
exteris

Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Регулярные выражения. Есть готовые библиотеки для delphi.

Всего записей: 382 | Зарегистр. 14-04-2003 | Отправлено: 09:43 06-04-2015
LadyOfWood

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
Регулярные выражения. Есть готовые библиотеки для delphi.

Теперь уже никаких библиотек не надо)) PerlRegEx есть в поставке Delphi, правда с какой XE не скажу.

Всего записей: 620 | Зарегистр. 16-09-2003 | Отправлено: 14:29 06-04-2015
KDPoid



Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
Теперь уже никаких библиотек не надо)) PerlRegEx есть в поставке Delphi, правда с какой XE не скажу.
 

С самой первой XE
Если хочется воспользоваться регулярными выражениями в более ранних версиях, можно посмотреть здесь:
http://www.regular-expressions.info/delphi.html

Всего записей: 404 | Зарегистр. 08-08-2006 | Отправлено: 14:55 06-04-2015
VadKomarov



Junior Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
А можно ли для выборки необходимы мне данных их этих текстов использовать какие нибудь алгоритмы нечеткого сравнения строк или алгоритм шинглов? ну или еще какие может есть ?
 
Добавлено:
exteris
а какие библиотеки есть ? ссылку можете подкинуть ?

Всего записей: 100 | Зарегистр. 01-05-2005 | Отправлено: 18:13 06-04-2015
nyinick



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
VadKomarov, а чем Вам регулярки не подходят? Они могут сравнивать строки по очень гибким маскам, которыми нечёткость легко описывается...

Всего записей: 251 | Зарегистр. 26-06-2006 | Отправлено: 18:17 06-04-2015
VadKomarov



Junior Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
LadyOfWood
А еще просветите что такое регулярки )))) ну и примеры какие с использованием )) если есть ))) конечно  
 
да и вот с PerlRegEx можно по подробнее для чего это и с чем это едят )))
 
Добавлено:
nyinick
ну вот мне и интересно стало что это за регулярки и где сть доки нормальные по использованию с  примерами )))
 
 
Добавлено:
а то хотел уже что то из этого мутить http://delphiworld.narod.ru/base/compare_strings.html

Всего записей: 100 | Зарегистр. 01-05-2005 | Отправлено: 18:20 06-04-2015
LadyOfWood

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
VadKomarov
Примеров в сети вагон и маленькая тялежка, например простой поиск в гугле даст море источников. Вон ввреху ссылка, там в прниципе неплохой учебник.

Всего записей: 620 | Зарегистр. 16-09-2003 | Отправлено: 20:23 06-04-2015
nyinick



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
VadKomarov, про регулярные выражения в Delphi можно почитать в этих 3-х частях статьи, там правда рассматривается пример другого формата, но всё же доступным языком описаны основы использования TRegExp:
http://www.webdelphi.ru/2010/10/prakticheskoe-ispolzovanie-tregexp-v-delphi-xe-chast-1/
http://www.webdelphi.ru/2010/10/prakticheskoe-ispolzovanie-tregexp-v-delphi-xe-chast-2/
http://www.webdelphi.ru/2010/10/prakticheskoe-ispolzovanie-tregexp-v-delphi-xe-chast-3/

Всего записей: 251 | Зарегистр. 26-06-2006 | Отправлено: 20:26 06-04-2015
VadKomarov



Junior Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Спасибо почитаю всё

Всего записей: 100 | Зарегистр. 01-05-2005 | Отправлено: 10:35 07-04-2015
Открыть новую тему     Написать ответ в эту тему

Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » Обработка текста шаблонами


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2024

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru