Классификация текста с помощью Java
Мне нужно отнести текст или слово к определенной категории. Например, текст "Pink Floyd" должен быть классифицирован как "музыка" или "Викимедиа" как "технология" или "Эйнштейн" как "наука".
Как это можно сделать? Есть ли способ, которым я могу использовать DBpedia для того же самого? Если нет, то база данных должна быть обучена время от времени, верно?
5 ответов:
Это проблема классификации текста. Глава книги Мэннинга, Рагхавана и Шютце по поиску информации - прекрасное введение. Я думаю, что для этого Вам не нужны ни DBPedia, ни NER, просто небольшой набор обучающих данных с метками и достаточным количеством помеченных примеров для всех ваших классов.
Да, DBpedia может быть хорошим выбором для такого рода проблем. Вам придется
Эти проблемы могут быть решены с помощью машинного обучения, но я вижу, как это можно сделать, только если вы извлекаете эти термины вместе с соответствующими функциями из текущего текста. Но в этом случае вы можете также классифицировать весь текст в одну из категорий, выбранных на шаге 1.
- скомбинируйте структуру категорий DBpedia, чтобы получить правильную детализацию (например, Pink Floyd указан в
Capitol Records artistsи множестве других категорий, но не непосредственно вMusic). Может быть, выбрать несколько больших категорий и попытаться найти, перечислены ли ваши концепции косвенно в них;- нормализовать текст; Эйнштейн указан как
Albert Einstein, а неeinstein- иметь дело с неоднозначностью, обусловленной терминами, описывающими множество концепций и понятий, принадлежащих к нескольким категориям верхнего уровня.
Это хорошо изученная задача распознавания именованных сущностей. Если у вас нет особой потребности в развертывании своей собственной технологии (подсказка: это сложная проблема в целом), использование Gate или, возможно, одной из онлайн-служб, которая строится на ней (например, TSO Data Enrichment Service), было бы хорошим вариантом. Альтернативное онлайн сервис OpenCalais.
- сопоставление ваших категорий С DBPedia.
- индексируйте с помощью lucene выбранные категории DBPedia и помечайте данные вашими именами категорий.
- сделайте поиск ваших данных - маркировка, нормализация будет выполнена Lucene.
Этот подход каким-то образом связан с классификацией КНН.
Да DBpedia является хорошим выбором для классификации текста, так как вы можете использовать его предикаты/ отношения для запроса и извлечения значимой информации для конкретной категории.
Вы можете посмотреть в конечной точке для запроса Dbpedia: http://dbpedia.org/sparql
Далее, изучите базовый синтаксис SPARQL для запроса к конечной точке по следующей ссылке: http://www.w3.org/TR/rdf-sparql-query/
Comments