web-dev-qa-db-ja.com

Lucene Indexをフィードしながら無料のツールでエンティティを抽出/認識

現在、Lucene/ElasticSearchインデックスにフィードされるテキスト(Webからの多くの記事)から人名、場所、技術用語、およびカテゴリーを抽出するオプションを調査しています。その後、追加情報がメタデータとして追加され、検索の精度が向上します。

例えば。誰かが「改札」を照会すると、彼はクリケットスポーツを意味するのか、それともApacheプロジェクトを意味するのかを決定できるはずです。私はこれを自分で実装しようとしましたが、これまでのところ小さな成功です。現在、たくさんのツールを見つけましたが、それらがこのタスクに適しているか、どれがLuceneとうまく統合できるか、またはエンティティ抽出の精度が十分に高いかどうかはわかりません。

私の質問:

  • 上記のリストされたツールとその精度/再現のいくつかの経験がありますか?または、必要なトレーニングデータがある場合+利用可能。
  • すべてのツールのエンティティ抽出(NER)を開始できる記事またはチュートリアルはありますか?
  • どうすればLuceneと統合できますか?

その主題に関連するいくつかの質問はここにあります:

44
Karussell

「ウィケット」の例で直面している問題は、エンティティの抽出/認識(NER)ではなく、エンティティの曖昧性除去と呼ばれています。 NERは便利ですが、カテゴリが十分に具体的である場合に限られます。ほとんどのNERシステムには、スポーツとソフトウェアプロジェクトを区別するのに十分な細分性がありません(どちらのタイプも、一般的に認識されているタイプ(人、組織、場所)の範囲外になります)。

曖昧さをなくすには、エンティティを明確にする対象の知識ベースが必要です。カバー範囲が広いため、DBpediaが一般的な選択肢です。 DBPediaを使用してコンテンツからタグ/キーワードを抽出する方法]の私の回答を参照してください ここで、詳細な説明を提供し、明確化のためのいくつかのツールについて説明します。

これらのツールは、RESTのような言語に依存しないAPIを使用することが多く、それらがLuceneサポートを直接提供していることはわかりませんが、解決しようとしている問題に対して私の回答が有益であることを願っています。

17
John Lehmann

OpenNLPを使用して、トレーニングなしで人、場所、組織の名前を抽出できます。ここからダウンロードできる既存のモデルを使用するだけです: http://opennlp.sourceforge.net/models-1.5/

これらのモデルの1つを使用する方法の例については、以下を参照してください。 http://opennlp.Apache.org/documentation/1.5.3/manual/opennlp.html#tools.namefind

2
Abul Fayes

Rosoka は、ドキュメントに対する用語またはエンティティの重要性を測定する「Salience」の計算を提供する商用製品です。顕著性は、頻度ではなく言語の使用に基づいています。 salience値を使用すると、ドキュメント全体の主要なトピックを決定できます。出力はXMLまたはJSONの選択であり、Luceneで非常に簡単に使用できます。それはJavaで書かれています。 https://aws.Amazon.com/marketplace/pp/B00E6FGJZ で利用可能なAmazon Cloudバージョンがあります。試用の費用は$ 0.99 /時間です。 Rosoka Cloudバージョンには、完全なRosokaが提供するJava API機能のすべてが含まれているわけではありません。はい、どちらのバージョンも言語の使用法に基づいてエンティティと用語のあいまいさを解消します。

明確化は、人間であれソフトウェアであれ、違いを判別するのに十分なコンテキスト情報があることを要求します。コンテキストは、ドキュメント内、コーパス制約内、またはユーザーのコンテキスト内に含めることができます。前者はより具体的であり、後者はより大きな潜在的あいまいさを持っています。つまりキーワード「改札」をGoogle検索に入力すると、クリケット、Apacheソフトウェア、またはスターウォーズイウォーク文字(エンティティ)を参照できます。一般的な「ウィケットは打者によって守られている」という文は、文内にそれをオブジェクトとして解釈する文脈上の手がかりを持っています。 「Wicket Wystri Warrickは男性のEwokスカウトでした」は、個人エンティティ「Wicket Wystri Warrick」の名として「Wicket」を入力する必要があります。 「Welcome to Apache Wicket」には、「Wicket」が場所名の一部であるなどの文脈的な手掛かりがあります。

0
mike

最近、スタンフォード大学のCRF NERをいじっています。彼らはかなりの数のバージョンをリリースしました http://nlp.stanford.edu/software/CRF-NER.shtml

良い点は、自分の分類器をトレーニングできることです。自分のNERをトレーニングする方法のガイドラインがあるリンクをたどる必要があります。 http://nlp.stanford.edu/software/crf-faq.shtml#a 残念ながら、私の場合、名前付きエンティティはドキュメントから効率的に抽出されません。ほとんどのエンティティは検出されません。

あなたがそれが便利だと思ったときのために。

0
Abhro