实现lexibank工作台的Python库
项目描述
pylexibank
pylexibank
是一个Python包,提供管理和聚合 Lexibank 数据集的功能。
兼容性
pylexibank
提供的整理功能的核心是与其他元数据目录的集成,如 Glottolog、Concepticon 和 CLTS。并非所有这些目录的版本都与所有版本的 pylexibank
兼容。
pylexibank | Glottolog | Concepticon | CLTS |
---|---|---|---|
2.x | >=4.x | >=2.x | 1.x |
3.x | >=4.x | >=2.x | >=2.x |
安装
由于pylexibank
有许多依赖项,安装它会导致同时安装许多其他Python包。为了避免对您的默认Python安装产生任何副作用,我们建议在虚拟环境中进行安装。
现在您可以通过pip或按照CONTRIBUTING.md中的说明以开发模式安装pylexibank
。
安装pylexibank
还会安装cldfbench
,而cldfbench
反过来又安装了一个命令行命令cldfbench
。此命令用于从命令行作为子命令运行pylexibank
的功能。
cldfbench
还用于管理参考目录,特别是Glottolog、Concepticon和CLTS。因此,在安装pylexibank
后,您应该运行
cldfbench catconfig
以确保目录数据本地可用并且pylexibank
知道它。
用法
pylexibank
可以用两种方式使用
- 命令行界面主要提供对
lexibank
编纂工作流程的功能的访问。 pylexibank
包也可以像任何其他Python包一样在自己的Python代码中使用,以以程序化(和一致)的方式访问lexibank数据。
cmd_makecldf
方法
pylexibank
的主要目标是创建高质量的CLDF词汇表。这发生在Lexibank数据集的定制cmd_makecldf
方法中。为了使这项任务更容易,pylexibank
提供
- 对Glottolog和Concepticon数据的访问
args.glottolog.api
指向一个CachingGlottologAPI
实例(pyglottolog.Glottolog
的子类)args.concepticon.api
指向一个CachingConcepticonAPI
实例(pyconcepticon.Concepticon
的子类)
- 通过
Dataset.form_spec
实例(pylexibank.FormSpec
的实例,可以针对每个数据集进行自定义)进行对形式操作的**精细控制**。FormSpec
旨在捕获在编译源数据时使用的规则 - 对于违反这些规则的源数据,建议通过在etc/lexemes.csv
中列出词素进行全部替换。 - 通过在
pylexibank.models
中派生默认值,**支持**词素、同源词、概念和语言上的**附加信息** - 支持在数据集的
etc_dir
中的**配置数据**的**轻松访问** - 使用带有正字法配置文件(s)的
segments
包的**支持**进行**分割**- 如果正字法配置文件作为
etc/orthography.tsv
提供,则将初始化此配置文件的segments.Tokenizer
实例可用为Dataset.tokenizer
,并由LexibankWriter.add_form
自动使用。 - 如果存在目录
etc/orthography/
,则其中所有*.tsv
文件都将被视为正字法配置文件,并且将提供一个将文件名基本名映射到分词器的dict
。分词器选择可以通过两种方式控制- 在
Dataset.tokenizer()
调用中传递关键字profile=FILENAME_STEM
。 - 为每种语言提供正字法配置文件,并让
Dataset.tokenizer
通过item['Language_ID']
选择分词器。
- 在
- 如果正字法配置文件作为
对Lexibank数据集的程序化访问
尽管pycldf
包已经提供了一些对读取和写入任何CLDF数据集的支持,但pylexibank
(基于cldfbench
)添加了另一层抽象,它支持
- 将Lexibank数据集作为Python包处理(并通过
pip
进行管理), - 一个多步骤的数据整理工作流程
- 将Lexibank数据集的集合聚合到单个SQLite数据库中,以便进行高效的分析。
可安装和启用pylexibank
的数据集
将Lexibank数据集转换为一个(可使用pip
安装的)Python包,就像编写一个设置脚本 setup.py
一样简单。但是,为了让数据集可以通过pylexibank
进行整理,数据集必须提供
- 一个Python模块
- 包含一个从
pylexibank.Dataset
派生的类,该类指定Dataset.dir
:一个目录,相对于该目录,存在整理目录。Dataset.id
:数据集的标识符。
- 这被宣传为在
setup.py
中的lexibank.dataset
入口点。例如。entry_points={ 'lexibank.dataset': [ 'sohartmannchin=lexibank_sohartmannchin:Dataset', ] },
将数据集转换为pylexibank
启用Python包具有多个优点
- 数据集可以从各种来源安装,例如GitHub存储库。
- 可以使用需求文件“锁定”数据集的特定版本以进行安装。
- 安装后,可以编程方式发现数据集。
- 可以使用虚拟环境来管理需要不同版本相同数据集的项目。
约定
- 数据集标识符应为小写,并且是
- 如果该名称已建立并且广为人知(例如,“abvd”,“asjp”等),则为数据库名称
- <author><languagegroup>(例如,“grollemundbantu”等)
- 需要使用外部程序(例如antiword,libreoffice)进行预处理的数据集应将中间/工件存储在./raw/目录中,而
cmd_install
代码应从该目录安装,而不是要求外部依赖项。 - 声明数据集对
pylexibank
的依赖性- 在
setup.py
中指定最小版本,即需要pylexibank>=1.x.y
- 在数据集的
cldf-metadata.json
中使用prov:createdBy
属性指定精确版本(pylexibank
将在通过lexibank makecldf
创建CLDF时处理此问题)。
- 在
GitHub上的数据集
GitHub为Lexibank数据集等文本数据的协作整理提供了一个非常好的平台。
鼓励数据集整理者使用除了版本控制之外的功能,例如
- 发布
- README.md、LICENSE、CONTRIBUTORS.md
请注意,对于使用pylexibank
整理的数据集,总结统计信息将在makecldf
命令作为部分写入到README.md
。
除了支持协作编辑和版本控制数据外,GitHub还支持通过webhooks连接到其他服务。特别是,其中两个服务与Lexibank数据集相关
- 持续集成,例如通过Travis-CI
- 使用Zenodo存档。注意
- 当在GitHub上整理数据集并将其连接到ZENODO以触发发布自动存档时,发布标签必须以字母开头(否则存档将失败)。
- 可以添加其他标签以添加上下文 - 例如,当发布由特定用例触发时(例如CLICS 2.0发布)。可以使用以下方式完成此操作
git checkout tags/vX.Y.Z git tag -a "clics-2.0" git push origin --tags
归属
对Lexibank数据集的贡献有多个级别
- 通常,Lexibank数据集是从已发布的数据中派生出来的(无论是论文的补充材料还是公开数据库)。通过在数据集的元数据中指定其完整引用并在Lexibank数据集的发布标题中添加源标题来给出对源数据集的归属。
- 源数据集通常也是来自其他来源数据的聚合。如果可能,这些来源(及相应的参考文献)会被保留在Lexibank数据集的CLDF中;否则,我们将参考源数据集以描述其来源。
- 使用
pylexibank
编目工作流程从源数据集派生Lexibank数据集,包括添加代码、映射到参考目录以及在某种程度上进行语言判断。这些贡献列在数据集的CONTRIBUTORS.md
中,并对应于Lexibank数据集发布版本的作者列表。
项目详情
下载文件
下载适合您平台的文件。如果您不确定选择哪一个,请了解更多关于安装包的信息。
源代码分发
构建分发
pylexibank-3.5.0.tar.gz的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 90cf12a48cda90f95d1709645d94cd67abdac4328ce2802a0d849845509abae7 |
|
MD5 | f35841e13d75b01876652701db29403c |
|
BLAKE2b-256 | 852892c3893aa084ee2b4279705b0c8664302f691cdec9f97dbd799b26b8341d |
pylexibank-3.5.0-py2.py3-none-any.whl的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 6e83481a2ee02129d001c7a5fd6afb1b9da2313805388c0e482e28944e573710 |
|
MD5 | 87db982070d10fe722547cf62567454c |
|
BLAKE2b-256 | efbe261584cd130b52d6a1798740296f608d08d4289500036b75cb7baa9a34b0 |