Классификация текста с помощью Java



Мне нужно отнести текст или слово к определенной категории. Например, текст "Pink Floyd" должен быть классифицирован как "музыка" или "Викимедиа" как "технология" или "Эйнштейн" как "наука".



Как это можно сделать? Есть ли способ, которым я могу использовать DBpedia для того же самого? Если нет, то база данных должна быть обучена время от времени, верно?

698   5  

5 ответов:

Это проблема классификации текста. Глава книги Мэннинга, Рагхавана и Шютце по поиску информации - прекрасное введение. Я думаю, что для этого Вам не нужны ни DBPedia, ни NER, просто небольшой набор обучающих данных с метками и достаточным количеством помеченных примеров для всех ваших классов.

Да, DBpedia может быть хорошим выбором для такого рода проблем. Вам придется

  1. скомбинируйте структуру категорий DBpedia, чтобы получить правильную детализацию (например, Pink Floyd указан в Capitol Records artists и множестве других категорий, но не непосредственно в Music). Может быть, выбрать несколько больших категорий и попытаться найти, перечислены ли ваши концепции косвенно в них;
  2. нормализовать текст; Эйнштейн указан как Albert Einstein, а не einstein
  3. иметь дело с неоднозначностью, обусловленной терминами, описывающими множество концепций и понятий, принадлежащих к нескольким категориям верхнего уровня.
Эти проблемы могут быть решены с помощью машинного обучения, но я вижу, как это можно сделать, только если вы извлекаете эти термины вместе с соответствующими функциями из текущего текста. Но в этом случае вы можете также классифицировать весь текст в одну из категорий, выбранных на шаге 1.

Это хорошо изученная задача распознавания именованных сущностей. Если у вас нет особой потребности в развертывании своей собственной технологии (подсказка: это сложная проблема в целом), использование Gate или, возможно, одной из онлайн-служб, которая строится на ней (например, TSO Data Enrichment Service), было бы хорошим вариантом. Альтернативное онлайн сервис OpenCalais.

  1. сопоставление ваших категорий С DBPedia.
  2. индексируйте с помощью lucene выбранные категории DBPedia и помечайте данные вашими именами категорий.
  3. сделайте поиск ваших данных - маркировка, нормализация будет выполнена Lucene.

Этот подход каким-то образом связан с классификацией КНН.

Да DBpedia является хорошим выбором для классификации текста, так как вы можете использовать его предикаты/ отношения для запроса и извлечения значимой информации для конкретной категории.

Вы можете посмотреть в конечной точке для запроса Dbpedia: http://dbpedia.org/sparql

Далее, изучите базовый синтаксис SPARQL для запроса к конечной точке по следующей ссылке: http://www.w3.org/TR/rdf-sparql-query/

Comments

    Ничего не найдено.