2

ウィキペディアをクロールして関係を見つけ、それをデータベースに保存できる Web ベースのアプリケーションを開発することを計画しています。関係とは、「ビル・ゲイツ」という名前を検索して彼のページを見つけ、それをダウンロードし、ページからさまざまな情報を引き出してデータベースに保存することを意味します。情報には、彼の生年月日、彼の会社、およびその他のいくつかのものが含まれる場合があります。しかし、データベースに保存できるように、ページからこれらの一意のデータを見つける方法があるかどうかを知る必要があります。特定の本やアルゴリズムは大歓迎です。また、優れたオープンソース ライブラリについて言及することも役立ちます。

ありがとうございました

4

3 に答える 3

6

まだお持ちでない場合は、DBpedia をご覧ください。ウィキ記事の多くのカテゴリーには、あなたが説明する情報の種類のための「インフォボックス」があり、それからデータベースを作成しています:

http://en.wikipedia.org/wiki/DBpedia

また、Metaweb のFreebaseの情報の一部を活用することもできます(これは重複しており、DBpedia からの情報を統合することさえあると思います)。グラフ データベースにクエリを実行するための API があり、 freebase-pythonと呼ばれる Python ラッパーがあります。

更新: Freebase はもうありません。それらは Google に買収され、最終的にGoogle ナレッジ グラフに組み込まれました。APIはありますが、Freebase がウィキペディアのような公開ソースと正式に同期するようなものはないと思います。私は個人的に、これがどうなったかに失望しています。:-/

自然言語処理のビットに関しては、その問題を前進させることができれば、これらのデータベースを自分が採掘する情報のリポジトリと見なすことができます。

于 2011-05-30T02:59:56.197 に答える
2

Python とオープン ソースについて言及されているので、NLTK (Natural Language Toolkit) について調査します。テキスト マイニングと自然言語処理は、ダム アルゴリズム (パターン マッチングなど) を使用して多くのことを実行できるものの 1 つですが、さらに一歩進んで、より洗練された何かを実行したい場合は、. 柔軟な方法で保存されている情報を抽出しようとしたり、興味深いかもしれないがアプリオリに知られていない情報を見つけようとしたりする場合は、自然言語処理を調査する必要があります。

NLTK は教育用であるため、ツールキットです。このアプローチは Python に非常に適しています。そのための本も数冊あります。O'Reilly の書籍は、オンラインでもオープン ライセンスで公開されています。NLTK.org を参照

于 2011-05-30T02:30:46.307 に答える
1

Jvc、上記のすべてを実行できる既存の python モジュールがあります。

Web ページから情報を取得するために、私は Selenium ( http://seleniumhq.org/projects/ide/ ) を使用するのが好きです。基本的に、さまざまな識別子 (id、Xpath など) を使用して、任意の Web ページの情報をローカライズして取得できます。

ただし、winwaed が言ったように、特に一部の Web サイトでは動的コードを使用しているため、単に「パターン マッチング」を行っている場合は柔軟性に欠ける可能性があります。つまり、その後のページのリロードごとに識別子が変化する可能性があります。ただし、この問題は正規表現 (.*) をコードに追加することで解決できます。http://www.youtube.com/watch?v=Ap_DlSrT-iEの YouTube ビデオをご覧ください。彼は BeautifulSoup を使用して Web サイトをスクレイピングしていますが、正規表現を使用してページから情報を引き出す方法を見ることができます。

また、どのタイプのデータベースを使用しているかはわかりませんが、pyodbc ( http://code.google.com/p/pyodbc/ ) は SQL タイプや、Microsoft Access などの主流のデータベースで動作します。

したがって、私のアドバイスは、Webページ上の情報を見つけるためにSeleniumを調べ、それを保存および取得するためにpyodbcを調べ、識別子が動的である場合は正規表現を調べることです。

于 2011-05-30T03:03:54.553 に答える