导出Unihan to Python,Data Package,CSV,JSON and Yaml

unihan-etl的Python项目详细描述


unihan etl-ETL用于unicode的han统一(UNIHAN)数据库的工具 释放。Unihan ETL检索(下载)、提取(解压)并转换 从Unicode网站到平面、表格或结构化的树状数据库 格式。

unihan etl可以通过其API用作python库来检索数据 作为python对象,或者通过CLI检索csv、json或yaml文件。

cihai项目的一部分。类似的项目:libUnihan

Unihan版本兼容性(从Unihan ETL v0.10.0开始): 11.0.0 (发布日期:2018-05-08,版本25)。

Python PackageDocumentation StatusBuild StatusCode CoverageLicense

UNIHAN的数据分散在多个文件中,格式为:

U+3400      kCantonese      jau1
U+3400      kDefinition     (same as U+4E18 丘) hillock or mound
U+3400      kMandarin       qiū
U+3401      kCantonese      tim2
U+3401      kDefinition     to lick; to taste, a mat, bamboo bark
U+3401      kHanyuPinyin    10019.020:tiàn
U+3401      kMandarin       tiàn

值的形状和结构因其字段类型而异。 kHanyuPinyin 将Unicode代码点映射到Hànyǔ Dà Zìdiǎn, 其中,10019.020:tiàn表示一个条目。更复杂的是, 更多变化:

U+5EFE      kHanyuPinyin    10513.110,10514.010,10514.020:gǒng
U+5364      kHanyuPinyin    10093.130:xī,lǔ 74609.020:lǔ,xī

khanyupinyin支持用空格分隔的多个条目。“:” (冒号)将工作中的位置与拼音读数分开。“,” (逗号)分隔多个条目/读数。这只是90人中的一个 数据库中包含的字段。

表格,“平”输出

csv(默认),$ unihan-etl

char,ucn,kCantonese,kDefinition,kHanyuPinyin,kMandarin
㐀,U+3400,jau1,(same as U+4E18 丘) hillock or mound,,qiū
㐁,U+3401,tim2,"to lick; to taste, a mat, bamboo bark",10019.020:tiàn,tiàn

使用$ unihan-etl-F yaml --no-expand

-char:kCantonese:jau1kDefinition:(same as U+4E18 丘) hillock or moundkHanyuPinyin:nullkMandarin:qiūucn:U+3400-char:kCantonese:tim2kDefinition:to lick; to taste, a mat, bamboo barkkHanyuPinyin:10019.020:tiànkMandarin:tiànucn:U+3401

使用$ unihan-etl-F json --no-expand

[{"char":"㐀","ucn":"U+3400","kDefinition":"(same as U+4E18 丘) hillock or mound","kCantonese":"jau1","kHanyuPinyin":null,"kMandarin":"qiū"},{"char":"㐁","ucn":"U+3401","kDefinition":"to lick; to taste, a mat, bamboo bark","kCantonese":"tim2","kHanyuPinyin":"10019.020:tiàn","kMandarin":"tiàn"}]

“结构化”输出

代码点可以打包更多的细节,unihan etl仔细地提取这些值。 以统一的方式。删除空值。

为了实现这一点,unihan etl将导出到json、yaml和python 列表/听写。

为什么不是csv?

不幸的是,csv只适合存储类似于 信息。json和yaml等文件格式接受键值和 分级条目。

json,$ unihan-etl-F json

[{"char":"㐀","ucn":"U+3400","kDefinition":["(same as U+4E18 丘) hillock or mound"],"kCantonese":["jau1"],"kMandarin":{"zh-Hans":"qiū","zh-Hant":"qiū"}},{"char":"㐁","ucn":"U+3401","kDefinition":["to lick","to taste, a mat, bamboo bark"],"kCantonese":["tim2"],"kHanyuPinyin":[{"locations":[{"volume":1,"page":19,"character":2,"virtual":0}],"readings":["tiàn"]}],"kMandarin":{"zh-Hans":"tiàn","zh-Hant":"tiàn"}}]

山药$ unihan-etl-F yaml

-char:kCantonese:-jau1kDefinition:-(same as U+4E18 丘) hillock or moundkMandarin:zh-Hans:qiūzh-Hant:qiūucn:U+3400-char:kCantonese:-tim2kDefinition:-to lick-to taste, a mat, bamboo barkkHanyuPinyin:-locations:-character:2page:19virtual:0volume:1readings:-tiànkMandarin:zh-Hans:tiànzh-Hant:tiànucn:U+3401

功能

  • 自动从Internet下载Unihan
  • 使用UNIHAN’s database design
  • 中描述的规范力求精确
  • 通过-F
  • 导出到json、csv和yaml(需要pyyaml
  • 可配置为通过-f
  • 导出特定字段
  • 解释由于Unicode内容太多而导致的编码冲突
  • 为未来的中日韩(中文,日文, 韩语)数据集
  • cjk库cihai的核心组件和依赖关系
  • data package支持
  • yaml、json和python中多值分隔字段的扩展 词典
  • 支持python 2.7,>;=3.5和pypy

如果您遇到问题或有疑问,请create an issue

用法

unihan-etl通过其命令行参数提供可自定义的生成。

有关如何指定的信息,请参见unihan-etl CLI arguments 列、文件、下载URL和输出目标。

下载并构建您自己的Unihan导出:

$ pip install --user unihan-etl

要输出csv,默认格式:

$ unihan-etl

输出json:

$ unihan-etl -F json

要输出yaml:

$ pip install --user pyyaml
$ unihan-etl -F yaml

只输出csv中的kdefinition字段:

$ unihan-etl -f kDefinition

要输出多个字段,请用空格分隔:

$ unihan-etl -f kCantonese kDefinition

要输出到自定义文件:

$ unihan-etl --destination ./exported.csv

输出到自定义文件(模板文件扩展名):

$ unihan-etl --destination ./exported.{ext}

有关高级用法示例,请参见unihan-etl CLI arguments

代码布局

# cache dir (Unihan.zip is downloaded, contents extracted)
{XDG cache dir}/unihan_etl/

# output dir
{XDG data dir}/unihan_etl/
  unihan.json
  unihan.csv
  unihan.yaml   # (requires pyyaml)
# package dir
unihan_etl/
  process.py    # argparse, download, extract, transform UNIHAN's data
  constants.py  # immutable data vars (field to filename mappings, etc)
  expansion.py  # extracting details baked inside of fields
  _compat.py    # python 2/3 compatibility module
  util.py       # utility / helper functions
# test suite
tests/*

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java将列表a作为从流收集的映射中的值   java SVN Eclipse忽略所有用户的文件夹   @PathVariable类型不匹配的java配置错误页   java在应用程序中使用Oracle数据库需要什么?   java无法确定用户何时为我的自定义异常输入数字小于0的问题   java如何通过软件导航网站?   java将JFace TableViewer添加到SWT表   Java中“field”和“this.field”的区别   java战舰代码不工作   java如何设置可执行IE 11驱动程序的路径   java这个程序如何一步一步地计算两个区间之间的阿姆斯特朗数?   JavaRestlet:在过滤器中使用转换器服务   Tensorflow:如何在java中使用python训练的语音识别模型   EclipseJava。util。使用迭代器从HashMap获取ArrayList时出现NoTouchElementException   Java Swing启动屏幕配置错误   为什么MySQL浮点与Java浮点不同?