6

Кто-нибудь знает хорошие модели текстовой классификации с открытым исходным кодом? Я знаю о Стэнфордском классификаторе, Weka, Mallet и т. Д., Но все они требуют обучения.классификаторы классификации категорий

Мне нужно классифицировать статьи новостей в разделе Спорт/Политика/Здоровье/Игры/и т. Д. Есть ли какие-либо подготовленные модели?

Алхимия, OpenCalais и т. Д. Не являются параметрами. Мне нужны инструменты с открытым исходным кодом (желательно на Java).

ответ

5

Имея предварительно обучен модель предполагает, что корпус, который был использован для подготовки от той же самой области, что и документы, которые вы пытаются классифицировать. Как правило, это не даст вам желаемых результатов, потому что у вас нет оригинального корпуса. Обучение машине не является статичным, когда вы тренируете классификатор, вам необходимо обновить модель, когда появятся новые функции/информация.

Возьмите, к примеру, классификационные статьи новостей, как вы хотите, в области спорта/политики/здравоохранения/игр/и т.д.

Первый, на каком языке? Мы говорим только об английском? Как было обозначено оригинальное тело? И самая большая неизвестная категория и т. Д.

Обучение вашего собственного классификатора действительно очень просто. Если вы классифицируете текст, MALLET - лучший выбор. Вы можете работать до 10 минут. Вы можете добавить MALLET в свое приложение менее чем за 1 час.

Если вы хотите классифицировать статьи новостей, существует множество корпусов с открытым исходным кодом, которые вы можете использовать в качестве базы для начала обучения. Я бы начал с Reuters-21578 или RCV-1.

+0

Большое спасибо, Шейн, за ваш ответ.Я обязательно посмотрю на данные, которые вы упомянули! Но да, я работаю только по английским данным и общим доменам новостных статей (похожих на те, которые классифицированы по Алхимии и OpenCalais). Я дам MALLET выстрел. – MFARID

+0

Отлично, дайте мне знать, если у вас возникнут проблемы! – Shane

0

Существует длинный список предварительно подготовленных моделей для OpenNLP

http://opennlp.sourceforge.net/models-1.5/

+1

Спасибо много, но ни один из них сделать текст-категоризации – MFARID

+0

Не уверен, если это будет номера вашей потребности https://cwiki.apache.org/MAHOUT/bayesian.html также цитируя пример, который приходит вместе с их источником. https://cwiki.apache.org/MAHOUT/wikipedia-bayes-example.html –

2

В зависимости от ваших потребностей существует множество классификаторов. Во-первых, я думаю, вы можете ограничить то, что вы хотите сделать с классификаторами.

И обучение является частью этапов классификации, я не думаю, что вы найдете много предварительно подготовленных классификаторов. Кроме того, обучение почти всегда является легкой частью классификации.

Это, как говорится, на самом деле есть много ресурсов, на которые вы можете посмотреть. Я не могу притворяться, чтобы взять кредит, но это один из примеров:

Weka - это набор машинных алгоритмов обучения для интеллектуального анализа данных. Это одна из самых популярных рамок классификации текста . Он содержит реализации широкого спектра алгоритмов, включая Naive Bayes и Vector Support Машины (SVM, перечисленные в разделе SMO) [Примечание: Другие широко используемые не-Java SVM-реализации - это SVM-Light, LibSVM и SVMTorch]. Связанным проектом является Kea (алгоритм извлечения ключей) алгоритм для извлечения ключевых фраз из текстовых документов.

Apache Lucene Mahout - Инкубатор проект созданных масштабируемых распределенных реализаций алгоритмов обучения общая машина на верхней части карты-свертка базы Hadoop.

Источник: http://www.searchenginecaffe.com/2007/03/java-open-source-text-mining-and.html

+0

Спасибо, Сердечно, за тебя ответ. – MFARID

2

Что вы имеете в виду по классификации очень важно.

Категория: Запланированная задача, для которой требуется предварительно маркированное тело заранее. Переходя от уже помеченного корпуса, вам необходимо создать модель, используя несколько методов и подходов, и, наконец, вы можете классифицировать немаркированный тестовый корпус с помощью этой модели. Если это так, вы можете использовать классификатор с несколькими классами, который обычно является бинарным деревом приложения двоичного классификатора. Современный подход для такого рода задач - использование отрасли машинного обучения, SVM. Два из лучших классификаторов SVM: LibSVM и SVMlight. Они с открытым исходным кодом, простые в использовании и включают в себя многоклассовые инструменты классификации. Наконец, вы должны провести обзор литературы, чтобы понять, что делать, а также получить хорошие результаты, потому что использование этих классификаторов само по себе недостаточно. Вы должны манипулировать/предварительно обработать ваш корпус, чтобы извлечь информационные детали (например, униграммы) и исключить шумные части. В общем, вам, скорее всего, предстоит пройти долгий путь, но НЛП - очень интересная тема и стоит работать.

Однако, если вы имеете в виду классификацию, это кластеризация, то проблема будет сложнее. Кластеризация - это задача без надзора, что означает, что вы не будете включать информацию о том, какой пример принадлежит какой группе/теме/классу. Существуют также академические работы по гибридным полуконтролируемым подходам, но они немного расходятся с реальной целью проблемы кластеризации. Предварительная обработка, которую вы должны использовать при управлении своим корпусом, имеет схожую природу с тем, что вы должны делать в проблеме классификации, поэтому я больше не буду упоминать об этом. Для кластеризации необходимо придерживаться нескольких подходов. Во-первых, вы можете использовать LDA (Latent Dirichlet Allocation) способ уменьшить размерность (количество измерений вашего пространственного пространства) вашего корпуса, что будет способствовать повышению эффективности и информации от функций. Рядом или после LDA вы можете использовать Иерархическое кластерирование или аналогичные другие методы, такие как K-Means, чтобы скопировать ваш немеченой корпус. Вы можете использовать Gensim или Scikit-Learn как инструменты с открытым исходным кодом для кластеризации. Оба являются мощными, хорошо документированными и простыми в использовании инструментами.

Во всех случаях делайте много академического чтения и пытайтесь понять теорию под этими задачами и проблемами. Таким образом, вы можете придумать инновационные и эффективные решения, для которых вы конкретно занимаетесь, потому что проблемы в НЛП обычно зависят от вашего тела, и вы, как правило, сами по себе, имея дело с вашей конкретной проблемой. Очень сложно найти общие и готовые к использованию решения, и я также не рекомендую полагаться на такой вариант.

Я могу ответить на ваш вопрос, извините за неуместные детали.

удачи =)

+0

Отличный ответ! Большое спасибо. Мне хорошо известно о классификации. Я искал поднадзорный подход, но с предварительно обученными моделями – MFARID

+1

Модель является основным результатом вашей работы по классификации; все остальное - для создания хорошей модели, которая соответствует вашим потребностям. В этом смысле попытка найти готовую к использованию модель не имеет значения и, скорее всего, невозможна. Это главным образом потому, что задача, которую вы пытаетесь достичь, корпус, над которым вы работаете, эффективность, в которой вы нуждаетесь, и все другие аспекты будут уникальными для вас и вашего дела; таким образом, дело в чистой удаче найти модель, которая удовлетворит ваши цели. Мой совет - как можно скорее запотевать руки, удачи =) – clancularius