Да, обучение наивного байесовского классификатора для каждой категории и последующая маркировка каждого сообщения классом, на основе которого классификатор обеспечивает наивысший балл, является стандартным первым подходом к таким проблемам. Существуют более сложные алгоритмы классификатора для одного класса, которые можно заменить наивными Байеса, если вы обнаружите, что производительность неадекватна, например, «Механизм опорных векторов» (который, я считаю, доступен в NLTK через плагин Weka, но не положительный). Если вы не можете придумать что-то конкретное в этой проблемной области, которое сделало бы Naieve Bayes особенно неподходящим, оно часто становится «первой попыткой» для многих проектов.
Другим классификатором NLTK, который я хотел бы попробовать, был бы MaxEnt, поскольку я считаю, что он изначально обрабатывает мультиклассовую классификацию. (Хотя подход с множественными двоичными классификаторами очень стандартен и распространен). В любом случае самое главное - собрать очень большой корпус правильно помеченных текстовых сообщений.
Если под «текстовыми сообщениями» вы ссылаетесь на фактические текстовые сообщения мобильного телефона, то они, как правило, очень короткие, а язык очень неформальный и разнообразный, я думаю, что выбор функции может оказаться более важным фактором при определении точности, чем выбор классификатора. для тебя. Например, если использовать Stemmer или Lemmatizer, который понимает общие используемые сокращения и идиомы, помечать части речи или фрагменты, извлекать сущности, извлекать, вероятно, взаимосвязи между терминами, может дать больше взрыва, чем при использовании более сложных классификаторов.
В этом документе рассказывается о классификации сообщений о статусе Facebook на основе настроений, которые имеют некоторые из тех же проблем, и может дать некоторое представление об этом. Ссылки на кеш Google, потому что у меня проблемы с оригинальным сайтом:
http://docs.google.com/viewer?a=v&q=cache:_AeBYp6i1ooJ:nlp.stanford.edu/courses/cs224n/2010/reports/ssoriajr-kanej.pdf+maxent+classifier+multiple+classes&hl=en&gl=us&pid=bl&srcid=ADGEESi-eZHTZCQPo7AlcnaFdUws9nSN1P6X0BVmHjtlpKYGQnj7dtyHmXLSONa9Q9ziAQjliJnR8yD1Z-0WIpOjcmYbWO2zcB6z4RzkIhYI_Dfzx2WqU4jy2Le4wrEQv0yZp_QZyHQN&sig=AHIEtbQN4J_XciVhVI60oyrPb4164u681w&pli=1