質問

名前付きエンティティ認識(NER)を使用して、データベース内のテキストに適切なタグを検索したい。

これに関するWikipediaの記事や、NERについて説明している他の多くのページがあることを知っています。

  • さまざまなアルゴリズムでどのような経験をしましたか
  • どのアルゴリズムをお勧めしますか?
  • 実装が最も簡単なアルゴリズムはどれですか(PHP / Python)?
  • アルゴリズムはどのように機能しますか?手動トレーニングが必要ですか?

例:

"昨年、私はバラク・オバマを見たロンドンにいました。 =>タグ:ロンドン、バラク・オバマ

あなたが私を助けてくれることを願っています。よろしくお願いします!

役に立ちましたか?

解決

チェックアウトを開始するには、Pythonでの作業を計画している場合、 http://www.nltk.org/ をチェックアウトします。私の知る限り、コードは「産業の強さ」ではありませんがしかし、それはあなたを始めるでしょう。

http://nltk.googlecode.comのセクション7.5をご覧ください。 /svn/trunk/doc/book/ch07.html ですが、アルゴリズムを理解するには、おそらく本の多くを読む必要があります。

こちらもご覧ください http://nlp.stanford.edu/software/CRF- NER.shtml 。これはJavaで行いました、

NERは簡単な主題ではなく、おそらく「これが最高のアルゴリズム」だと誰も言わないでしょう。ほとんどの人は賛否両論を持っています。

0.05ドル。

乾杯、

他のヒント

必要かどうかによって異なります:

NERについて学習するには NLTK から始めるのが最適です。 、および関連する書籍

最適なソリューションを実装するには: ここでは、最新技術を探す必要があります。 TREC の出版物をご覧ください。より専門的な会議は Biocreative (狭いフィールドに適用されるNERの良い例)です。 。

最も簡単なソリューションを実装するには:この場合、基本的には単純なタグ付けを行い、名詞としてタグ付けされた単語を引き出したいだけです。 nltkのタガーを使用するか、単に PyWordnet で各単語を検索し、最も一般的なタグを付けますwordsense。


ほとんどのアルゴリズムは何らかのトレーニングを必要とし、タグ付けする内容を表すコンテンツについてトレーニングされている場合に最高のパフォーマンスを発揮します。

いくつかのツールとAPIがあります。

DBPedia Spotlight( https:// githubと呼ばれるDBPediaの上に構築されたツールがあります。 com / dbpedia-spotlight / dbpedia-spotlight / wiki )。 RESTインターフェイスを使用するか、独自のサーバーをダウンロードしてインストールできます。素晴らしい点は、エンティティをDBPediaの存在にマッピングすることです。つまり、興味深いリンクデータを抽出できます。

AlchemyAPI(www.alchemyapi.com)にはRESTを介してこれを行うAPIがあり、フリーミアムモデルを使用しています。

ほとんどの手法は、エンティティを見つけるために少しのNLPに依存し、Wikipedia、DBPedia、Freebaseなどの基礎となるデータベースを使用して、曖昧さの排除と関連性を行います(たとえば、Appleについて言及している記事が果物や会社について...記事にApple社にリンクされている他のエンティティが含まれている場合、会社を選択します。

Yahoo Researchの最新のFast Entity Linkingシステムを試すこともできます。この論文では、ニューラルネットワークベースの埋め込みを使用したNERへの新しいアプローチへの参照も更新しました。

https://research.yahoo.com / publications / 8810 / lightweight-multilingual-entity-extraction-and-linking

人工ニューラルネットワークを使用して、名前付きエンティティの認識を実行できます。

名前付きエンティティ認識を実行するためのTensorFlow(python)の双方向LSTM + CRFネットワークの実装は次のとおりです。 https://github.com/Franck-Dernoncourt/NeuroNER (Linux / Mac / Windowsで動作)。

これは、いくつかの名前付きエンティティ認識データセットに関する最新の結果(またはそれに近いもの)を提供します。エールが言及しているように、それぞれの名前付きエンティティ認識アルゴリズムには、独自の欠点と欠点があります。

ANNアーキテクチャ:

ここに画像の説明を入力してください

TensorBoardで表示されるとおり:

ここに画像の説明を入力してください

NERについてはあまり知りませんが、その例から判断すると、単語内の大文字などを検索するアルゴリズムを作成できます。そのために、小さく考えている場合は、最も簡単に実装できるソリューションとして正規表現をお勧めします。

別のオプションは、対象のタグとして事前に識別された文字列に一致するテキストをデータベースと比較することです。

私の5セント。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top