UDPipe Documentation

repository·master·Indexed 19 days ago

https://github.com/ufal/udpipe

UDPipe is a language-agnostic, trainable NLP pipeline for tokenization, tagging, lemmatization, and dependency parsing, optimized for CoNLL-U formatted data. It provides a C++ API with native bindings for Python, Java, C#, and Perl, as well as a REST API web service and an R package. The toolkit includes core classes such as Pipeline for orchestrating NLP sequences, Model for managing linguistic models, Trainer for creating new models, and Evaluator for model assessment.

Tokens
11.2K
Snippets
15
Records
29
Agent score
65%

What's inside UDPipe

  1. Available UDPipe interfaces and integrations

    master

    UDPipe is available in several formats depending on your integration needs:

    • Binary: Pre-compiled binaries for Linux, Windows, and OS X.
    • Libraries: Native bindings for C++, Python, Perl, Java, and C#.
    • Web Service: Accessible via a REST API.
    • R Package: A third-party CRAN package (udpipe) is available for R users.
  2. Overview of Parsito dependency parser

    master

    Parsito is a fast, open-source dependency parser written in C++. It uses greedy transition-based parsing and an artificial neural network classifier, which allows it to be trained on any input data without manual feature engineering.

    Key characteristics:

    • High Throughput: Achieves approximately 30,000 words per second.
    • High Accuracy: Based on greedy transition-based parsing.
    • Pre-trained Models: Supports Universal Dependencies treebanks (37 treebanks available as of Dec 2015).
    • Licensing: Parsito is under Mozilla Public License 2.0. Linguistic models are free for non-commercial use under CC BY-NC-SA.
  3. Overview of UniLib Unicode Library

    master

    UniLib is an embeddable C++11 Unicode library designed for integration into other C++ projects. It provides essential Unicode processing capabilities including encoding support, character categorization, and text transformations.

    Key Features:

    • Support for UTF-8 and UTF-16 encodings.
    • Access to Unicode General Category information.
    • Text transformations: lowercasing, titlecasing, and uppercasing.
    • Unicode normalization forms.
    • Efficient stripping of combining marks.

    Supported Platforms & Compilers:

    • Linux: gcc and clang
    • Windows: Visual C++ 2019
    • macOS: clang
  4. Overview of MorphoDiTa

    master

    MorphoDiTa (Morphological Dictionary and Tagger) is an open-source tool designed for the morphological analysis of natural language texts. It provides the following core functionalities:

    • Morphological analysis: Decomposing words into their constituent morphemes.
    • Morphological generation: Constructing words from morphological features.
    • Tagging: Assigning morphological tags to tokens.
    • Tokenization: Segmenting text into individual tokens.

    MorphoDiTa can be used as a standalone command-line tool or integrated into applications as a library. It is distributed alongside trained linguistic models. For the Czech language, it is highly performant, achieving throughputs between 10,000 and 200,000 words per second.

  5. Use C# UDPipe Bindings

    master

    The C# bindings are located in the Ufal.UDPipe namespace. They serve as a direct conversion of the C++ API.

    Requirement: The bindings require the native C++ library libudpipe_csharp (on Windows, this is named udpipe_csharp).

  6. T2T DocSys Markup Specifications

    master

    T2T DocSys supports standard txt2tags markup with the following specific behaviors and additions:

    • Encoding: UTF-8 is the default encoding.
    • Plain Text: Paragraphs are automatically reflowed in plain text output.
    • Links: Local links in [ link #anchor ] format are supported within verbatim code, but they are only preserved in HTML and PDF outputs.
    • Spacing: The system accounts for empty or non-empty lines between paragraphs/lists and paragraphs/verbatim blocks.
    • Line Breaks: Use two or more spaces at the end of a line to denote a manual line break.
  7. Install C# UDPipe Bindings

    master

    You can obtain C# bindings in two ways:

    1. Binary Packages: Download the pre-compiled binary C# bindings included in the UDPipe binary packages.
    2. Manual Compilation: Navigate to the bindings/csharp directory and run make. You can optionally provide build options as described in the main UDPipe installation guide.
    # To compile manually
    cd bindings/csharp
    make
  8. Use the Perl UDPipe Bindings API

    master

    The Perl bindings are provided by the Ufal::UDPipe package. You can import all classes into your current namespace using the :all export tag.

    Note that the bindings are a direct conversion of the C++ API. Because Perl does not have a native interface for C++ vectors, you should refer to Ufal::UDPipe::Words for handling word sequences. Additionally, static methods and enumerations must be accessed through the module itself rather than through an object instance.

    use Ufal::UDPipe :all;