👩‍💻

言語処理100本ノック 2020 (Rev 2) 第3章: 正規表現 20. JSONデータの読み込み

2023/01/08に公開約1,200字

問題

Wikipediaの記事を以下のフォーマットで書き出したファイルjawiki-country.json.gzがある.

  • 1行に1記事の情報がJSON形式で格納される
  • 各行には記事名が”title”キーに,記事本文が”text”キーの辞書オブジェクトに格納され,そのオブジェクトがJSON形式で書き出される
  • ファイル全体はgzipで圧縮される

以下の処理を行うプログラムを作成せよ.

20. JSONデータの読み込み

Wikipedia記事のJSONファイルを読み込み,「イギリス」に関する記事本文を表示せよ.問題21-29では,ここで抽出した記事本文に対して実行せよ.

solution20.py
import pandas as pd

df = pd.read_json('chapter03/jawiki-country.json.gz', lines=True, compression='infer')
text_uk = df.query('title=="イギリス"')['text'].values[0]
print(text_uk)
output
{{redirect|UK}}
{{redirect|英国|春秋時代の諸侯国|英 (春秋)}}
{{Otheruses|ヨーロッパの国|長崎県・熊本県の郷土料理|いぎりす}}
{{基礎情報 国
|略名  =イギリス
|日本語国名 = グレートブリテン及び北アイルランド連合王国
#以下に続きます。

df = pd.read_json('chapter03/jawiki-country.json.gz', lines=True) で、jawiki-country.json.gz ファイルを読み込んで、DataFrame オブジェクトを作成しています。また、lines=True オプションを指定することで、1行ごとにデータを読み込むことができます。また、text_uk = df.query('title=="イギリス"')['text'].values[0] では、title 列が 'イギリス' の行を抽出し、その text 列を取り出し、1 行 1 列の DataFrame の中身である text の値を取り出して、変数 text_ukに格納しています。

https://github.com/kurokawa5/nlp100_2020/blob/main/chapter03/solution20.py

参考記事

第3章: 正規表現

Discussion

ログインするとコメントできます