跳转到主要内容

Python库,用于处理线性注解文本。

项目描述

pyigt:使用Python处理线性注解文本

Build Status PyPI Documentation Status

此库根据莱比锡注解规则提供对线性注解文本(IGT)的简单访问,并存储为CLDF示例

安装

通过pip安装pyigt

pip install pyigt

将安装Python包,以及一个命令行界面igt

注意:要从语料库中提取词汇表和正字法轮廓,需要lingpy包。为确保已安装,请以

pip install pyigt[lingpy]

CLI方式安装pyigt

$ igt -h
usage: igt [-h] [--log-level LOG_LEVEL] COMMAND ...

optional arguments:
  -h, --help            show this help message and exit
  --log-level LOG_LEVEL
                        log level [ERROR|WARN|INFO|DEBUG] (default: 20)

available commands:
  Run "COMAMND -h" to get help for a specific command.

  COMMAND
    ls                  List IGTs in a CLDF dataset
    stats               Describe the IGTs in a CLDF dataset

igt ls命令允许从命令行检查IGT,使用莱比锡释义词法规则中描述的四种标准行格式化,例如

$ igt ls tests/fixtures/examples.csv 
Example 1:
zəple: ȵike: peji qeʴlotʂuʁɑ,
zəp-le:       ȵi-ke:       pe-ji       qeʴlotʂu-ʁɑ,
earth-DEF:CL  WH-INDEF:CL  become-CSM  in.the.past-LOC

...

Example 5:
zuɑməɸu oʐgutɑ ipiχuɑȵi,
zuɑmə-ɸu      o-ʐgu-tɑ    i-pi-χuɑ-ȵi,
cypress-tree  one-CL-LOC  DIR-hide-because-ADV

IGT corpus at tests/fixtures/examples.csv

igt ls可以与其他命令行工具串联,例如csvkit包的命令用于筛选

$ csvgrep -c Primary_Text -m"ȵi"  tests/fixtures/examples.csv | csvgrep -c Gloss -m"ADV" |  igt ls -
Example 5:
zuɑməɸu oʐgutɑ ipiχuɑȵi,
zuɑmə-ɸu      o-ʐgu-tɑ    i-pi-χuɑ-ȵi,
cypress-tree  one-CL-LOC  DIR-hide-because-ADV

Python API

Python API的详细文档可在readthedocs上找到。以下是快速概述。

您可以读取与CLDF数据集一起提供的所有IGT示例

>>> from pyigt import Corpus
>>> corpus = Corpus.from_path('tests/fixtures/cldf-metadata.json')
>>> len(corpus)
5
>>> for igt in corpus:
...     print(igt)
...     break
... 
zəple: ȵike: peji qeʴlotʂuʁɑ,
zəp-le:       ȵi-ke:       pe-ji       qeʴlotʂu-ʁɑ,
earth-DEF:CL  WH-INDEF:CL  become-CSM  in.the.past-LOC

或实例化单个IGT示例,例如

>>> from pyigt import IGT
>>> ex = IGT(phrase="palasi=lu", gloss="priest-and")
>>> ex.check(strict=True, verbose=True)
palasi=lu
priest-and
...
ValueError: Rule 2 violated: Number of morphemes does not match number of morpheme glosses!

检查有效性

>>> ex = IGT(phrase="Gila abur-u-n ferma hamišaluǧ güǧüna amuq’-da-č.",
...          gloss="now they-OBL-GEN farm forever behind stay-FUT-NEG", 
...          translation="Now their farm will not stay behind forever.")
>>> ex.pprint()
Gila aburun ferma hamišaluǧ güǧüna amuqdač.
Gila    abur-u-n      ferma    hamišaluǧ    güǧüna    amuq-da-č.
now     they-OBL-GEN  farm     forever      behind    stay-FUT-NEG
Now their farm will not stay behind forever.
  OBL = oblique
  GEN = genitive
  FUT = future
  NEG = negation, negative

或扩展已知的释义词缩写

>>> igt = IGT(phrase="zəp-le: ȵi-ke: pe-ji qeʴlotʂu-ʁɑ,", gloss="earth-DEF:CL WH-INDEF:CL become-CSM in.the.past-LOC")
>>> igt.conformance
<LGRConformance.MORPHEME_ALIGNED: 2>
>>> igt[1, 1].gloss
<Morpheme "INDEF:CL">
>>> igt[1, 1].gloss.elements
[<GlossElement "INDEF">, <GlossElementAfterColon "CL">]
>>> igt[1, 1].morpheme
<Morpheme "ke:">
>>> print(igt[1, 1].morpheme)
ke:

还可以更深入地分析,根据LGR(参见模块pyigt.lgrmorphemes)解析词素和释义词

  • 另请参阅

interlineaR - 一个具有类似功能但支持更多输入格式的R包。


下载文件

下载适用于您的平台的文件。如果您不确定选择哪个,请了解有关安装包的更多信息。

源分发

pyigt-2.1.0.tar.gz (38.7 kB 查看散列)

上传时间:

构建分发

pyigt-2.1.0-py2.py3-none-any.whl (33.2 kB 查看散列)

上传时间: Python 2 Python 3

支持者

AWS AWS 云计算和安全赞助商 Datadog Datadog 监控 Fastly Fastly CDN Google Google 下载分析 Microsoft Microsoft PSF 赞助商 Pingdom Pingdom 监控 Sentry Sentry 错误记录 StatusPage StatusPage 状态页面