从部件中寻找表意文字(例如汉字)的工具
ideograph的Python项目详细描述
象形文字
按其组成部分查找表意文字的工具。目前,它只包含汉字,但可以扩展到包括其他表意文字,如Tangut或Sumero Akkadian楔形文字。
安装
$ pip install ideograph
用法
ideograph包含两个函数,find()
和components()
:
find()
获取一个表意字符组件字符串,并返回一组包含所有这些组件的表意字符。
组件字符串中不是表意字符组件的字符将被忽略。
请注意,当前的实现非常严格,依赖于组件的视觉区分,而不是词源连接:例如,“attention”≠“亻”。
可以从命令行调用它:
$ ideograph 木日勿 䵘楊鸉????????
或作为python包导入:
>>>importideograph>>>ideograph.find("木日勿"){'?','?','?','?','?','?','?','?','楊','?','?','?','?','鸉','䵘','?'}
components()
接受由单个表意字符组成的字符串并返回一组组件。请注意,该集合包含组件和这些组件的组件等等,一直到cjkvi ids数据集中包含的最基本组件。
>>>importideograph>>>ideograph.components("楊"){'日','木','昜','一','勿','旦','勹','丿','\uf3e4'}
数据
字符组件派生自cjkvi-ids database(作为子模块包含在此git存储库中),特别是ids-cdp.txt
数据文件。由于某些组件当前没有分配给它们的unicode代码点,因此在unicode的专用区域中为它们指定了代码点。注意,正因为如此,这些字符中的一些可能由find()
和components()
函数返回。
数据存储在sqlite3数据库中,该数据库可以通过运行generate_data.py
脚本从cjkvi ids数据重新生成。