2013-09-23 4 views
1

Я работаю над проектом, который импортирует технические документы в систему слежения. Небольшое количество публикаций содержит встроенные HTML. Это нормально, и мы выделяем HTML, который обычно используется для добавления форматирования, такого как полужирный или курсив, в основной текст.Strip Math ML (конвертировать в обычный текст)

Теперь мы получаем документы, содержащие MathML. Существуют ли какие-либо библиотеки (или подходы), которые будут разделять разметку и давать разумный текстовый эквивалент? Я понимаю, что MathML допускает графические представления, но даже те, которые имеют текстовые эквиваленты.

+0

Вы просто хотите, чтобы сдуть разметку, или вы вместо этого хотите, чтобы преобразовать разметку из MathML к чему-то еще, скажем, LaTeX? Ведь Mathml уже является текстовым форматом. –

+0

Я понимаю, что если я хочу просто сдуть его, я, скорее всего, сделаю это с помощью какой-либо обработки регулярных выражений. Мне интересно, как конвертировать/разбирать/обрабатывать его, чтобы получить чистое текстовое представление или что-то очень близкое. В идеале, в конце концов, я заканчиваю текстовым представлением, таким как '(a + b + c)/(2 * 5)' (пример). – andleer

+0

Вы достигли какого-либо прогресса в этом вопросе? –

ответ

0

Для этого вам нужно обработать MathML и интерпретировать его. В отличие от удаления html-разметки, удаление дескрипторов обычно ограничивает значение из формулы.

Для этого вам понадобится парсер математики. Два приходят на ум, как Дэвид Карлайл, и оба XSLT на основе: pmml2tex преобразует в формат LaTeX, который часто более или менее читаемый: ваш пример будет визуализируются как \frac{a+b+c}{2\times 5}

В качестве альтернативы pmathmlascii делает маленький ASCII Art представление MathML , Ваш пример будет отображаться как

a + b + c 
--------- 
    2 * 5 

или аналогичный.

Обе таблицы стилей можно найти на сайте Google Code, и обсуждаются на https://code.google.com/p/web-xslt/wiki/Overview

+0

Спасибо за информацию. Посмотрите ... – andleer

Смежные вопросы