読者です 読者をやめる 読者になる 読者になる

言語処理100本ノック

23. セクション構造

記事中に含まれるセクション名とそのレベル(例えば"== セクション名 =="なら1)を表示せよ.

import json
import re

def wiki_selection():
    with open("D:\\nlp100\\jawiki-country.json",encoding="UTF-8") as fr:
        wiki_line = fr.readline()
        while wiki_line:
            wiki_dic = json.loads(wiki_line)
            if wiki_dic["title"] == "イギリス":
                return wiki_dic["text"]
            wiki_line =fr.readline()

text = wiki_selection()
for line in re.findall(r".*==.*==.*",text):
    count = int(line.count("=")/2 - 1)
    print(line.strip("=")+":"+str(count))

<結果>

国名:1 歴史:1 地理:1 気候:2 政治:1 外交と軍事:1 地方行政区分:1 主要都市:2 科学技術:1 経済:1 鉱業:2 農業:2 貿易:2 通貨:2 企業:2 交通:1 道路:2 鉄道:2 海運:2 航空:2 通信:1 国民:1 言語:2 宗教:2 婚姻 :2 教育:2 文化:1 食文化:2 文学:2 哲学 :2 音楽:2 イギリスのポピュラー音楽:3 映画:2 コメディ:2 国花:2 世界遺産:2 祝祭日:2 スポーツ:1 サッカー:2 競馬:2 モータースポーツ:2 脚注:1 関連項目:1 外部リンク:1