Я хотел бы знать, какой язык программирования лучше для обработки естественного языка. Java или Python ? Я нашел много вопросов и ответов по этому поводу. Но я все еще не могу выбрать, какой из них использовать.
И я хочу знать, какую библиотеку NLP использовать для Java, поскольку существует множество библиотек (LingPipe, GATE, OpenNLP, StandfordNLP). Для Python большинство программистов рекомендуют NLTK.
Но если мне нужно выполнить некоторую обработку текста или извлечение информации из неструктурированных данных (просто свободный текст на английском языке), чтобы получить полезную информацию, какой вариант лучше? Java или Python? Подходящая библиотека?
Обновлено
Что я хочу сделать, так это извлечь полезную информацию о продукте из неструктурированных данных (например, пользователи делают различные формы рекламы мобильных или ноутбуков на не очень стандартном английском языке).
Ответы:
Java против Python для НЛП - это предпочтение или необходимость. В зависимости от компании / проектов вам нужно будет использовать один или другой, и часто нет большого выбора, если вы не возглавляете проект.
Помимо
NLTK
(www.nltk.org), на самом деле существуют другие библиотеки для обработки текстаpython
:(подробнее см. https://pypi.python.org/pypi?%3Aaction=search&term=natural+language+processing&submit=search )
Ведь
Java
есть множество других, но вот другой список:Это хорошее сравнение для базовой обработки строк, см. 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 г.) инструмент НЛП: https://github.com/alvations/awesome-community-curated-nlp
Старый список инструментов НЛП (2013 г.): http://web.archive.org/web/20130703190201/http://yauhenklimovich.wordpress.com/2013/05/20/tools-nlp
Помимо инструментов языковой обработки, вам очень понадобятся
machine learning
инструменты для включения вNLP
конвейеры.Там целый диапазон
Python
иJava
, и еще раз это до предпочтений и библиотеки , являются ли достаточно легким:Библиотеки машинного обучения на Python:
(подробнее см. https://pypi.python.org/pypi?%3Aaction=search&term=machine+learning&submit=search )
С недавним (2015 г.) цунами глубокого обучения в НЛП , возможно, вы могли бы подумать: https://en.wikipedia.org/wiki/Comparison_of_deep_learning_software
Я буду избегать перечисления инструментов глубокого обучения из-за отсутствия фаворитизма / нейтралитета.
Другие вопросы по Stackoverflow, которые также касались инструментов NLP / ML:
источник
Вопрос очень открытый. Тем не менее, вместо того, чтобы выбирать один, ниже приводится сравнение в зависимости от языка, который вы хотели бы использовать (поскольку есть хорошие библиотеки, доступные на обоих языках).
Python
С точки зрения Python, первое, на что вам следует обратить внимание, - это Python Natural Language Toolkit . Как они отмечают в своем описании, NLTK является ведущей платформой для создания программ Python для работы с данными на человеческом языке. Он предоставляет простые в использовании интерфейсы для более чем 50 корпоративных и лексических ресурсов, таких как WordNet, а также набор библиотек обработки текста для классификации, токенизации, выделения корней, тегов, синтаксического анализа и семантического обоснования.
Вы также можете найти отличный код, созданный из проекта Google Natural Language Toolkit, основанного на Python. Вы можете найти ссылку на этот код здесь, на GitHub .
Ява
В первую очередь стоит поискать в Стэнфордской группе обработки естественного языка . Все распространяемое программное обеспечение написано на Java. Все последние дистрибутивы требуют Oracle Java 6+ или OpenJDK 7+. Пакеты распространения включают компоненты для вызова из командной строки, файлы jar, Java API и исходный код.
Еще один отличный вариант, который вы видите здесь во многих средах машинного обучения (общий вариант), - это Weka . Weka - это набор алгоритмов машинного обучения для задач интеллектуального анализа данных. Алгоритмы могут быть применены непосредственно к набору данных или вызваны из вашего собственного кода Java. Weka содержит инструменты для предварительной обработки данных, классификации, регрессии, кластеризации, правил ассоциации и визуализации. Он также хорошо подходит для разработки новых схем машинного обучения.
источник