Open Calais のようなセマンティック サービスが、テキストから企業名、人名、技術コンセプト、キーワードなどをどのように割り出すのか疑問に思っていました。テキストを照合する大規模なデータベースがあるためでしょうか?
たとえば、Zemanta のようなサービスは、テキストにどの画像を提案するかをどのように判断するのでしょうか?
OpenCalais の Michal Finkelstein はこちら。
まず、関心をお寄せいただきありがとうございます。ここで返信しますが、OpenCalais フォーラムで詳細を読むこともお勧めします。そこには多くの情報がありますが、これらに限定されません: http://opencalais.com/tagging-information http://opencalais.com/how-does-calais-learn また、Twitter (@OpenCalais) でお気軽にフォローしてください。 )または team@opencalais.com までメールでお問い合わせください
今答えに:
OpenCalais は、自然言語処理とテキスト分析の分野における 10 年間の研究開発に基づいています。
テキストのトークン化、形態素解析、POS タグ付けから、名目上のフレーズと口頭のフレーズの浅い解析と識別まで、完全な「NLP スタック」(私たちはそう呼んでいます)をサポートしています。
エンティティを探すときにセマンティクスが作用します (別名エンティティ抽出、名前付きエンティティ認識)。その目的のために、発見ルールとレキシコン/ディクショナリを組み合わせた洗練されたルールベースのシステムがあります。この組み合わせにより、利用可能なリストに存在しない場合でも、会社/人物/映画などの名前を特定できます。
最も著名なエンティティ (人物、企業など) については、記事レベルで照応の解決、相互参照、および名前の正規化/正規化も実行するため、「John Smith」と「Mr. たとえば、Smith' は同じ人物を指している可能性があります。したがって、あなたの質問に対する簡単な答えは、いいえ、大規模なデータベースとの照合だけではありません。
イベント/事実は、発見ルールを 1 レベル深く取り入れているため、非常に興味深いものです。エンティティ間の関係を見つけて、M&A (2 つ以上の会社間の関係)、雇用の変更 (会社と人々の間の関係) などの適切なタイプでラベル付けします。言うまでもなく、レキシコンのみに基づくシステムでは、イベント/ファクトの抽出は不可能です。ほとんどの場合、当社のシステムは精度を重視して調整されていますが、精度と全体性の間で妥当なバランスを維持するよう常に努めています。
ところで、今月後半にはいくつかのクールな新しいメタデータ機能がリリースされる予定ですので、ご期待ください。
よろしく、
ミハル
リストされている特定のサービスについて詳しくは知りませんが、自然言語処理の分野では、一般的なテキストからこの種の情報を抽出できる技術が数多く開発されています。Sean が述べたように、候補用語があれば、それらの用語をコンテキスト内の他のいくつかのエンティティーで検索し、その検索結果を使用して、抽出された用語が実際のエンティティーであるという確信を判断することはそれほど難しくありません。興味。
OpenNLPは、自然言語処理を試してみたい場合に最適なプロジェクトです。あなたが名前を付けた機能は、名前付きエンティティ認識 (NER) (固有名詞、一般に、場合によっては日付も見つけるアルゴリズム) および/または Word Sense Disambiguation (WSD) (例: 「銀行」という単語) で最もよく達成されるでしょう。文脈に応じて異なる意味を持ち、テキストから情報を抽出する際に非常に重要になる可能性があります.「the plane banked left」、「the snow bank was high」、および「they robbed the bank」という文を考えると、どのように理解できるでしょうか?明確化は言語理解において重要な役割を果たします)
一般に、手法は相互に構築され、NER はより複雑なタスクの 1 つであるため、NER を成功させるには、通常、正確なトークナイザー (自然言語トークナイザー、気を付けてください。統計的アプローチが最もうまくいく傾向があります)、文字列ステマー (似た単語を共通語根に混同するアルゴリズム: そのため、情報提供者と情報提供者のような単語は同等に扱われます)、文の検出 (「Mr. Jones was tall.」は 1 つの文にすぎないため、句読点だけをチェックすることはできません)、part-of -音声タガー (POS タガー)、および WSD。
NLTK ( http://nltk.sourceforge.net ) と呼ばれる OpenNLP (の一部) の python ポートがありますが、まだあまり経験がありません。私の仕事のほとんどは、Java と C# の移植であり、うまく機能します。
もちろん、これらのアルゴリズムはすべて言語固有のものであり、実行にかなりの時間がかかる場合があります (ただし、一般的には、処理中の資料を読み取るよりも高速です)。最先端技術は主に統計的手法に基づいているため、考慮すべきかなりのエラー率もあります。さらに、エラー率はすべての段階に影響し、NER のようなものは多数の段階の処理を必要とするため (トークン化 -> 文の検出 -> POS タグ -> WSD -> NER)、エラー率が複合します。
Open Calaisは、おそらく言語解析テクノロジーと言語統計を使用して、名前、場所、会社などの単語やフレーズを推測します。次に、これらのエンティティを検索してメタデータを返すのは別のステップです。
Zementaはおそらく似たようなことをしますが、関連する結果を取得するために、画像に添付されたメタデータとフレーズを照合します。
それは確かに簡単ではありません。