情報抽出を開始して非常に優れたものになるためのトレーニングパスをお勧めします. 私は趣味のプロジェクトの 1 つを行うためにそれについて読み始めましたが、すぐに数学 (代数、統計、確率論) が得意である必要があることに気付きました。さまざまな数学のトピックに関する入門書をいくつか読みました (そしてとても楽しいです)。いくつかのガイダンスを探しています。助けてください。
更新:コメントの1つに答えるだけです。私はテキスト情報抽出にもっと興味があります。
情報抽出を開始して非常に優れたものになるためのトレーニングパスをお勧めします. 私は趣味のプロジェクトの 1 つを行うためにそれについて読み始めましたが、すぐに数学 (代数、統計、確率論) が得意である必要があることに気付きました。さまざまな数学のトピックに関する入門書をいくつか読みました (そしてとても楽しいです)。いくつかのガイダンスを探しています。助けてください。
更新:コメントの1つに答えるだけです。私はテキスト情報抽出にもっと興味があります。
コメントの1つに答えるだけです。テキスト情報抽出にもっと興味があります。
プロジェクトの性質に応じて、自然言語処理と計算言語学の両方が便利です。これらは、テキスト情報から特徴を測定および抽出し、トレーニング、スコアリング、または分類を適用するためのツールを提供します。
優れた入門書には、OReillyのProgramming Collective Intelligence(「検索とランク付け」、ドキュメントフィルタリング、およびおそらく決定木に関する章)が含まれます。
この知識を利用した提案されたプロジェクト:POS(品詞)タグ付け、および名前付きエンティティの認識(プレーンテキストから名前、場所、および日付を認識する機能)。ターゲット情報のほとんどはすでにインフォボックスに抽出されているため、ウィキペディアをトレーニングコーパスとして使用できます。これにより、限られた量の測定フィードバックが提供される場合があります。
IEのもう1つの大きなハンマーは、過小評価されてはならない分野である検索です。繰り返しになりますが、OReillyの本は、基本的なランキングの概要を示しています。インデックス付きテキストの大規模なコーパスができたら、それを使って実際にIEタスクを実行できます。Peter Norvigをチェックしてください:出発点としてのデータからの理論化、そして非常に良い動機付け-おそらくあなたは学習演習としてそれらの結果のいくつかを再実装することができます。
事前の警告として、情報抽出は難しいことをお伝えする義務があると思います。通常、特定のタスクの最初の80%は簡単です。ただし、IEタスクの各追加パーセンテージの難易度は、通常、開発中および研究時間中に指数関数的に増大しています。また、十分に文書化されていません-高品質の情報のほとんどは現在、あいまいなホワイトペーパーにあります(Google Scholarはあなたの友達です)-数回手を焼いたら、それらをチェックしてください。しかし、最も重要なことは、これらの障害があなたを失望させないことです-この分野で進歩を遂げる大きな機会は確かにあります。
Christopher D. Manning、Prabhakar Raghavan、Hinrich Schütze による優れた本Introduction to Information Retrievalをお勧めします。これは、情報抽出の優れた最新 (2008 年) の基盤を形成する幅広い問題をカバーしており、オンラインで全文を入手できます (所定のリンクの下)。
Natural Language Toolkit (nltk)とNLTK Bookをご覧になることをお勧めします。どちらも無料で利用でき、優れた学習ツールです。
IE を行うために数学が得意である必要はありません。アルゴリズムがどのように機能するかを理解し、最適な結果のパフォーマンスが必要なケースを実験し、目標の精度レベルを達成するために必要なスケールを使用して作業します。あなたは基本的に、アルゴリズムとプログラミング、および CS/AI/機械学習理論の側面に取り組んでおり、新しい機械学習アルゴリズムの構築に関する博士論文を書いていないため、アルゴリズムが機能する理由を数学的原理によって誰かに納得させる必要があるため、私はまったく同意しませんその考えで。実用と理論の間には違いがあります。数学者は、実行可能なビジネス ソリューションを生成するためのアルゴリズムの実用性よりも理論に固執していることは誰もが知っていることです。ただし、NLP の本とジャーナル論文の両方を読んで、結果から人々が何を発見したかを知る必要があります。IE は非常にコンテキスト固有のドメインであるため、情報を抽出しようとしているコンテキストを最初に定義する必要があります。この情報をどのように定義しますか? あなたの構造化モデルは何ですか?半構造化および非構造化データセットから抽出しているとします。次に、正規表現やパターン マッチングなどを含む標準的な人間のアプローチから IE にアプローチするか、マルコフ連鎖などの統計的機械学習アプローチを使用して IE にアプローチするかを検討する必要があります。ハイブリッド アプローチを見ることもできます。IE は非常にコンテキスト固有のドメインであるため、情報を抽出しようとしているコンテキストを最初に定義する必要があります。この情報をどのように定義しますか? あなたの構造化モデルは何ですか?半構造化および非構造化データセットから抽出しているとします。次に、正規表現やパターン マッチングなどを含む標準的な人間のアプローチから IE にアプローチするか、マルコフ連鎖などの統計的機械学習アプローチを使用して IE にアプローチするかを検討する必要があります。ハイブリッド アプローチを見ることもできます。IE は非常にコンテキスト固有のドメインであるため、情報を抽出しようとしているコンテキストを最初に定義する必要があります。この情報をどのように定義しますか? あなたの構造化モデルは何ですか?半構造化および非構造化データセットから抽出しているとします。次に、正規表現やパターン マッチングなどを含む標準的な人間のアプローチから IE にアプローチするか、マルコフ連鎖などの統計的機械学習アプローチを使用して IE にアプローチするかを検討する必要があります。ハイブリッド アプローチを見ることもできます。次に、正規表現やパターン マッチングなどを含む標準的な人間のアプローチから IE にアプローチするか、マルコフ連鎖などの統計的機械学習アプローチを使用して IE にアプローチするかを検討する必要があります。ハイブリッド アプローチを見ることもできます。次に、正規表現やパターン マッチングなどを含む標準的な人間のアプローチから IE にアプローチするか、マルコフ連鎖などの統計的機械学習アプローチを使用して IE にアプローチするかを検討する必要があります。ハイブリッド アプローチを見ることもできます。
抽出を行うために従うことができる標準的なプロセス モデルは、データ/テキスト マイニング アプローチを適応させることです。
前処理 - データを定義および標準化して、さまざまなソースまたは特定のソースから抽出し、データをクレンジングします
セグメンテーション/分類/クラスタリング/関連付け - ほとんどの抽出作業が行われるブラック ボックス
後処理 - データを保存したい場所、または情報として表現したい場所に戻すためのクレンジング
また、データと情報の違いを理解する必要があります。発見した情報をデータのソースとして再利用して、より多くの情報マップ/ツリー/グラフを作成できます。それはすべて非常に文脈化されています。
標準的な手順: 入力 -> プロセス -> 出力
Java/C++ を使用している場合は、使用できるフレームワークとライブラリが多数用意されています。
多くの標準テキスト抽出を行いたい場合、Perl は NLP 抽出作業を行うのに最適な言語です。
データを XML として、または RDF グラフ (セマンティック Web) として表現することもできます。また、定義されたコンテキスト モデルに対して、抽出要求が増えるにつれて変化する可能性が高い関係および関連グラフを構築できます。ドキュメントのリソースとして扱いたいので、安らかなサービスとしてデプロイします。Solrを使用して、分類されたデータセットやファセット検索にリンクすることもできます.
読むのに適したソースは次のとおりです。
このようなアプリケーション/アルゴリズムを本番環境にデプロイする前に、徹底的な評価を行ってください。データ ストレージ要件が再帰的に増加する可能性があるためです。クラスタリングには AWS/Hadoop を、大規模な分類には Mahout を使用できます。データセットを MongoDB に保存するか、構造化されていないダンプを jackrabbit などに保存します。最初にプロトタイプを試してみてください。ロイター コーパス、ティップスター、TREC などに基づいてトレーニングを行うために使用できるさまざまなアーカイブがあります。錬金術 API、GATE、UIMA、OpenNLP などをチェックすることもできます。
標準テキストからの抽出の構築は、Web ドキュメントよりも簡単であるため、標準化されたドキュメント表現から何を抽出しようとしているのかを正確に定義するには、前処理ステップでの表現がさらに重要になります。
標準的な尺度には、精度、再現率、f1 尺度などがあります。
集合知プログラミングを読むことを勧める人々には同意しません。中程度の複雑さでさえ何かをしたいのなら、応用数学に長けている必要があり、PCIはあなたに誤った自信を与えます。たとえば、SVMについて話すとき、それはlibSVMがそれらを実装する良い方法であると言っているだけです。
さて、libSVMは間違いなく良いパッケージですが、誰がパッケージを気にしますか。知っておく必要があるのは、SVMが素晴らしい結果をもたらす理由と、SVMがベイズの考え方と根本的に異なる理由(およびVapnikが伝説である方法)です。
私見、それに対する唯一の解決策はありません。線形代数と確率およびベイズ理論をよく理解している必要があります。ベイズは、これには人間の酸素と同じくらい重要です(少し誇張されていますが、私が言っていることはわかりますよね?)。また、機械学習をしっかりと把握してください。他の人の作品を使うだけでもまったく問題ありませんが、なぜそのように行われたのかを知りたいときは、MLについて何かを知る必要があります。
この2つを確認してください:
http://pindancing.blogspot.com/2010/01/learning-about-machine-learniing.html
http://measuringmeasures.com/blog/2010/1/15/learning-about-statistical-learning.html
http://measuringmeasures.com/blog/2010/3/12/learning-about-machine-learning-2nd-ed.html
さて、これで3つになりました:)/かっこいい
ウィキペディアの情報抽出の記事は簡単な紹介です。
よりアカデミックなレベルでは、 Integrating Probabilistic Extraction Models and Data Mining to Discover Relations and Patterns in Textのような論文をざっと読みたいと思うかもしれません。
エンタープライズ グレードの NER サービスが必要な場合は、こちらをご覧ください。NER システム (およびトレーニング セット) の開発は、非常に時間がかかり、高度なスキルを必要とする作業です。
これは少しトピックから外れていますが、O'Reilly の Programming Collective Intelligence を読むことをお勧めします。テキスト情報の抽出を間接的に扱っており、数学のバックグラウンドはあまり想定していません。