Java ou Python para Processamento De Linguagem Natural [fechado]

Eu gostaria de saber qual linguagem de programação é melhor para o processamento de linguagem natural. Java ou Python? Encontrei muitas perguntas e respostas sobre isso. Mas ainda estou perdido em escolher qual usar.

e eu quero saber qual biblioteca NLP usar para Java, já que existem muitas bibliotecas (LingPipe, GATE, OpenNLP, StandfordNLP). Para Python, a maioria dos programadores recomendam NLTK.

mas se eu quiser fazer algum processamento de texto ou extracção de informação a partir de dados não estruturados (apenas texto Em inglês simples formado gratuitamente) para obter algumas informações úteis, Qual é a melhor opção? Java ou Python? Biblioteca adequada?

actualizado

o que eu quero fazer é extrair informações úteis sobre o produto a partir de dados não estruturados (por exemplo, os UTILIZADORES fazem diferentes formas de publicidade sobre telemóveis ou computadores portáteis com uma língua inglesa pouco normalizada)

Author: Wooble, 2014-04-07

2 answers

Java vs Python para NLP é muito uma preferência ou necessidade. Dependendo da empresa / projetos você precisará usar um ou outro e muitas vezes não há muita escolha a menos que você esteja dirigindo um projeto.

Excepto:NLTK (www.nltk.org), existem na verdade outras bibliotecas para processamento de texto Em python:

(para mais, veja https://pypi.python.org/pypi?%3Aaction=search&term=natural+language+processing&submit=search)

Para Java, Há toneladas de outros, mas aqui está outra lista:

Esta é uma boa comparação para o processamento básico de texto, Veja http://nltk.googlecode.com/svn/trunk/doc/howto/nlp-python.html

Uma comparação útil do portal vs UIMA vs OpenNLP, ver https://www.assembla.com/spaces/extraction-of-cost-data/wiki/Gate-vs-UIMA-vs-OpenNLP?version=4

Se você está incerto, Qual é a língua para ir para NLP, pessoalmente eu digo, "qualquer língua que lhe dará a análise/saída desejada", veja que língua ou ferramentas para aprender para o processamento da linguagem natural?

Aqui está uma recente (2017) das ferramentas NLP: https://github.com/alvations/awesome-community-curated-nlp

Uma lista mais antiga de NLP ferramentas (2013): http://web.archive.org/web/20130703190201/http://yauhenklimovich.wordpress.com/2013/05/20/tools-nlp


Para além das ferramentas de processamento da linguagem, seria muito necessário machine learning ferramentas a incorporar nos oleodutos NLP.

Há uma gama completa em Python e Java, e mais uma vez depende da preferência e se as bibliotecas são suficientemente amigáveis:

Bibliotecas de aprendizagem automática em python:

(para mais, ver https://pypi.python.org/pypi?%3Aaction=search&term=machine + aprendizagem e Envio=pesquisa)


Com o recente (2015) aprendizagem profunda tsunami em PNL, possivelmente, você poderia considerar: https://en.wikipedia.org/wiki/Comparison_of_deep_learning_software

Vou evitar listar ferramentas de aprendizagem profunda por não-favoritismo / neutralidade.

Outras questões de Stackoverflow que também pediram NLP / ML Ferramentas:

 120
Author: alvas, 2017-05-23 12:34:41
A questão está muito em aberto. Dito isto, em vez de escolher um, Abaixo está uma comparação dependendo da linguagem que você gostaria de usar (uma vez que existem boas bibliotecas disponíveis em ambos os idiomas).

Python

Em termos de Python, o primeiro lugar que você deve olhar é o Python Natural Language Toolkit . Como eles notam em sua descrição, NLTK é uma plataforma líder para construir programas Python para trabalhar com dados de linguagem humana. Fornece interfaces fáceis de usar para mais de 50 corpora e recursos lexicais, como WordNet, juntamente com um conjunto de bibliotecas de processamento de texto para classificação, tokenização, stemming, tagging, análise e raciocínio semântico.

Também há um código excelente que você pode procurar que se originou a partir do projeto Toolkit linguagem Natural do Google que é baseado em Python. Você pode encontrar um link para esse código aqui no GitHub .

Java

O primeiro lugar a procurar seria Stanford's Natural Language Processing Group. Todo o software que é distribuído lá é escrito em Java. Todas as distribuições recentes requerem Oracle Java 6+ ou OpenJDK 7+. Pacotes de distribuição incluem componentes para invocação de linha de comando, arquivos jar, uma API Java e código fonte.

Outra grande opção que você vê em muitos ambientes de aprendizagem de máquinas aqui (opção geral), é Weka . Weka é uma coleção de algoritmos de aprendizagem de máquinas para tarefas de mineração de dados. Os algoritmos podem ser aplicados diretamente a um conjunto de dados ou chamados a partir de seu próprio código Java. Weka contém ferramentas para pré-processamento de dados, classificação, regressão, agrupamento, regras de associação e visualização. É também adequado para o desenvolvimento de novos sistemas de aprendizagem por máquina.

 39
Author: Nathaniel Payne, 2014-04-10 22:19:07