ハングルの全文字リストを取得する方法
ハングルの全文字のリスト(11,172文字)を見つけることは意外と困難でしたが、最終的に成功した方法を共有します。
問題の背景
最初は、ハングルの全文字リストを見つけるのが難しいことに驚きました。インターネット上では、テキストベースのリストがあまり見当たらず、検索しても求めている情報にたどり着けませんでした。
要求されるリストの内容
ハングルの文字は、母音字が11個、子音字が17個で、合計28字です。これらを組み合わせると1万1,172個の文字が表現可能である、とこちらの記事に書かれていました。
解決策の発見
やがて、Wikipedia日本語版の「ハングル」ページで、U+AC00-U+D7AF(ハングル音節)というPDFを見つけました。このPDFには、ハングル文字一覧が含まれていました。
リストの作成
pythonを使ってPDFからテキスト情報を抽出し、韓国語の部分を抜き出して文字列のリストを作成しました。リストの長さは合計で11,172文字でした。
extract.py
import re
import pdfplumber
# PDFファイルのパス
pdf_file_path = './data/UAC00.pdf'
def extract_hangul_from_all_pages(pdf_path):
hangul_text = []
with pdfplumber.open(pdf_path) as pdf:
# 各ページに対してループ
for page in pdf.pages:
# テキストを抽出
page_text = page.extract_text()
# ハングルのみを正規表現で抽出してリストに追加
hangul_matches = re.findall("[ㄱ-ㅎ|ㅏ-ㅣ|가-힣]+", page_text)
hangul_text.extend(hangul_matches)
return hangul_text
# PDFファイルからハングルのみを抽出して表示
hangul_characters = extract_hangul_from_all_pages(pdf_file_path)
print(len(hangul_characters))
print(hangul_characters)
→結果:
11,172
가 감 갠 갰 걀 ... 흟 흯 흿 힏 힟
(11,172文字をすべてこちらに貼るとページが落ちたので皆さんご自分で取得してください)
結論
韓国語には詳しくありませんが、このリストはおそらく正しいものだと思います。これで、ハングルの全文字リストを取得することができました。
やはり、文字コード等で困ったときはWikipediaですね。以上です。