Skip to main content

nlp-pie 包的扩展

项目描述

馅饼扩展

构建状态 覆盖状态 派皮

警告:此软件目前仅兼容 Python 3.7。

扩展pie以包括标记器及其模型和前/后处理器。

Pie 是训练模型的绝佳工具。大多数时候,这就足够了。这里pie_extended的建议是为您提供必要的工具,以通过定制的预处理和后处理共享您的模型。

当前系统提供了更容易添加自定义的访问:

  • 文本标准化,
  • 句子标记化,
  • 词标记化,
  • 消歧义,
  • 输出格式

引用为

@software{thibault_clerice_2020_3883590,
  author       = {Clérice, Thibault},
  title        = {Pie Extended, an extension for Pie with pre-processing and post-processing},
  month        = jun,
  year         = 2020,
  publisher    = {Zenodo},
  doi          = {10.5281/zenodo.3883589},
  url          = {https://doi.org/10.5281/zenodo.3883589}
}

当前支持的语言

  • 古典拉丁语(型号lasla:)
  • 古希腊(型号grc:)
  • 古法语 (型号: fro)
  • 早期现代法语(型号freem:)
  • 古典法语 (型号: fr)
  • 古荷兰语 (型号: dum)

如果您训练了模型并希望通过 Pie Extended 获得帮助,请打开一个问题 :)

安装

要安装,只需执行pip install pie-extended. 然后,查看所有可用的模型。

在终端上运行

但最重要的是,它提供了一种使用其他模型的快速简便的方法!例如,在外壳中:

pie-extended download lasla
pie-extended install-addons lasla
pie-extended tag lasla your_file.txt

将使您获得所需的一切!

Python API

您可以在自己的脚本中运行词形还原器并将令牌注释检索为字典:

from typing import List
from pie_extended.cli.utils import get_tagger, get_model, download

# In case you need to download
do_download = False
if do_download:
    for dl in download("lasla"):
        x = 1

# model_path allows you to override the model loaded by another .tar
model_name = "lasla"
tagger = get_tagger(model_name, batch_size=256, device="cpu", model_path=None)

sentences: List[str] = ["Lorem ipsum dolor sit amet, consectetur adipiscing elit. "]
# Get the main object from the model (: data iterator + postprocesor
from pie_extended.models.lasla.imports import get_iterator_and_processor
for sentence_group in sentences:
    iterator, processor = get_iterator_and_processor()
    print(tagger.tag_str(sentence_group, iterator=iterator, processor=processor) )

将导致

[{'form': 'lorem', 'lemma': 'lor', 'POS': 'NOMcom', 'morph': 'Case=Acc|Numb=Sing', 'treated': 'lorem'},
 {'form': 'ipsum', 'lemma': 'ipse', 'POS': 'PROdem', 'morph': 'Case=Acc|Numb=Sing', 'treated': 'ipsum'},
 {'form': 'dolor', 'lemma': 'dolor', 'POS': 'NOMcom', 'morph': 'Case=Nom|Numb=Sing', 'treated': 'dolor'},
 {'form': 'sit', 'lemma': 'sum1', 'POS': 'VER', 'morph': 'Numb=Sing|Mood=Sub|Tense=Pres|Voice=Act|Person=3',
  'treated': 'sit'},
 {'form': 'amet', 'lemma': 'amo', 'POS': 'VER', 'morph': 'Numb=Sing|Mood=Sub|Tense=Pres|Voice=Act|Person=3',
  'treated': 'amet'}, {'form': ',', 'lemma': ',', 'pos': 'PUNC', 'morph': 'MORPH=empty', 'treated': ','},
 {'form': 'consectetur', 'lemma': 'consector2', 'POS': 'VER',
  'morph': 'Numb=Sing|Mood=Sub|Tense=Pres|Voice=Dep|Person=3', 'treated': 'consectetur'},
 {'form': 'adipiscing', 'lemma': 'adipiscor', 'POS': 'VER', 'morph': 'Tense=Pres|Voice=Dep', 'treated': 'adipiscing'},
 {'form': 'elit', 'lemma': 'elio', 'POS': 'VER', 'morph': 'Numb=Sing|Mood=Ind|Tense=Pres|Voice=Act|Person=3',
  'treated': 'elit'}, {'form': '.', 'lemma': '.', 'pos': 'PUNC', 'morph': 'MORPH=empty', 'treated': '.'}]

添加模型

  • ./pie_extended/models/. 例:foo
  • ./pie_extended/models/__init__.py在变量中添加包的名称modules
  • 在模块pie_extended.models.foo中,我们应该找到以下变量:
    • Models: 一个包含 Pie 的文件名和任务的字符串。
    • DESC: 一个包含模型信息的元数据对象
    • DOWNLOADS:要下载的文件列表。
from pie_extended.utils import Metadata, File, get_path

DESC = Metadata(
    "Foo"
    "language",
    ["Author 1", "Author 2"],
    "A readable description",
    "A link to more information"
)

DOWNLOADS = [
    File("/a/link/to/a/file", "local_name_of_the_file.tar")
]


Models = "<{},task1,task2><{},lemma,pos>".format(
    get_path("foo", "local_name_of_the_file.tar")
)
  • 在模块pie_extended.models.foo.imports中,我们应该找到以下内容:
    1. get_iterator_and_processorDataIterator: 一个返回 a和 a的函数Processor
    2. (可选)addons:安装附加组件的功能
    3. (可选)Disambiguator:消歧器实例(或返回一个的对象创建者)

检查一个简单的例子pie_extended.models.fro.imports和​​一个更复杂的例子pie_extended.models.lasla.imports

安装开发版本(⚠ 仅用于开发)

克隆存储库,创建环境,然后

python setup.py develop

警告

这是一个非常早期的构建,可能会在这里和那里进行更改。但它是功能性的!

项目详情


下载文件

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

源分布

pie_extended-0.0.40.tar.gz (40.4 kB 查看哈希

已上传 source

内置分布

pie_extended-0.0.40-py2.py3-none-any.whl (69.0 kB 查看哈希

已上传 py2 py3