日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

Python 获得汉字笔画

發布時間:2023/11/30 python 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Python 获得汉字笔画 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

通過unihan的文件來實現。
只要是unihan中有kTotalStrokes字段,獲取其筆畫數。
Hash也是非常簡單清楚的,但想到這些unicode其實會有一個分布規律,就記錄了一下,
利用此性質通過數組方式來獲取筆畫。

記錄了一下unicode的范圍

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

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

此處使用python3 Demo實現,原理非常簡單:使用數組保持筆畫,將unicode映射到數組index,即可獲取對應筆畫數

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順序排列的筆畫數"

轉載于:https://www.cnblogs.com/Comero/p/8997585.html

總結

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

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。