лексические анализаторы / синтаксические анализаторы для (ООН) [закрытые] документы структурированного текста

7
задан wilson32 18 January 2010 в 16:57
поделиться

4 ответа

Большинство программ lex/yacc работают с хорошо определенной грамматикой. Если Вы можете определить грамматику в терминах BNF подобного формата (который большинство синтаксических анализаторов принимает аналогичный синтаксис), то Вы можете использовать любой из них. Это может означать очевидное. Тем не менее, вы все еще можете быть немного нечеткими вокруг "блоков" (маркеров) текста, которые будут частью вашей грамматики. В конце концов, вы определяете правила для ваших жетонов.

В прошлом я использовал Parse-RecDescent Perl модуль с разной степенью успеха для похожих проектов.

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

0
ответ дан 7 December 2019 в 20:37
поделиться
  1. Определите стандарт аннотации, что указывает на то, как вы хотели бы сломать.
  2. Перейдите к Amazon Mechanical Turk и попросите людям маркировать 10K документы, используя свой стандарт аннотации.
  3. Поезд CRF (что похоже на HMM, но лучше) на эти учебные данные.

Если вы действительно хотите пойти по этому маршруту, я могу уточнить детали. Но это будет много работы.

0
ответ дан 7 December 2019 в 20:37
поделиться

Многие легкие языки разметки, такие как markdown (который, кстати, SO использует), reStructured text и (возможно) POD, похожи на те, о которых вы говорите. Они имеют минимальный синтаксис и разбивают ввод на разборчивые синтаксические фрагменты. Вы можете получить некоторую информацию, прочитав об их реализациях.

1
ответ дан 7 December 2019 в 20:37
поделиться

попробуйте: pygments, geshi, или prettify

Они могут справиться практически со всем, что вы им предложите, и очень снисходительны к ошибкам как в грамматике, так и в документах.

Ссылки:
gitorius использует prettify,
github использует pygments,
rosettacode использует geshi,

0
ответ дан 7 December 2019 в 20:37
поделиться
Другие вопросы по тегам:

Похожие вопросы: