Как автоматически создавать шаблоны из html-страницы? - PullRequest
2 голосов
/ 08 июля 2011

У меня есть сценарий использования, в котором мне нужно визуализировать неформатированный текст в формате заданной веб-страницы программным способом на Java. Т.е. текст должен автоматически форматироваться как веб-страница со стилями, абзацами, маркерами и т. д.
Как я вижу вначале, мне придется проанализировать фрагмент неформатированного текста, чтобы выяснить кандидатов на абзацы, маркеры, заголовки и т. Д. Я намерен использовать анализаторы / токенизаторы Lucene для этой задачи. Есть ли альтернативы?
Вторая проблема заключается в преобразовании отформатированной веб-страницы в некоторый шаблон (например, шаблон скорости) с заполнителями для различных объектов, таких как заголовки, маркеры и т. Д.
Есть ли какая-нибудь библиотека анализа текста / шаблонов в Java, которая может помочь мне сделать это? Желательно с открытым исходным кодом.
Есть ли какие-либо другие предложения для лучшего выполнения задач такого рода в Java?

Спасибо за вашу помощь.

1 Ответ

1 голос
/ 08 июля 2011

Есть много сложностей в том, что вы делаете.

Пользовательский ввод

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

В идеале вы могли бы попросить их следовать общеизвестному языку разметки (Markdown, Textile и т. Д.) И использовать синтаксический анализатор с открытым исходным кодом для извлечения структуры.

Внешняя страница

Если используется какая-либо страница, единственное, на что вы можете положиться - это «структурная разметка».Предполагая, что вы знаете, что заголовок страницы должен быть «Hello World», и где-то на странице есть элемент «h1», вы можете, возможно, предположить , что именно туда может идти заголовок.

Но если страницы являются тегом div, и для дифференцирования рендеринга заголовка используется только CSS, а не объем текста, вам придется догадаться как выполняется стилизация: это просто невозможно, если вы не знаете, как создается страница.

Я не думаю, что Lucene поможет в этом (насколько я знаю, Lucene создан для создания индекса слов, используемых в основной массе текста; я не думаю, что это может помочь вам угадать, какиечасть текста должна быть заголовком, подзаголовком и т. д.)

Генерация шаблонов с внешней страницы

Если вы «догадались» правильно,вы можете сгенерировать содержимое путем

  • копирования со вставкой страницы
  • с заменой изменяемых частей на теги выбранного вами языка шаблона
  • с сохранением шаблона где-либо в шаблонизаторесистема может получить к нему доступ
  • настроить свой шаблон / систему просмотра (viewResolver для скорости), чтобы использовать правильный шаблон для правого человека

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

Более реалистичное решение

Я бы предложил вам создатьВ вашей проблеме:

  • с использованием ввода, имеющего некоторую информацию о структуре (используйте GUI для ввода, используйте язык разметки и т. д.)
  • с использованием шаблонов, которые вас предоставить, знать структуру (и может очень легко использовать повторно)

Обратите внимание, что ни один из этих пунктов не связан с системой шаблонов.

В противном случае, я боюсьты направляешься на неоправданное количество работы ...

...