어학 처리 100번 쳐봐요. 23.
4023 단어 Python3
23. 지역 구조
기사에 포함된 영역 이름과 해당 레벨을 표시합니다(예: "==영역 이름=="의 경우 1).import gzip
import json
import re
frame = "jawiki-country.json.gz"
def extract_UK():
with gzip.open(frame,"rt") as data_file:
for line in data_file:
data_json = json.loads(line)
if data_json["title"] == "イギリス":
return data_json["text"]
raise ValueError("イギリスの記事ないわ")
pattern = re.compile(r'''
^ # 行頭
(={2,}) # キャプチャ対象、2個以上の'='
\s* # 余分な0個以上の空白('哲学'や'婚姻'の前後に余分な空白があるので除去)
(.+?) # キャプチャ対象、任意の文字が1文字以上、非貪欲(以降の条件の巻き込み防止)
\s* # 余分な0個以上の空白
\1 # 後方参照、1番目のキャプチャ対象と同じ内容
.* # 任意の文字が0文字以上
$ # 行末
''', re.MULTILINE + re.VERBOSE)
result=pattern.findall(extract_UK())
for line in result:
level = len(line[0])-1
print("{indent}{sect}({level})".format(indent="\t"*(level-1),sect=line[1],level=level))
결과 내보내기
분계선
Reference
이 문제에 관하여(어학 처리 100번 쳐봐요. 23.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/pi-to/items/01ad4907746a6e2ab296
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
import gzip
import json
import re
frame = "jawiki-country.json.gz"
def extract_UK():
with gzip.open(frame,"rt") as data_file:
for line in data_file:
data_json = json.loads(line)
if data_json["title"] == "イギリス":
return data_json["text"]
raise ValueError("イギリスの記事ないわ")
pattern = re.compile(r'''
^ # 行頭
(={2,}) # キャプチャ対象、2個以上の'='
\s* # 余分な0個以上の空白('哲学'や'婚姻'の前後に余分な空白があるので除去)
(.+?) # キャプチャ対象、任意の文字が1文字以上、非貪欲(以降の条件の巻き込み防止)
\s* # 余分な0個以上の空白
\1 # 後方参照、1番目のキャプチャ対象と同じ内容
.* # 任意の文字が0文字以上
$ # 行末
''', re.MULTILINE + re.VERBOSE)
result=pattern.findall(extract_UK())
for line in result:
level = len(line[0])-1
print("{indent}{sect}({level})".format(indent="\t"*(level-1),sect=line[1],level=level))
Reference
이 문제에 관하여(어학 처리 100번 쳐봐요. 23.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/pi-to/items/01ad4907746a6e2ab296텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)