基于特征分配的词汇中心参数获取算法

ALPAFA的Python项目详细描述


阿尔帕法

AlpaFa(/l L p p f/,基于特征分配的词汇中心参数获取算法) 我2015年博士论文Algorithmic Acquisition of Focus Parameters(aafp)第2章描述的算法的python实现 试图使Rethinking Comparative Syntax(recos)项目的某些建议正式化。算法需要一组头,每个头 为许多可发现的属性指定,并使用 构造最小分类系统的属性。这是通过尝试分配每个 “最大”现有类别的所有头的新特性,如果失败,则使 “最小”分类法。此算法是域通用的假定组件 分类过程,旨在捕获结构化类型和历史 从第三要素原则看跨语言的句法变异。动机 aafp的第1章和第2章详细描述了该算法的行为,包括 非值特征、移动触发器和C-选择的扩展。第十章提出和 比较了6种不同的玩具片段文法算法的输入示例。

安装

使用pip安装:

$ pip install alpafa$ pip3 install alpafa

输入文件格式

输入文件紧密地基于aafp中用于输入规范的set符号,但是 为了便于创作和阅读,有些简化。它们应该是带utf-8的纯文本文件 兼容编码。将每个头部名称放在单独的行上,后跟冒号和 属性的逗号分隔列表。日珥顺序应该放在另一行,从 prominence=,后跟以逗号分隔的属性名列表。集合或 顺序对与aafp中的顺序对保持相同,尽管所有集合必须全部给定(即没有集合生成器 符号)。所有空格和空行都将被忽略。玩具碎片的示例规范 英语如下:

Cmat: comp, {T}}
Cwh: comp, int, <whq, m>, {T}
Crel: n, comp, nom, {T}
Csub: comp, arg, {T}
T: <phi, m>, {V, Copadj}
V: v, cat, {Csub, D, Dwh}
Copadj: v, {A}
D: n, arg, {Crel, φ}
Dwh: n, arg, wh, whq, {Crel, φ}
only: invis, excl, {D}
OpCR: invis, {φ, N}
φ: n, nom, phi, low, {noun}, {N}
ind: n
N: n, cat, noun, low
A: cat
Focfeat: invis, foc, feat, {Cmat, Cwh, Crel, Csub, T, V, Copadj, D, Dwh, only, OpCR, φ, ind, N, A, Focfeat}

prominence = n, v, cat, noun, comp, arg, wh, whq, nom, phi, int, invis, excl, feat, foc, low

源代码中包括aafp中6个玩具片段语法的示例输入文件。 第十章。

输出

alpafa默认输出一个头部列表,其中包含分类和从属特征, 以及算法操作的简要描述。功能包由选项卡分隔 为了便于粘贴到字处理程序中时的格式设置,我可以在以后的工作中使用更漂亮的打印 版本。有许多选项可用于更详细地输出算法的操作和 由它创建的类别,将在下一节中讨论。

Cmat        [-N,-V,-CAT,+COMP,-ARG,-INT]    (-N,-V,-CAT,-COMP,-INVIS)
Cwh [-N,-V,-CAT,+COMP,-ARG,+INT]    (-N,-V,-CAT,-COMP,-INVIS)       [uwhq^]
Crel        [+N,-CAT,+COMP,-ARG,+NOM,-LOW]  (-N,-V,-CAT,-COMP,-INVIS)
Csub        [-N,-V,-CAT,+COMP,+ARG] (-N,-V,-CAT,-COMP,-INVIS)
T   [-N,-V,-CAT,-COMP,-ARG,-INVIS]  (-N,+V) [uphi^]
V   [-N,+V,+CAT]    (-CAT,+ARG)
Copadj      [-N,+V,-CAT,-COMP,-ARG] (-N,-V,+CAT)
D   [+N,-CAT,-COMP,+ARG,-WH,-LOW]   (+N,-CAT,-ARG,+NOM)
Dwh [+N,-CAT,-COMP,+ARG,+WH,-LOW]   (+N,-CAT,-ARG,+NOM)     [vwhq]
only        [-N,-V,-CAT,-COMP,-ARG,+INVIS,+EXCL]    (+N,-CAT,-COMP,+ARG,-WH)
OpCR        [-N,-V,-CAT,-COMP,-ARG,+INVIS,-EXCL,-FEAT]      (+N,+LOW)
φ   [+N,-CAT,-COMP,-ARG,+NOM,+LOW]  (+N,+CAT)       [vphi,unoun]
ind [+N,-CAT,-COMP,-ARG,-NOM,-LOW]
N   [+N,+CAT,+LOW]          [vnoun]
A   [-N,-V,+CAT]
Focfeat     [-N,-V,-CAT,-COMP,-ARG,+INVIS,-EXCL,+FEAT]      ()      [vfoc]

Over 82 loops, 28 of which were non-vacuous, ALPAFA created 67 categories using 12 pairs of categorial features, and assigned 16 non-categorial features.

用法

alpafa是作为命令行实用程序实现的。使用以下语法读取输入文件 并将ALPAFA的输出写入文件(注意,这将覆盖相同的现有文件)。 名称作为输出):

$ alpafa input_file output_file

使用$ alpafa -h$ alpafa --help可以看到更复杂的选项:

usage: alpafa [-h] [--no_uf] [--no_cselect] [--log] [--categories]
              [--dependents]
              input_file output_file

Applies the algorithm from AAFP to a correctly formatted input file.

positional arguments:
  input_file    correctly formatted UTF-8 input file
  output_file   name of file to output

optional arguments:
  -h, --help    show this help message and exit
  --no_uf       do not implement unvalued features
  --no_cselect  do not implement c-selection
  --log         include a log of algorithm operations
  --categories  list all categories before heads
  --dependents  list all dependent features below their relevant categories
                (implies --categories)

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

推荐PyPI第三方库


热门话题
java基于条件如何创建StringBuffers并向其添加数据   java如何用UNC路径解决“不表示可正确访问的目录”异常?   在执行提取方法重构后,java代码的速度降低了6倍   java如何修改LDAPCertStore中用于X509证书链验证的LDAP连接属性   awt如何在Java中捕获鼠标光标?   字符串如何设置Java输出流   java NumberFormatException:用于输入字符串:“8:00”   unix/linux“tail f”的Java IO文件实现   java打印输出。带有JOptionPane的txt文件   java解组总是显示0和null   使用MySQL的windows java JavaFX自包含应用程序打包   JavaSpring:方法getBean(String…)是如何实现的根据输入字符串查找bean?   java高效地更新RecyclerView网格或以其他方式显示复杂网格   java向ArrayList添加对象(String、String、int、int)   java在一组文档上使用ForkJoinPool