跳转到主要内容

分布式形态计算器

项目描述

Latest PyPI Version License Supported Python Versions Wheel format

Build Codecov

DM-engine是理论语言学中的分布式形态(DM)的Python实现。

分布式形态是一种用于描述自然语言形态(词结构)的框架。本软件包提供了一个引擎,用于计算给定DM分析生成的词形。

分析以人类友好的YAML格式作为纯文本文件输入。至少包含一个标题特征值清单、可插入的词汇项(VIs)列表以及要处理的输入列表(见下例)。dmengine 命令行工具计算结果并生成所有计算的详细记录,供后续检查。生成的YAML文件可以转换为基于LaTeX的报告,可以直接编译成PDF文件。

安装

此软件包在Python 3.7+上运行,使用pip安装

$ pip install dmengine

这将也会从PyPI安装所需的依赖包PyYAMLoset

将结果转换为PDF报告还需要一个LaTeX发行版TeX LiveMikTeX应该可以工作)。确保其可执行文件已添加到系统路径。

用法

创建一个定义你的分析的纯文本文件

# example.yaml - simple demonstration of the analysis definition syntax
title: English verbal agreement
features:
- value: V
  category: pos
- value: Nom
  category: case
- value: +1
  category: person
- value: +2
  category: person
- value: +3
  category: person
- value: -pl
  category: number
- value: +pl
  category: number
vis:
- exponent: sleep
  features: [ V ]
- exponent: -s
  features: [ Nom, +3, -pl ]
- exponent: 
  features: [ Nom ]
paradigms:
- name: Intransitive paradigm
  headers: [ [1, 2, 3], [sg, pl] ]
  inputs:
  - [ [V], [Nom, +1, -pl] ]
  - [ [V], [Nom, +1, +pl] ]
  - [ [V], [Nom, +2, -pl] ]
  - [ [V], [Nom, +2, +pl] ]
  - [ [V], [Nom, +3, -pl] ]
  - [ [V], [Nom, +3, +pl] ]

将你的分析定义保存到以.yaml结尾的文件中(例如example.yaml)。

打开一个shell(命令行窗口)并导航到你的定义文件所在的目录。

使用dmengine命令计算分析结果并创建PDF报告

$ dmengine example.yaml --pdf

这将创建三个文件

  • example-results.yaml – 以YAML格式存储结果的纯文本文件

  • example-results.tex – 结果报告的LaTeX源文件

  • example-results.pdf – 使用pdflatex编译的报告PDF输出

结果

转到报告的输出部分。它提供了一个计算的范例表

https://raw.github.com/xflr6/dmengine/master/docs/example-outputs.png

报告的日志部分包含有关每个单独输入以及输出推导的详细信息。

https://raw.github.com/xflr6/dmengine/master/docs/example-log.png

调用选项

查看dmengine命令的用法

$ dmengine --help

usage: dmengine [-h] [--version] [--report] [--pdf] [--view]
                filename [directory]

Calculates a given Distributed Morphology (DM) analysis

positional arguments:
  filename    dm analysis .yaml definition file
  directory   analysis results output directory

optional arguments:
  -h, --help  show this help message and exit
  --version   show program's version number and exit
  --report    create a LaTeX report from the results
  --pdf       render the report to PDF (implies --report)
  --view      open the report in viewer app (implies --pdf)

规则

分析可以使用以下类型的规则在插入前对输入进行操作:

  • impoverishment – 特征删除

  • obliteration – 移除头部

  • fission – 头部特征提取

  • fusion – 头部合并

  • copy – 头部复制

  • add – 特征添加

  • metathesis – 头部位置交换

以下类型的规则支持(在插入后对输出进行操作):

  • delete – 指数移除

  • copy – 指数复制

  • metathesis – 指数位置交换

  • transform – 正则表达式搜索和替换

上下文

词汇项的插入和插入前规则的应用可以限制以下上下文类型:

  • this_head – 处理的头部必须具有这些特征

  • left_head – 左侧相邻的头部必须具有这些特征

  • right_head – 右相邻的头部必须具有这些特征

  • any_head – 任何输入头部必须具有这些特征

  • anywhere – 特征必须在输入的某个位置匹配

待办事项

  • 检查每个输入的预期拼写输出

  • delete_matching: 是/否

  • delete_other: 所有、给定、无

  • set_delete: 全局、槽、vi

另请参阅

Raphael Finkel 提供了用于计算词形功能和网络词形分析的基于网页的引擎web-based engines

许可证

dmengineMIT 许可证 下分发。

项目详情


下载文件

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

源分布

dmengine-0.3.1.zip (78.3 kB 查看哈希值)

上传时间

构建分布

dmengine-0.3.1-py3-none-any.whl (36.4 kB 查看哈希值)

上传时间 Python 3

支持者

AWSAWS云计算和安全赞助商DatadogDatadog监控FastlyFastlyCDNGoogleGoogle下载分析MicrosoftMicrosoftPSF赞助商PingdomPingdom监控SentrySentry错误日志StatusPageStatusPage状态页面