помогите организовать мои данные для этой проблемы машинного обучения - PullRequest
3 голосов
/ 28 декабря 2010

Я хочу классифицировать твиты в рамках определенного набора категорий, таких как {'спорт', 'развлечения', 'любовь'} и т. Д.

Моя идея состоит в том, чтобы использовать термин частоты наиболеечасто используемые слова, чтобы помочь мне решить эту проблему.Например, слово «любовь» чаще всего встречается в категории love , но оно также появляется в спорте и развлечениях в форме «Я люблю эту игру» и «Я люблю этот фильм».

Чтобы решить эту проблему, я представил 3-осевой график, где значения x - это все слова, используемые в моих твитах, значения y - категории, а значения z - термин частоты (или некоторый тип оценки).) с уважением к слову и категории.Затем я разбил бы твит на график и затем добавил бы значения z в каждой категории.Категория с наибольшим общим значением z, скорее всего, является правильной категорией.Я знаю, что это сбивает с толку, поэтому позвольте мне привести пример:

Слово «часы» часто встречается в спорте и развлечениях («Я смотрю игру» и «Я смотрю мое любимое шоу»)... Поэтому я сузил это до этих двух категорий по крайней мере.Но слово «игра» не часто встречается в развлечениях, а шоу не часто встречается в спорте.значение Z для 'watch' + 'game' будет самым высоким для спортивной категории, а 'watch' + 'show' будет самым высоким для развлечений.

Теперь, когда вы понимаете, как работает моя идея, мне нужна помощьорганизация этих данных так, чтобы алгоритм машинного обучения мог предсказать категории, когда я даю ему слово или набор слов.Я много читал о SVM, и я думаю, что они путь.Я попробовал libsvm, но не могу найти хороший набор входных данных.Кроме того, libsvm не поддерживает нечисловые значения, что добавляет сложности.

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

Спасибо всем, я знаю, это было долго, извините.

Ответы [ 2 ]

2 голосов
/ 07 января 2011

Ну, вы пытаетесь сделать текстовую классификацию в группу категорий. Наивный Байес делает это. По сути, это статистический аналог вашей идеи. Предполагается, что частота слов в тексте является независимым показателем категории и дает вероятность каждой категории на основе этого предположения. Это хорошо работает на практике; Я считаю, что Weka имеет реализацию.

0 голосов
/ 25 ноября 2015

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

Вы можете использовать Наивный байесовский классификатор или классификатор Фишера (я предпочитаю Фишера) для классификации ваших документов.Вы можете найти реализацию обоих в библиотеках Python.

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

Все, что вам нужно, - это пройти главу6 (Фильтрация документов) книги «Программирование коллективного интеллекта: создание приложений Smart Web 2.0».В нем есть хорошее объяснение как классификаторов, так и примеров и реализации в python.

...