Дело не в том, что одно является более полным, чем другое, а скорее в том, что у кого-то есть то, чего нет у другого, и наоборот. Это также вопрос предполагаемой аудитории и цели.
Mallet - это инструментарий машинного обучения на основе Java, целью которого является обеспечение надежных и быстрых реализаций для различных задач обработки естественного языка.
NLTK построен с использованием Python и поставляется с множеством дополнительных вещей, таких как корпоративные, таких как WordNet. NLTK больше ориентирован на людей, изучающих НЛП, и поэтому он больше используется в качестве учебной платформы и, возможно, в меньшей степени как техническое решение.
На мой взгляд, основное различие между ними состоит в том, что NLTK лучше позиционируется как учебный ресурс для людей, заинтересованных в машинном обучении, и NLP, поскольку он поставляется с целой кучей документации, примеров, корпусов и т. Д. И т. Д.
Маллет больше ориентирован на исследователей и практиков, которые работают в этой области и уже знают, что они хотят делать. Он поставляется с меньшим количеством документации (хотя он имеет хорошие примеры и API хорошо документирован) по сравнению с обширной коллекцией общих материалов НЛП NLTK.
UPDATE:
Хорошими статьями, описывающими их, были бы документы Маллета и примеры на http://mallet.cs.umass.edu/ - на боковой панели есть ссылки на теги последовательностей, моделирование тем и т. Д.
и для NLTK книга NLTK Обработка естественного языка с Python является хорошим введением как в NLTK, так и в NLP.
UPDATE
Я недавно нашел библиотеку sklearn Python. Это нацелено на машинное обучение в целом, а не непосредственно для НЛП, но может быть использовано и для этого. Он поставляется с очень большим выбором инструментов моделирования, и большинство из них, похоже, полагаются на NumPy, поэтому он должен быть довольно быстрым. Я использовал его немного и могу сказать, что он очень хорошо написан и задокументирован, и его активно продвигает сообщество разработчиков (по крайней мере, с мая 2013 года).
ОБНОВЛЕНИЕ 2
Я также уже некоторое время использую молоток (в частности, API для молотка) и могу сказать, что если вы планируете интегрировать молоток в другой проект, вы должны быть очень хорошо знакомы с Java и готовы тратить много времени. отладка практически полностью недокументированной базы кода.
Если все, что вам нужно, это использовать инструменты командной строки для молотка, это нормально, использование API требует много копаться в самом коде молотка и, как правило, также исправляет некоторые ошибки. Имейте в виду, что молоток поставляется с минимальной документацией по API.