Вопрос

Нам нужен модуль классификации контента. Байесовский классификатор, кажется, это то, что я ищу. Должны ли мы пойти на апельсин или NLTK?

Это было полезно?

Решение

Что касается документации, наивная реализация байеса в каждой библиотеке проста в использовании, так почему бы не запустить ваши данные с обоими и сравнить результаты?

Как оранжевые, так и NLTK являются зрелыми, стабильными библиотеками (10 лет в разработке для каждой библиотеки), которые возникли в крупных университетах; Они разделяют некоторые общие функции, прежде всего, алгоритмы машинного обучения. Кроме того, они совершенно разные по объему, цели и реализации.

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

Его функции включают в IO, алгоритм анализа данных и холст визуализации данных.

NLTK, с другой стороны, начался как и остается академическим проектом в отделе вычислительной лингвистики крупного университета. Задача, которую вы упомянули (классификация содержимого документа) и ваш алгоритм выбора (наивный байесовский) в значительной степени находятся в основе функциональности NLTK. У NLTK действительно есть алгоритмы ML/Maning Data, но это только потому, что они имеют особую утилиту в вычислительной лингвистике.

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

Возможно, наивная реализация Байеса в Orange так же хороша, я все равно выбрал бы реализацию NLTK, потому что она четко оптимизирована для конкретной задачи, которую вы упомянули.

Существует множество учебных пособий по NLTK и, в частности, для его наивного байеса для классификации использования контента. Пост в блоге от Джим Плюс и другой в Streamhacker.com, Например, представляют отличные учебные пособия для использования наивным байесом NLTK; Второе включает в себя линейное обсуждение кода, необходимого для доступа к этому модулю. Авторы обоих этих постов сообщают о хороших результатах с использованием NLTK (92% в первом, 73% в последнем).

Другие советы

Я не знаю апельсин, но +1 для NLTK:

Я последовательно использовал инструменты классификации в NLTK для классификации текста и связанных с ними метаданных. Байесовский - это дефолт, но есть и другие альтернативы, такие как максимальная энтропия. Также будучи инструментарием, вы можете настроить, как видите FIT, например. Создание ваших собственных функций (что я сделал для метаданных).

У NLTK также есть пара хороших книг - одна из которых доступна под творческим сообщением (а также O'Reilly).

NLTK - это инструментарий, который поддерживает четырех государственную модель обработки естественного языка:

  1. Токенизация: группировка персонажей как слова. Это варьируется от Trivial Regex до работы с такими сокращениями, как «Не могу»
  2. Тег. Это применяется частиц речи к токенам (например, «NN» для существительного, «VBG» для глагола Gerund). Обычно это делается путем обучения модели (например, скрытого Маркова) на учебном корпусе (то есть большой список по предложениям с помощью ручной маркировки).
  3. Чункин/диапазон. Это принимает каждое помеченное предложение и извлечение функций в дерево (например, существительные фразы). Это может быть в соответствии с рукописной грамматикой или обученной на корпусе.
  4. Извлечение информации. Это пересекает дерево и извлечение данных. Вот где ваш конкретный апельсин = фрукты будут сделаны.

NLTK поддерживает Wordnet, огромный семантический словарь, который классифицирует слова. Таким образом, есть 5 определений существительных для апельсина (фрукты, дерево, пигмент, цвет, река в Южной Африке). Каждый из них имеет один или несколько «путей гипернам», которые являются иерархиями классификаций. Например, первое чувство «оранжевого» имеет два пути:

  • Orange/Citrus/Edible_fruit/Fruit/Reproduction_structure/plant_organ/plaint_part/artitude_object/whule/object/physical_entity/entity

а также

  • Orange/Citrus/Edible_fruit/Produce/Food/Solid/Matter/Physical_entity/Entity

В зависимости от вашего домена применения вы можете идентифицировать апельсин как фрукты, пищу или пищу. Тогда вы можете использовать структуру с кусочкой дерева, чтобы определить больше (кто сделал то, что с плодами и т. Д.)

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top