собственно проблема стоит в следующем: на входе имеем парсинг данных из различных мест - очень часто бывает так что буква следующего предложения "после точки" идет с маленькой буквы Пример: If you are preparing a lab report, it may help to have a template to work from. b Report Format. troduction or Background Information А нужно что бы было так: If you are preparing a lab report, it may help to have a template to work from. B Report Format. Troduction or Background Information то есть каждая буква после точки - если она маленькая заменяется на большую - как это сделать в апарсере?
Решается это с помощью шаблонизатора. Алгоритм таков: нужно разобрать строку на предложения (точка с пробелом выступят в качестве разделителя), в каждом заменить первую букву на большую и собрать. Спойлер: Код Код: [% text = 'If you are preparing a lab report. it may help to have a template to work from. b Report Format. troduction or Background Information'; FOREACH t IN text.split('\. '); (loop.count == text.split('\. ').size) ? t.ucfirst _ '.' : t.ucfirst _ '. '; END %]
с моими знания в программировании попытаюсь понять: на сколько я понимаю в переменную % text заносятся данные - с ними и работается в дальнейшем. [% text = 'ТОГДА ВОТ ТУТ ЧТО?';
Нет, это просто для примера. На практике это должна быть переменная содержащая текст. Вот немного модифицированный пример для HTML::TextExtractor P.S. Документация по Template Toolkit: http://a-parser.com/wiki/template-toolkit/
я прочитал всю доку - но так и не понял как это реализовать ... слаб мой навык ))) как бы так сделать что бы кто то это реализовал - если нужно по финансам что то стучи в личку надо что бы по поисковику - например бингу - это работало ...
мозг сломал, 2 литра валерьянки выпил пока разобрался ))) [% text = p1.serp.format('$query|$snippet\n'); FOREACH t IN text.split('\. '); (loop.count == text.split('\. ').size) ? t.ucfirst _ '.' : t.ucfirst _ '. '; END %] вот этот код подставил в Формат результата и заработало ....