Хранение текстовых аннотаций NLP и доступ к ним

У меня есть большой корпус текста (около 10 миллионов предложений), который я хотел бы предварительно обработать с помощью различных инструментов НЛП (теггер POS, анализатор синтаксиса, анализатор зависимостей и т. д.). Мне нужно каким-то образом хранить различные слои аннотаций, созданные этими инструментами, и получать к ним доступ «на лету» из моего кода Java (возможно, предоставляя начальный и конечный индексы текстового диапазона в корпусе и тип аннотации) .

Существует ли уже система программного обеспечения для быстрого хранения и доступа к этим аннотациям? Если нет, то как лучше всего хранить и получать доступ к этим аннотациям? Скорость доступа была бы наиболее важной.


person erraticfl    schedule 17.08.2012    source источник


Ответы (1)


Вы можете посмотреть на UIMA. Хотя это не механизм хранения, он предоставляет платформу для преобразования ваших неструктурированных текстовых данных в более структурированный формат путем применения различных аннотаторов (которые могут быть токенизаторами, разделителями предложений, POS-теггерами) в конвейере. Вывод содержит аннотации с начальным и конечным индексами в документе (вы можете преобразовать вывод в формат xml). Таким образом, вы можете разделить свой корпус на несколько документов, передать их через конвейеры UIMA и сохранить вывод в хранилище на основе документов, таком как MongoDB. Я думаю, что доступ к этим аннотациям на уровне документа имеет больше смысла, потому что контекст аннотаций имеет значение. Таким образом, вы можете получить эти аннотированные документы из хранилища MongoDB и получить доступ к аннотациям, используя начальный и конечный индексы или тип аннотации (токен, предложение и т. д.).

person Himanshu Gahlot    schedule 23.08.2012