はじめに
Wikipediaのdumpデータを用いて,あるカテゴリに含まれる記事のタイトルを取得します.
環境
CentOS7
Python3.6
事前準備
まず,word2vec-wikification-pyをインストールします.pipでできます.
Wikificationをしてみよう ~Wikipediaを利用した情報抽出 & 曖昧性解消まで ~ - Qiita
pip install word2vec-wikification-py
Mysqlとwikiのdumpデータの用意は他を参照してください.
(他の人が用意してくれたのを使ったのでわかりません)
記事のタイトルを出力する
以下のプログラムを動かすことであるカテゴリに属する記事のタイトルを全て出力します.
from word2vec_wikification_py.initialize_mysql_connector import initialize_pymysql_connector import pymysql.cursors mysql_username = 'username' mysql_hostname = 'hostname' mysql_password = 'password' mysql_db_name = 'db_name' serch_words = ['政府'] print("serch_words:" + str(serch_words)) for word in serch_words: try: mysql_connector = initialize_pymysql_connector(hostname=mysql_hostname, user_name=mysql_username, password=mysql_password, dbname=mysql_db_name) with mysql_connector.cursor() as cursor: sql = "SELECT cl_to AS parent, page_title AS child FROM page JOIN categorylinks ON categorylinks.cl_from=page.page_id WHERE categorylinks.cl_type != 'subcat' AND categorylinks.cl_to ='" + word + "'" cursor.execute(sql) results = cursor.fetchall() finally: mysql_connector.close() for page_title in results: print(page_title[1].decode('utf-8'))
以下の部分は自分で用意したsqlに応じて変えてください
mysql_username = 'username' mysql_hostname = 'hostname' mysql_password = 'password' mysql_db_name = 'db_name'
今回は政府というカテゴリに含まれる記事を出力します.
以下が結果です.
取得した結果が右のターミナルに出力されています.
wikiのページと見比べると大丈夫そうですね.
使用するdumpデータによって結果は多少変わると思います.