LoginSignup
1
0

ハングル全文字1万1,172個を抽出する方法

Posted at

ハングルの全文字リストを取得する方法

ハングルの全文字のリスト(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ですね。以上です。

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0