emToken - Tokeniser

About the tool

What is this tool for? What does it do?

The tool determines sentence- and word boundaries in an input text. This task is not at all self-explanatory if there are abbreviations followed by person names, since a period followed by a word starting with an initial capital usually signals sentence boundary.

What is an input text?

It is plain text in UTF-8 encoding.

What is the output?

It is text segmented into sentences and words.

An example of the segmentation:

Input:
A kutya váratlanul ugatni kezdett. Ettől úgy megijedt dr. Thorotzkay Alfréd, hogy hanyatt esett az aszfalton. Felesége, aki egyébként a BKV Zrt.-nél dolgozik, egyből rohant hozzá, amint ezt megtudta.

Output:
<s><w>A</w><ws> </ws><w>kutya</w><ws></ws><w>váratlanul</w><ws> </ws><w>ugatni</w><ws></ws><w>kezdett</w><c>.</c></s><ws> </ws>
<s><w>Ettől</w><ws> </ws><w>úgy</w><ws> </ws><w>megijedt</w><ws> </ws><w>dr.</w><ws> </ws><w>Thorotzkay</w><ws> </ws><w>Alfréd</w><c>,</c><ws> </ws><w>hogy</w><ws> </ws><w>hanyatt</w><ws> </ws><w>esett</w><ws> </ws><w>az</w><ws> </ws><w>aszfalton</w><c>.</c></s><ws> </ws><s><w>Felesége</w><c>,</c><ws> </ws><w>aki</w><ws> </ws><w>egyébként</w><ws> </ws><w>a</w><ws> </ws><w>BKV</w><ws></ws><w>Zrt.-nél</w><ws> </ws><w>dolgozik</w><c>,</c><ws></ws><w>egyből</w><ws> </ws><w>rohant</w><ws> </ws><w>hozzá</w><c>,</c><ws> </ws><w>amint</w><ws> </ws><w>ezt</w><ws> </ws><w>megtudta</w><c>.</c></s>

<s> ... </s> tags mark sentence boundaries, <w> ... </w> tags word boundaries, <c> ... </c> punctuation, while <ws> ... </ws> tags mark the boundaries of space and other whitespace characters.


For developers:

Source Sourcecode: https://github.com/dlt-rilmta/quntoken
binary: https://github.com/dlt-rilmta/quntoken/releases/latest
Source language C++ and Python 3
Input Plain text in UTF-8 encoding
Output XML or JSON
Execution ./quntoken [-f FORMAT] FILE
Default output format is xml. Other possible formats:: xml, json.
Licence GNU GPLv3