tecnicas software programacion procesamiento natural lenguaje ejemplos conceptos basicos ruby artificial-intelligence nlp

ruby - programacion - procesamiento de lenguaje natural software



Procesamiento de lenguaje natural en Ruby (11)

Debes ser mucho más específico sobre cuáles son estas "características generales".

En NLP, las "características generales" de una oración pueden significar un millón de cosas diferentes: análisis del sentimiento (es decir, la actitud del hablante), parte básica del etiquetado del habla, uso del pronombre personal, ¿la oración contiene verbos activos o pasivos? tiempo y voz de los verbos ...

No me importa si eres vago acerca de describirlo, pero si no sabemos lo que estás preguntando, es muy poco probable que podamos ser específicos para ayudarte.

Mi sugerencia general, especialmente para NLP, es que debe obtener la herramienta mejor diseñada para el trabajo en lugar de limitarse a un idioma específico. Limitarse a un idioma específico está bien para algunas tareas donde las herramientas generales se implementan en todas partes, pero NLP no es una de ellas.

El otro problema al trabajar con Twitter es que muchas de las oraciones estarán medio cocidas o comprimidas de maneras extrañas y maravillosas, para lo cual la mayoría de las herramientas de PNL no están capacitadas. Para ayudar, el NUS SMS Corpus consiste en "alrededor de 10.000 mensajes SMS recopilados por los estudiantes". Debido a las restricciones y el uso similares, el análisis puede ser útil en sus exploraciones con Twitter.

Si eres más específico, intentaré enumerar algunas herramientas que te ayudarán.

Estoy buscando hacer un análisis de oraciones (principalmente para aplicaciones de Twitter) e inferir algunas características generales. ¿Hay alguna buena biblioteca de procesamiento de lenguaje natural para este tipo de cosas en Ruby?

Similar a Hay una buena biblioteca de procesamiento de lenguaje natural, pero para Ruby. Preferiría algo muy general, ¡pero cualquier pista es apreciada!


Encontré un excelente artículo que detalla algunos algoritmos NLP en Ruby here . Esto incluye stemmers, analizadores de tiempo de fecha y analizadores gramaticales.


Hay algunas cosas en Ruby Linguistics y algunos enlaces desde allí, aunque todavía no parece estar cerca de lo que NLTK es para Python.


Mantengo una lista de recursos de Ruby Natural Language Processing (bibliotecas, API y presentaciones) en GitHub que cubre las bibliotecas enumeradas en las otras respuestas aquí, así como algunas bibliotecas adicionales.



Prueba este

https://github.com/louismullie/stanford-core-nlp

Acerca de la joya stanford-core-nlp

Esta gema proporciona enlaces de Ruby de alto nivel al paquete Stanford Core NLP, un conjunto de herramientas de procesamiento de lenguaje natural para tokenización, segmentación de oraciones, etiquetado de parte de la voz, lematización y análisis de inglés, francés y alemán. El paquete también proporciona reconocimiento de entidad nombrada y resolución de correferencia para inglés.

http://nlp.stanford.edu/software/corenlp.shtml página de demostración http://nlp.stanford.edu:8080/corenlp/



Siempre puedes usar jruby y usar las bibliotecas de Java.

EDITAR: la capacidad de hacer Ruby de forma nativa en jvm y aprovechar fácilmente las bibliotecas de Java es una gran ventaja para los rubyistas. Esta es una buena opción que debe considerarse en una situación como esta.

¿Qué kit de herramientas NLP usar en JAVA?



También considere usar API de SaaS como MonkeyLearn . Puede entrenar fácilmente clasificadores de texto con el aprendizaje automático e integrarlos a través de una API. Hay un SDK de Ruby disponible.

Además de crear sus propios clasificadores, puede elegir módulos creados previamente para análisis de sentimientos, clasificación de temas, detección de idiomas y más. También tenemos extractores como extracción de palabras clave y entidades, y seguiremos agregando más módulos públicos.

Otras buenas características:

  • Usted tiene una GUI para crear / probar algoritmos.
  • Los algoritmos se ejecutan muy rápido en nuestra plataforma de computación en la nube.
  • Puede integrarse con Ruby o cualquier otro lenguaje de programación.

Tres paquetes NLP excelentes y maduros son Stanford Core NLP , Open NLP y LingPipe . Hay enlaces Ruby para las herramientas Stanford Core NLP (licencia GPL), así como las herramientas OpenNLP (licencia Apache).

En el lado más experimental de las cosas, mantengo un Toolkit (Treat) de Recuperación y Anotación de Textos , publicado bajo la GPL, que proporciona una API común para casi todas las gemas relacionadas con la PNL que existen para Ruby. La siguiente lista de características de Treat también puede servir como una buena referencia en términos de gemas estables de procesamiento de lenguaje natural compatibles con Ruby 1.9.

  • tactful_tokenizer texto y tokenizadores ( punkt-segmenter , tactful_tokenizer , srx-english , scalpel )
  • Analizadores de lenguaje natural para inglés, francés y alemán y extracción de entidad nombrada para inglés ( stanford-core-nlp ).
  • Inflexión y conjugación de palabras ( linguistics ), derivación ( ruby-stemmer , uea-stemmer , lingua , etc.)
  • Interfaz WordNet ( rwordnet ), etiquetadoras POS ( rbtagger , engtagger , etc.)
  • Lenguaje ( whatlanguage ), fecha / hora ( chronic , kronic , nickel ), palabra clave ( lda-ruby ) extracción.
  • Recuperación de texto con indexación y búsqueda de texto completo ( ferret ).
  • Extracción de entidad con nombre ( stanford-core-nlp ).
  • Aprendizaje automático básico con árboles de decisión (árbol de decisiontree ), MLP ( ruby-fann ), SVM ( rb-libsvm ) y clasificación lineal ( tomz-liblinear-ruby-swig ).
  • levenshtein-ffi similitud de texto ( levenshtein-ffi , fuzzy-string-match , tf-idf-similarity ).

No incluido en Treat, pero relevante para NLP: hotwater (algoritmos de distancia de cuerda), yomu (aglutinantes para Apache Tiki para leer .doc, .docx, .pages, .odt, .rtf, .pdf), graph-rank (una implementación de GraphRank).