Ответ 1
Java vs Python для NLP - это очень предпочтение или необходимость. В зависимости от компании/проектов вам нужно будет использовать один или другой, и часто нет выбора, если вы не возглавляете проект.
Помимо NLTK
(www.nltk.org), на самом деле существуют другие библиотеки для обработки текста в python
:
- TextBlob: http://textblob.readthedocs.org/en/dev/
- Gensim: http://radimrehurek.com/gensim/
- Шаблон: http://www.clips.ua.ac.be/pattern
- Spacy:: http://spacy.io
- Оранжевый: http://orange.biolab.si/features/
- Ананас: https://github.com/proycon/pynlpl
(подробнее см. https://pypi.python.org/pypi?%3Aaction=search&term=natural+language+processing&submit=search)
Для Java
есть несколько других, но здесь есть еще один список:
- Freeling: http://nlp.lsi.upc.edu/freeling/
- OpenNLP: http://opennlp.apache.org/
- LingPipe: http://alias-i.com/lingpipe/
- Stanford CoreNLP: http://stanfordnlp.github.io/CoreNLP/ (поставляется с оболочками для других языков, включая python)
- CogComp NLP: https://github.com/CogComp/cogcomp-nlp
Это хорошее сравнение для базовой обработки строк, см. http://nltk.googlecode.com/svn/trunk/doc/howto/nlp-python.html
Полезное сравнение GATE с UIMA и OpenNLP, см. https://www.assembla.com/spaces/extraction-of-cost-data/wiki/Gate-vs-UIMA-vs-OpenNLP?version=4
Если вы сомневаетесь, какой язык для НЛП, лично я говорю, "любой язык, который даст вам желаемый анализ/вывод", см. На каком языке или инструменты для обучения естественному языку?
Вот довольно недавние (2017) инструменты NLP: https://github.com/alvations/awesome-community-curated-nlp
Более старый список инструментов NLP (2013): http://web.archive.org/web/20130703190201/http://yauhenklimovich.wordpress.com/2013/05/20/tools-nlp
Помимо инструментов обработки языка вам очень нужны инструменты machine learning
для включения в конвейеры NLP
.
В диапазоне python
и Java
имеется целый диапазон, и еще раз это зависит от предпочтений и достаточно ли удобны библиотеки:
Машинное обучение библиотек в python:
- Sklearn (Scikit-learn): http://scikit-learn.org/stable/
- Молоко: http://luispedro.org/software/milk
- Scipy: http://www.scipy.org/
- Theano: http://deeplearning.net/software/theano/
- PyML: http://pyml.sourceforge.net/
- pyBrain: http://pybrain.org/
- Graphlab Создать (Commerical tool, но бесплатная академическая лицензия на 1 год): https://dato.com/products/create/
(подробнее см. https://pypi.python.org/pypi?%3Aaction=search&term=machine+learning&submit=search)
- Weka: http://www.cs.waikato.ac.nz/ml/weka/index.html
- Mallet: http://mallet.cs.umass.edu/
- Mahout: https://mahout.apache.org/
С недавним (2015) глубоким обучением цунами в НЛП, возможно, вы могли бы рассмотреть: https://en.wikipedia.org/wiki/Comparison_of_deep_learning_software
Я избегу перечислять инструменты глубокого обучения из не-фаворитизма/нейтралитета.
Другие вопросы о Stackoverflow, которые также запрашивали инструменты NLP/ML:
- Машинное обучение и обработка естественного языка
- Каковы хорошие отправные точки для кого-то, кто интересуется обработкой на естественном языке?
- Обработка естественного языка
- Обработка естественного языка в Java (NLP)
- Есть ли хорошая библиотека обработки естественного языка
- Простой запуск обработки исходного языка для Java
- Какие библиотеки предлагают базовые или продвинутые методы НЛП?
- Последние хорошие языки и книги для обработки естественного языка, основы
- (для NER) Извлечение/распознавание сущностей с помощью бесплатных инструментов при подаче индекса Lucene
- (С PHP) Инструменты программирования NLP с использованием PHP?
- (с Ruby) https://stackoverflow.com/questions/3776361/ruby-nlp-libraries