7

ですから、この質問は少し素朴かもしれませんが、Stackoverflow のフレンドリーな人々に聞いても問題ないと思いました。

私の現在の会社では、しばらくの間 NLP にサードパーティの API を使用しています。基本的に文字列を URL エンコードして送信すると、特定のエンティティが抽出され (探しているエンティティのリストがあります)、エンティティ : センチメントの json マッピングが返されます。最近、代わりにこのプロジェクトを社内に持ち込むことにしました。

私は過去 2 日間、NLTK、スタンフォード NLP、リングパイプを勉強してきましたが、基本的にこのプロジェクトを実行する車輪を再発明しているのかどうかわかりません。

元の非構造化テキストを含む大規模なテーブルと、そのテキストから抽出されたエンティティとその感情を含む別のテーブルが既にあります。エンティティは単一の単語です。例えば:

構造化されていないテキスト : ベッドに移動します。それは最高ではありませんでした。

実体 : ベッド

センチメント : ネガティブ

これは、エンティティと感情だけでなく、トレーニング データ (非構造化テキスト) があることを意味していると思います。では、NLP フレームワークの 1 つでこのトレーニング データを使用して、必要なものを得るにはどうすればよいでしょうか? 全く分からない。手順はある程度わかりましたが、よくわかりません:

  1. 文をトークン化する
  2. 単語をトークン化する
  3. 文中の名詞を探す (POS タグ付け)
  4. その文の感情を見つけます。

しかし、上記のケースでは、ベッドについて 2 つの異なる文で話しているので、それは失敗するはずですか?

質問 - 上記のタスクを達成するための最良のフレームワークと、それに関するチュートリアルを知っている人はいますか (注: 解決策を求めているわけではありません)。以前にこの作業を行ったことがある場合、このタスクは大きすぎて引き受けることができませんか? いくつかの商用 API を調べましたが、それらを使用するのはとてつもなく高価です (私たちは小さなスタートアップです)。

ありがとうスタックオーバーフロー!

4

4 に答える 4

3

OpenNLP も参照するライブラリがあります。少なくとも、名前ファインダーをトレーニングし、ドキュメント カテゴライザーを使用して感情分析を行うための小さなチュートリアルがあります。名前ファインダーを取得するには、テキスト内のエンティティに SGML タグを付けてトレーニング データを準備する必要があります。

http://opennlp.apache.org/documentation/1.5.3/manual/opennlp.html#tools.namefind.training

于 2014-04-29T09:13:50.443 に答える
1

NLTK は、リソースと共に単純な NER タガーを提供します。ただし、すべてのケース (日付の検索を含む) に適合するわけではありません。ただし、NLTK を使用すると、必要に応じて NER タガーを変更およびカスタマイズできます。このリンクは、カスタマイズ方法に関する基本的な例を含むいくつかのアイデアを提供する場合があります。また、scala と関数型プログラミングに慣れている場合、これは見逃せないツールの 1 つです。

乾杯...!

于 2014-12-17T07:48:59.093 に答える
1

私は最近、spaCyを発見しました。リンクでは、NLTK、CoreNLP と比較して速度と精度の点でパフォーマンスの比較を見つけることができ、それは本当にうまくいきます!

問題のタスクを解決することは、フレームワークの問題ではありません。NER 用とセンチメント用の 2 つの異なるシステムを使用でき、完全に独立させることができます。最近の誇大広告は、ニューラル ネットワークを使用することです。あなたも望むなら、エンティティとセンチメントを見つけるためのアテンション メカニズムを備えた再帰型ニューラル ネットワーク (NLP タスクで最高のパフォーマンスを示しています) をトレーニングすることもできます。

インターネットのいたるところに素晴らしいデモがあります。私が最後に読んで興味深いと思ったのは[1][2]です。

于 2017-04-21T08:36:05.980 に答える