冰岛语的拼写和语法校正器

reynir-correct的Python项目详细描述


概述

reynircorrect是用于 检查并更正冰岛文本中的拼写和语法

reynircorrect使用Reynir包, 由相同的作者来标记和解析文本。

令牌级别校正

reynircorrect可以标记文本并返回一个已更正的标记列表。 这将捕获标记级别的错误,例如拼写错误和错误 短语,但不是语法错误。

完整语法分析

reynircorrect还可以通过尝试解析 它,在令牌级别修正之后。解析是根据reynir的 冰岛语的上下文无关语法,增加了通用的生成规则 语法错误。分析返回一组注释(错误和建议) 应用于结果语句中的跨度数(连续标记) 令牌列表。

状态

此代码正在开发中,处于早期测试状态。它最终会 成为一个开放的拼写和语法检查的基础 在Greynir.is网站上向公众发布。 当然,它也将作为一个开源的python包提供 可以使用pip安装。

示例

要使用标记级别更正标记文本(在本例中不分析文本, 因此不进行语法检查:

>>> from reynir_correct import tokenize
>>> g = tokenize("Af gefnu tilefni fékk fékk daninn vilja sýnum "
>>>     "framgengt við hana í auknu mæli.")
>>> for tok in g:
>>>     print("{0:10} {1}".format(tok.txt or "", tok.error_description))

输出:

Að         Orðasambandið 'Af gefnu tilefni' var leiðrétt í 'að gefnu tilefni'
gefnu
tilefni
fékk       Endurtekið orð ('fékk') var fellt burt
Daninn     Orð á að byrja á hástaf: 'daninn'
vilja      Orðasambandið 'vilja sýnum framgengt' var leiðrétt í 'vilja sínum framgengt'
sínum
framgengt
við
hana
í          Orðasambandið 'í auknu mæli' var leiðrétt í 'í auknum mæli'
auknum
mæli
.

获取句子的拼写和语法注释列表:

>>> from reynir_correct import check_single
>>> sent = check_single("Páli, vini mínum, langaði að horfa á sjónvarpið.")
>>> for annotation in sent.annotations:
>>>     print("{0}".format(annotation))

输出:

000-004: E003  Frumlag sagnarinnar 'að langa' á að vera í þolfalli en ekki í þágufalli

               [ The subject of the verb 'að langa/to want' should be in the
                  accusative case, not the dative case ]

注意annotation.startannotation.end属性 (这里start是0,end是4)包含第一个和最后一个的索引 批注所应用的标记。E003是错误代码。

先决条件

这个包运行在cpython 3.4或更新版本上,pypy3.5或更新版本上。

安装

要安装此软件包:

$ pip3 install reynir-correct   # or pip install reynir-correct if Python3 is your default

如果您想编辑源代码,请这样做(假设您已经安装了git):

$ git clone https://github.com/mideind/ReynirCorrect
$ cd ReynirCorrect
$ # [ Activate your virtualenv here if you have one ]
$ python setup.py develop

包源代码现在位于ReynirCorrect/src/reynir_correct

测试

要运行内置测试,请将pytestcd安装到 ReynirCorrect子目录(并可选地激活virtualenv),然后运行:

$ python -m pytest

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

推荐PyPI第三方库


热门话题
java将数据从UI传递到数据库JSF、JPA等   静态和非静态的java错误   java Hibernate打开会话两次,需要事务   泛型对于这个简单的Java层次结构问题,我的最佳方法是什么?   googleappengine上的javasqlite   java如何实现或找到threadsafe CompletionService的等价物?   java类访问不同线程上的父类   调用SQLException时发生java RuntimeException。getMessage()(DB2)   java JTree:可变行高   链表编写一种方法,以升序对单个linkedlist进行排序(java)   java将TileMap加载到stage类libgdx中   java如何将数据正确添加到嵌套hashmap