Я пытаюсь найти способ просмотреть около миллиона документов, которые являются официальными документами (для примера, они являются тезисными документами). Они не все стандартизированы, но достаточно близки. Это заголовки, разделы, абзацы и т. Д. Существуют тонкие различия, которые могут возникнуть, например, в английском языке, мы называем заголовок «Заголовок», но по-французски это «Титр».
Таким образом, на мой взгляд, лучший способ сделать это - создать EBNF со всеми возможными комбинациями Title: = Title | Титр например.
Я не слишком заинтересован в том, чтобы придумать EBNF. Моя главная задача - как выполнить синтаксический анализ. Я смотрел ANTLR, OSLO, Irony и множество других, но у меня нет опыта, чтобы судить, подходят ли они для моей задачи.
Итак, мой вопрос к ученым среди вас:
- Какой инструмент DSL вы бы порекомендовали для анализа документов в таком масштабе?
- Какой инструмент DSL является наиболее точным при разборе, но при этом прощает сопоставление (т. Е. Должны ли мы определять правила для прописных и строчных букв, как насчет чисел против римских цифр и иностранного языка (французского).
- Существует ли какой-либо процесс / алгоритм, который я не рассмотрел, который вы бы порекомендовали в качестве альтернативы DSL? (Перезапись с нуля - вариант, но я бы хотел, чтобы что-то работало быстро).
- Кто-нибудь пытался добавить обучение и интеллект к алгоритмам анализа через DSL (например, генетические алгоритмы и нейронные сети)?
- Будете ли вы использовать эти инструменты DSL в производственной среде?
Моей платформой разработки является C #. Я упоминаю об этом, потому что в идеале я хотел бы интегрировать инструмент DSL в код, чтобы мы могли работать с ним из существующих приложений.