日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 >

Python 获得汉字笔画

發(fā)布時(shí)間:2023/11/30 39 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Python 获得汉字笔画 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

通過unihan的文件來實(shí)現(xiàn)。
只要是unihan中有kTotalStrokes字段,獲取其筆畫數(shù)。
Hash也是非常簡(jiǎn)單清楚的,但想到這些unicode其實(shí)會(huì)有一個(gè)分布規(guī)律,就記錄了一下,
利用此性質(zhì)通過數(shù)組方式來獲取筆畫。

記錄了一下unicode的范圍

start: [13311, 19968, 63744, 131072, 173824, 177984, 178208, 194995] end : [19893, 40917, 64045, 173782, 177972, 178205, 183969, 194998]

總共包括80682個(gè)存在筆畫數(shù)的unicode碼,包含CJKV。
64045-131072中間都沒有此字段,就分了兩部分。

此處使用python3 Demo實(shí)現(xiàn),原理非常簡(jiǎn)單:使用數(shù)組保持筆畫,將unicode映射到數(shù)組index,即可獲取對(duì)應(yīng)筆畫數(shù)

def get_stroke(c):# 如果返回 0, 則也是在unicode中不存在kTotalStrokes字段strokes = []with open(strokes_path, 'r') as fr:for line in fr:strokes.append(int(line.strip()))unicode_ = ord(c)if 13312 <= unicode_ <= 64045:return strokes[unicode_-13312]elif 131072 <= unicode_ <= 194998:return strokes[unicode_-80338]else:print("c should be a CJK char, or not have stroke in unihan data.")# can also return 0

strokes_path: https://github.com/helmz/Corpus/blob/master/zh_dict/strokes.txt
"按照unicode順序排列的筆畫數(shù)"

轉(zhuǎn)載于:https://www.cnblogs.com/Comero/p/8997585.html

總結(jié)

以上是生活随笔為你收集整理的Python 获得汉字笔画的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。