Предложить категорию для фрагмента текста

1

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

Например, "кто Леди Гага?" вероятно, вернет "Развлечения", "Музыка" или "Знаменитость".

"Сколько бейсбола для бейсбола?" даст мне "Бейсбол" или "Спорт".

Категоризация не должна быть идеальной, но должна быть близкой.

Также есть где угодно, я могу получить список популярных категорий?

Теги:

4 ответа

3

Это проблема классификации документов - ваш "документ" - это просто запрос или текст.

Сначала вам нужно решить, что такое список возможных категорий. "Кто такая Леди Гага?" может быть Entertainment, Celebrity, Questions-In-English, Biography, People и т.д. Затем вы примените структуру принятия решений, чтобы назначить оценку для каждой категории для текста. Самый высокий балл - его категория - до тех пор, пока он превышает порог шума, и не существует категории второго места, которая слишком близка к дифференциации. Рамки принятия решений могут включать в себя такие подходы, как байесовская сеть или набор пользовательских правил.

Некоторые проекты с открытым исходным кодом, которые реализуют классификаторы, включают:

1

Скрининг экрана Wolfram alpha.

Вероятно, вы можете получить хороший список категорий из dmoz.

0

Другие проделали немало работы от вашего имени, поэтому я бы предложил просто использовать что-то вроде API OpenCalais. Там API-интерфейс python для API http://code.google.com/p/python-calais/.

"Кто такая Леди Гага?" кажется слишком коротким для текста, чтобы дать достойный ответ. Однако, если вы взяли на себя труд сделать двухэтапный процесс и захватить первый абзац из википедии для Lady Gaga, а затем предоставить это API OpenCalais, вы получите очень хорошие результаты.

Вы можете быстро проверить это, просто вырезав и вставив первый абзац из wikipedia в OpenCalais viewer. Результатом является классификация в теме "Культура развлечений" со 100-процентной достоверной оценкой.

Аналогично, пример бейсбола возвращает "спорт" как тему с другими социальными тегами "отдыха", "бейсбола" и т.д.

Изменить. Еще одна мысль, побуждаемая Кале использовать социальные тэги: отправка URL-адреса википедии для Lady Gaga в восхитительный API с помощью

curl -k https://user:[email protected]/v1/posts/suggest?url=http://en
.wikipedia.org/wiki/Lady_gaga

возвращает <?xml version="1.0" encoding="UTF-8"?> <suggest> <recommended>music</recommended> <recommended>wikipedia</recommended> <recommended>wiki</recommended> <recommended>people</recommended> <recommended>bio</recommended> <recommended>cool</recommended> <recommended>facts</recommended> <popular>music</popular> <popular>gaga</popular> <popular>ladygaga</popular> <popular>wikipedia</popular> <popular>lady</popular>

и т.д.. Должно быть достаточно легко игнорировать записи типа википедии/вики.

0

Не так много ответа, но, возможно, этот категориальный словарь поможет:

http://www.provalisresearch.com/wordstat/WordNet.html

Я предполагаю, что вы могли бы извлечь необычные слова из строки, посмотреть их в категоризированном словаре и вернуть категории, которые получают большинство совпадений на ваших условиях. Будет сложно использовать ссылки на поп-культуру, такие как "Lady Gaga", хотя... возможно, вы можете выполнить поиск Google и проанализировать результаты этого.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню