64 votes

Traitement automatique du langage naturel

Je suis à la recherche à faire une certaine analyse d'une phrase (surtout pour twitter apps) et en déduire certaines caractéristiques générales. Il n'existe aucun bon traitement de la langue naturelle des bibliothèques pour ce genre de chose en Ruby?

Semblable à http://stackoverflow.com/questions/870460/java-is-there-a-good-natural-language-processing-library mais pour Ruby. Je préfère quelque chose de très général, mais tous les fils sont appréciées!

61voto

louism Points 1648

Trois excellents et mature PNL paquets sont Stanford de Base de la PNL, Ouvrir la PNL et LingPipe. Il y a des Rubis pour les liaisons de la Stanford de Base de la PNL outils (licence GPL) ainsi que la OpenNLP outils (Licence Apache).

Sur les plus expérimentaux de choses, je maintiens une Récupération de Texte, d'Extraction et d'Annotation Toolkit (Traiter), publié sous la licence GPL, qui fournit une API commune pour presque tous les PNL liés à la gemme qui existe pour Ruby. La liste suivante de Traiter les caractéristiques peuvent également servir comme une bonne référence en termes de stabilité du traitement de la langue naturelle pierres précieuses compatible avec Ruby 1.9.

  • Texte segmenters et des générateurs de jetons (punkt-segmenter, tactful_tokenizer, srx-english, scalpel)
  • Le langage naturel des analyseurs syntaxiques pour l'anglais, le français, l'allemand et l'extraction d'entités nommées pour l'anglais (stanford-core-nlp).
  • Mot d'inflexion et de la conjugaison (linguistics), issu (ruby-stemmer, uea-stemmer, lingua, etc.)
  • WordNet interface (rwordnet), POS marqueurs (rbtagger, engtagger, etc.)
  • Langue (whatlanguage), date/heure (chronic, kronic, nickel), le mot clé (lda-ruby) extraction.
  • Récupération de texte avec l'indexation et la recherche de texte intégral (ferret).
  • Nom de l'entité d'extraction (stanford-core-nlp).
  • Machine de base de l'apprentissage avec les arbres de décision (decisiontree), Scm (ruby-fann), les SVMs (rb-libsvm) et de la classification linéaire (tomz-liblinear-ruby-swig).
  • Texte métriques de similarité (levenshtein-ffi, fuzzy-string-match, tf-idf-similarity).

Non inclus dans le traitement, mais qui sont pertinentes à la PNL: chaudes (string distance algorithmes), yomu (liants pour Apache Tiki pour la lecture .doc, .docx, .pages, .odt, .rtf, .pdf), graphique-rang (une mise en œuvre de GraphRank).

23voto

Alex Martelli Points 330805

Ruby Linguistics contient quelques éléments et certains liens qui en découlent, bien que cela ne semble pas encore très proche de ce que NLTK est pour Python.

11voto

jshen Points 3888

Vous pouvez toujours utiliser jruby et utiliser les bibliothèques java.

EDIT: La possibilité de faire ruby nativement sur le jvm et de tirer facilement parti des bibliothèques java est un gros plus pour les rubyists. C’est une bonne option à considérer dans une situation comme celle-ci.

Quelle boîte à outils de PNL utiliser dans JAVA?

9voto

Joey Robert Points 2488

J'ai trouvé un excellent article détaillant quelques algorithmes de PNL en Ruby ici . Cela inclut les analyseurs syntaxiques, les analyseurs date / heure et les analyseurs grammaticaux.

6voto

zanbri Points 1718

TREAT - la boîte à outils d'annotation et de récupération de texte - est la boîte à outils la plus complète que je connaisse pour Ruby: https://github.com/louismullie/treat/wiki/

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X