Проблема классификации текстов Java [закрывается]

11
задан dmcer 13 May 2010 в 00:11
поделиться

4 ответа

Это похоже на достаточно простую задачу классификации на основе ключевых слов. Поскольку вы используете Java, для этого следует рассмотреть следующие пакеты: Classifier4J , Weka или Lucene Mahout .

Classifier4J

Classifier4J поддерживает классификацию с использованием наивного байесовского и векторного пространства модели.

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

Weka

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

Вы найдете руководство по использованию Weka для категоризации текста здесь .

Однако Weka распространяется под GPL . Вы не сможете использовать его для программного обеспечения с закрытым исходным кодом, которое хотите распространять. Но вы все равно можете использовать его для поддержки веб-службы.

Lucene Mahout

Mahout разработан для машинного обучения с очень большими наборами данных. Он построен на основе Apache Hadoop и поддерживает контролируемую классификацию с использованием наивного Байеса.

Вы найдете руководство по использованию Mahout для классификации текста здесь .

Как и Classifier4J, Mahout распространяется под либеральной лицензией на программное обеспечение Apache .

29
ответ дан 3 December 2019 в 03:17
поделиться

Итак, вы хотите создать карту тегов, содержащую коллекцию книг?

РЕДАКТИРОВАТЬ:

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

Либо Lucene , либо Classifier4j предлагают основу для этого.

0
ответ дан 3 December 2019 в 03:17
поделиться

Вы можете найти алгоритмы нечеткого сопоставления , такие как Soundex и Levenshtein.

-1
ответ дан 3 December 2019 в 03:17
поделиться

Вы не хотите чего-то такого же простого?

Map<Tag, ArrayList<Book>> m = {};
for (Book b : books) {
    for (tag t : b.taglist) {
        m.get(t).add(b);
    }
}

Теперь m.get("IT") вернет все книги по IT и т.д....

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

0
ответ дан 3 December 2019 в 03:17
поделиться
Другие вопросы по тегам:

Похожие вопросы: