66

私はいくつかの文の分析(主にTwitterアプリの場合)を行い、いくつかの一般的な特性を推測しようとしています。この種のものに適したRubyの自然言語処理ライブラリはありますか?

Ruby用の優れた自然言語処理ライブラリはありますか。私は非常に一般的なものを好みますが、どんなリードも大歓迎です!

4

11 に答える 11

64

3つの優れた成熟したNLPパッケージは、Stanford Core NLPOpen NLP、およびLingPipeです。スタンフォードコアNLPツール(GPLライセンス)およびOpenNLPツール(Apacheライセンス)へのRubyバインディングがあります。

より実験的な側面として、私はGPLの下でリリースされたText Retrieval、Extraction and Annotation Toolkit (Treat)を維持しています。これは、Rubyに存在するほぼすべてのNLP関連のgemに共通のAPIを提供します。以下のTreatの機能のリストは、Ruby1.9と互換性のある安定した自然言語処理gemの観点からも参考になります。

  • テキストセグメンターとトークナイザー(punkt-segmenter、、、、)tactful_tokenizersrx-englishscalpel
  • 英語、フランス語、ドイツ語の自然言語パーサーと英語の固有表現抽出(stanford-core-nlp)。
  • 語尾変化と活用( ) 、linguistics語幹変化( ruby-stemmer、、、など)uea-stemmerlingua
  • WordNetインターフェース(rwordnet)、POSタガー(、、rbtaggerなどengtagger
  • 言語(whatlanguage)、日付/時刻(chronic、、 ) kronicnickelキーワード(lda-ruby)の抽出。
  • 索引付けと全文検索によるテキスト検索(ferret)。
  • 固有表現抽出(stanford-core-nlp)。
  • decisiontree決定木( )、MLP(ruby-fann)、SVM(rb-libsvm)、線形分類( )を使用した基本的な機械学習tomz-liblinear-ruby-swig
  • テキストの類似性メトリック(、、levenshtein-ffi)。fuzzy-string-matchtf-idf-similarity

Treatには含まれていませんが、NLPに関連しています:hotwater(文字列距離アルゴリズム)、yomu(.doc、.docx、.pages、.odt、.rtf、.pdfを読み取るためのApache Tikiへのバインダー)、グラフランク(実装GraphRankの)。

于 2012-04-07T17:27:13.073 に答える
24

Ruby Linguisticsにはいくつかのものがあり、そこからいくつかのリンクがありますが、PythonのNLTKとはまだ近いようには見えません。

于 2009-06-16T03:02:06.880 に答える
11

いつでもjrubyを使用して、Javaライブラリを使用できます。

編集:jvmでネイティブにrubyを実行し、javaライブラリを簡単に活用できる機能は、rubyistにとって大きなプラスです。これは、このような状況で検討する必要がある優れたオプションです。

JAVAで使用するNLPツールキットはどれですか?

于 2009-06-16T03:49:53.060 に答える
9

ここで、RubyのいくつかのNLPアルゴリズムについて詳しく説明している優れた記事を見つけました。これには、ステマー、日時パーサー、および文法パーサーが含まれます。

于 2009-06-18T13:44:58.787 に答える
6

TREAT –テキスト検索および注釈ツールキット–は、Rubyで私が知っている最も包括的なツールキットです:https ://github.com/louismullie/treat/wiki/

于 2012-03-19T04:38:23.320 に答える
5

また、MonkeyLearnなどのSaaSAPIの使用を検討してください。機械学習を使用してテキスト分類子を簡単にトレーニングし、APIを介して統合できます。利用可能なRubySDKがあります。

独自の分類子を作成するだけでなく、感情分析、トピック分類、言語検出などのために事前に作成されたモジュールを選択できます。キーワード抽出やエンティティなどのエクストラクタもあり、パブリックモジュールをさらに追加していきます。

その他の優れた機能:

  • アルゴリズムを作成/テストするためのGUIがあります。
  • アルゴリズムは、クラウドコンピューティングプラットフォームで非常に高速に実行されます。
  • Rubyまたは他のプログラミング言語と統合できます。
于 2015-02-18T15:35:46.057 に答える
5

私はGitHubでRuby自然言語処理リソース(ライブラリ、API、およびプレゼンテーション)のリストを維持しており、ここにある他の回答にリストされているライブラリといくつかの追加ライブラリをカバーしています。

于 2015-03-28T00:40:39.270 に答える
4

これを試してみてください

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

stanford-core-nlpgemについて

このgemは、Stanford Core NLPパッケージへの高レベルのRubyバインディングを提供します。これは、トークン化、文のセグメンテーション、品詞タグ付け、字句解析、および英語、フランス語、ドイツ語の解析のための一連の自然言語処理ツールです。このパッケージは、英語の固有表現抽出と共参照解決も提供します。

http://nlp.stanford.edu/software/corenlp.shtml デモページ http://nlp.stanford.edu:8080/corenlp/

于 2013-01-07T19:47:45.403 に答える
2

これらの「一般的な特性」が何であるかについて、はるかに具体的にする必要があります。

NLPでは、文の「一般的な特性」は、数百万の異なることを意味する可能性があります。感情分析(つまり、話者の態度)、品詞の基本、人称代名詞の使用、文にアクティブまたはパッシブの動詞が含まれていますか。動詞の緊張と声...

あなたがそれを説明することについて漠然としているかどうかは気にしませんが、あなたが何を求めているのかわからない場合、私たちがあなたを助けることに具体的になる可能性はほとんどありません。

私の一般的な提案は、特にNLPの場合、特定の言語に限定するのではなく、その仕事に最適なツールを入手する必要があるということです。一般的なツールがどこにでも実装されている一部のタスクでは、特定の言語に制限することは問題ありませんが、NLPはその1つではありません。

Twitterを使用する際のもう1つの問題は、多くの文が奇妙で素晴らしい方法で半分焼き付けられたり圧縮されたりすることです。これは、ほとんどのNLPツールのトレーニングを受けていません。そこで役立つように、NUS SMSコーパスは、「学生が収集した約10,000件のSMSメッセージ」で構成されています。同様の制限と使用法があるため、それを分析すると、Twitterでの探索に役立つ場合があります。

もっと具体的に言うと、役立つツールをいくつか挙げてみます。

于 2009-06-16T03:35:30.980 に答える
1

MarkWatsonの無料の本PracticalSemanticWeb and Linked Data Applications、Java、Scala、Clojure、およびJRubyEditionをチェックします。彼は、java、clojure、ruby、およびscalaを使用したNLPに関する章を持っています。彼はまたあなたが必要とする資源へのリンクを提供します。

于 2012-02-03T20:39:56.937 に答える
1

このオプションを実装するためのより軽量でシンプルなものを探している人にとっては、私にとってはうまくいきました。

https://github.com/yohasebe/engtagger

于 2015-02-21T19:50:12.823 に答える