Фреймворк для извлечения Dbpedia - как убрать разметку в MediaWiki - PullRequest
3 голосов
/ 04 марта 2011

Я играю со структурой извлечения dbpedia.Кажется, это очень приятно, и я с удовольствием создаю AST-страницы википедии и извлекаю ссылки (используя WikiParser).Однако, хотя я получаю хорошее структурированное дерево из анализа, я замечаю, что текстовые узлы по-прежнему содержат много разметки форматирования (например, апострофы, используемые для курсива, полужирного шрифта и т. Д.).Для моих целей это не полезно - я просто хочу простой текст.

Я могу потратить некоторое время на написание своего собственного кода, чтобы убрать это, но я предполагаю, что что-то подобное будет полезно для dbpedia -и что он существует где-то в библиотеке.Я прав?И если так - где дополнительная функциональность, чтобы урезать ее до чистого текста?

В противном случае - кто-нибудь знает какие-либо другие (предпочтительно scala) пакеты для вырезания разметки MediaWiki?

Редактировать

В ответ на запрос о более подробной информации.Следующая разметка:

''An italicised '''bit''' of text'', <b>Some markup</b>

Проходит через dbpedia как содержимое TextNode, но не трогается.Я хотел бы иметь возможность либо сократить его до:

 An italicised bit of text, Some markup

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

Как таковой, конечный результат анализа dbpedia все еще полон разметки.

Надеюсь, что поможет.

Ответы [ 3 ]

2 голосов
/ 05 марта 2011

Итак, быстрый взгляд на исходный код SimpleWikiParser на sourceforge показывает, что с 29.01.2011 анализатор обрабатывает следующие объекты:

  • comments
  • ссылки
  • кодовые блоки
  • внутренние ссылки и внешние ссылки
  • свойства
  • таблицы.

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

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

Для автономного, но несовершенного решения вы можете выполнить несколько регулярных выражений замены на node.text,

1 голос
/ 08 апреля 2011

Проект gwtwiki (bliki) обрабатывает форматирование mediawiki -> pdf / html / etc.Это довольно полная структура для разбора и переформатирования текста в медиа-вики.

0 голосов
/ 10 августа 2011

Вы можете запустить этот процесс, используя WikiUtil.removeWikiEmphasis и добавив несколько дополнительных правил.

В моем случае я отображаю текст в toWikiText и связываю узлы с их именем назначения.

case text:TextNode => text.toWikiText
case link:LinkNode => {
link match {
   case external:ExternalLinkNode =>  (external.destination.toString)
   case internal:InternalLinkNode =>  (internal.destination.decodedWithNamespace)
   case inter:InterWikiLinkNode   =>  (inter.destination.decodedWithNamespace)
}
...