Open-Tamil

Tamil language text processing tools for Python v3


License
MIT
Install
pip install Open-Tamil==0.67

Documentation

Open Source Tamil Tools and NLP Library for Python 3

родро┐ро▒ роорпВро▓ родрооро┐ро┤рпН роХро░рпБро╡ро┐роХро│рпН version 1.1

open-tamil-logo.jpg

роорпЖройрпНрокрпКро░рпБро│рпН (Software)

рокрпИродро╛ройрпН родрпКроХрпБрокрпНрокрпБроХро│рпН (Python Packages)

'tamil' роОройрпНро▒ рокрпИродро╛ройрпН родрпКроХрпБрокрпНрокрпИ ро╡ро┤роЩрпНроХрпБроХро┐ро▒рпЛроорпН

tamilstemmer

This module (introduced in v0.96) provides access to simple stemmer functions
originally created by Damodharan Rajalingam.

tamil

open-tamil provides Python package 'tamil' with ability to,

  1. map unicode code-points to Tamil letters - basic but important parsing - in a routine called get_letters from a Tamil word tamil.utf8.get_letters and tamil.utf8.get_letters_iterable API return the Tamil letters from the unicode points of a normalized unicode string. These routines are written with efficiency in mind, and tested for accuracy.

  2. work with vowels (uyir) and consonants (mei), compound, uyir-mei letters

  3. reverse letters in Tamil word

  4. numeral - convert a given number (integer) into a numeral in Indian or American based system. e.g. following call will return the string >> tamil.numeral.num2tamilstr_american( long(1e7) ) u"рокродрпНродрпБ рооро┐ро▓рпНро▓ро┐ропройрпН",

  5. date module: new update to this module in the v1.1 release was added by Arunmozhi (Techolic) adds datetime class with strftime, tamil_weekday(), Example usage:

    >>> from tamil.date import datetime
    >>> d = datetime(2022, 1, 25, 9, 30)
    >>> d.strftime_ta("%a %d, %b %Y")
    'роЪрпЖро╡рпНро╡ро╛ропрпН 25, роЬройро╡ро░ро┐ 2022'
    >>> d.strftime_ta("%A (%d %b %Y) %p %I:%M")
    'роЪрпЖро╡рпНро╡ро╛ропрпНроХрпНроХро┐ро┤роорпИ (25 роЬройро╡ро░ро┐ 2022) роорпБро▒рпНрокрпКро┤рпБродрпБ 09:30'
    

This adds a subclass of datetime.datetime class from the Python standard library that can be used as an alternate to the standard library class with an extra date-to-string function called strftime_ta which functions similar to the strftime function, except day, month names are returned in Tamil.

txt2unicode

Tamil Text Encode to Unicode Converter and vice versa. If you don't you know what your Tamil text encoding is, don't worry; the tamil.txt2unicode.auto2unicode function will find it and convert to unicode for you. ропрпБройро┐роХрпЛроЯрпН рооро╛ро▒рпНро▒ро┐ рооро▒рпНро▒рпБроорпН рооро╛ро▒ро╛роХро╡рпБроорпН родрооро┐ро┤рпН роЙро░рпИроХрпН роХрпБро▒ро┐ропро╛роХрпНроХроорпН. роЙроЩрпНроХро│родрпБ родрооро┐ро┤рпН роЙро░рпИроХрпН роХрпБро▒ро┐ропрпАроЯрпБ роОройрпНройро╡рпЖройрпНро▒рпБ родрпЖро░ро┐ропро╛родрпЖройро┐ро▓рпН, роирпАроЩрпНроХро│рпН роХро╡ро▓рпИ роХрпКро│рпНро│родрпН родрпЗро╡рпИропро┐ро▓рпНро▓рпИ; tamil.txt2unicode.auto2unicode роЪрпЖропро▓рпНрокро╛роЯрпБ роЗродройрпИроХрпН роХрогрпНроЯро▒ро┐ропрпБроорпН рооро▒рпНро▒рпБроорпН роЗродройрпИ ропрпБройро┐роХрпЛроЯрпБроХрпНроХрпБ рооро╛ро▒рпНро▒рпБроорпН.

Right now, it supports 25 known Tamil encodings. Read more details about [txt2unicode](tamil/txt2unicode/README.md) and [limitation](examples/txt2unicode/encodes_chars/README.md) of auto2unicode and unicode2auto. родро▒рпНроЪрооропроорпН, роЗродрпБ 25 родрооро┐ро┤рпН роХрпБро▒ро┐ропро╛роХрпНроХроорпН роХрпКрогрпНроЯ роОро┤рпБродрпНродрпБро░рпБроХрпНроХро│рпИ роЖродро░ро┐роХрпНроХро┐ро▒родрпБ. [txt2unicode](tamil/txt2unicode/README.md) рокро▒рпНро▒ро┐ роорпЗро▓рпБроорпН ро╡ро┐ро╡ро░роЩрпНроХро│рпБроорпН 'auto2unicode' рооро▒рпНро▒рпБроорпН 'unicode2auto'-ро╡ро┐ройрпН [роХрпБро▒рпИрокро╛роЯрпБроХро│рпИропрпБроорпН] (examples/txt2unicode/encodes_chars/README.md) роХро╛рогрпНроХ.

txt2ipa

Tamil Unicode Text to International Phonetic Alphabet (IPA) converter Read more details about [txt2ipa](tamil/txt2ipa/README.md) роЪро░рпНро╡родрпЗроЪ (роРрокро┐роП) рооро╛ро▒рпНро▒ро┐, родрооро┐ро┤рпН ропрпБройро┐роХрпЛроЯрпН роЙро░рпИ; роорпЗро▓рпБроорпН ро╡ро┐рокро░роЩрпНроХро│рпБроХрпНроХрпБ -> рокроЯро┐роХрпНроХ [роЗроЩрпНроХрпБ роЪрпКроЯрпБроХрпНроХро╡рпБроорпН](tamil/txt2ipa/README.md).

transliterate

The python package transliterate provides for commonly used transliteration phonetic schemes like,

  1. Azhagi - phonetic maps for all Tamil letters - many -> one supporting multiple form inputs
  2. Jaffna Library - phonetic maps for all Tamil letters - one->one
  3. Combinational layout - based on phonetic mapping of vowel+consonant
  4. University of Madras, ISO - transliteration schemes are added.

where you can supply English text, which phonetically encodes Tamil, and then receive Unicode encoded, in a best-effort algorithm for the longest phonetic match.

transliterate родрпКроХрпБрокрпНрокрпБ рокрпКродрпБро╡ро╛роХ рокропройрпНрокроЯрпБродрпНродрокрпНрокроЯрпБроорпН роТро▓ро┐рокрпЖропро░рпНрокрпНрокрпБроХро│рпИ ро╡ро┤роЩрпНроХрпБроХро┐ро▒родрпБ; роЕро╡рпИ, 1. роЕро┤роХро┐ - родрооро┐ро┤рпН роХроЯро┐родроЩрпНроХро│рпН роТро▓ро┐рокрпНрокрпБ ро╡ро░рпИрокроЯроЩрпНроХро│рпН - рокро▓ -> роТро░рпБ роЖродро░ро╡рпБ рокро▓ ро╡роЯро┐ро╡роорпН роЙро│рпНро│рпАроЯрпБроХро│рпН 2. ропро╛ро┤рпНрокрпНрокро╛рог роирпВро▓роХроорпН - родрооро┐ро┤рпН роХроЯро┐родроЩрпНроХро│рпН роТро▓ро┐рокрпНрокрпБ ро╡ро░рпИрокроЯроЩрпНроХро│рпН - роТройрпНро▒рпБ> роТро░рпБ 3. рокро▓родро░рокрпНрокроЯрпНроЯ роЕроорпИрокрпНрокрпБ - роЙропро┐ро░рпН + роорпЖропрпН роЙроЪрпНроЪро░ро┐рокрпНрокрпБ роорпЗрокрпНрокро┐роЩрпН роЕроЯро┐рокрпНрокроЯрпИропро┐ро▓рпН

tamilmorse

роЗроирпНрод родрпКроХрпБрокрпНрокро┐ро▓рпН родрооро┐ро┤рпБроХрпНроХро╛рой роорпЛро░рпНроЪрпБ роХрпБро▒ро┐роХро│рпИ роЙро░рпБро╡ро╛роХрпНроХро╡рпБроорпН, роХрпБро▒ро┐ропрпАроЯрпБроХро│рпИ рокро┐ро░ро┐родрпНродрпБрокрпНрокро╛ро░рпНроХро╡рпБроорпН роорпБроЯро┐ропрпБроорпН.

tamilsandhi

родрооро┐ро┤ро┐ро▓рпН роЪроирпНродро┐рокрпНрокро┐ро┤рпИ родро┐ро░рпБродрпНродро┐ роЙро░рпБро╡ро╛роХрпНроХро╡рпБроорпН рокро┐ро┤рпИроХ родро┐ро░рпБродрпНродро╡рпБроорпН роЙродро╡ро┐ропро╛роХроЗроирпНрод роиро┐ро░ро▓рпН родрпКроХрпБрокрпНрокрпБ ро╡ро┤ро┐ро╡роХрпБроХрпНроХрпБроорпН. роПро░роХрпНроХрпБро▒рпИроп 40-ро╡ро┐родро┐роХро│рпИ роХрпКрогрпНроЯродрпБ роЗроирпНрод роиро┐ро░ро▓рпН родрпКроХрпБрокрпНрокрпИ роЙро░рпБро╡ро╛роХрпНроХро┐ропро╡ро░рпН родро┐ро░рпБроородро┐. роиро┐родрпНропро╛. роорпЗро▓рпБроорпН ро╡ро┐ро╡ро░роЩрпНроХро│рпБроХрпНроХ https://github.com/nithyadurai87/tamil-sandhi-checker Tamil Sandhi Checker is a project created and maintained by Nithya Duraisamy, with contributions from Ezhil Language Foundation. It is distributed under terms of GNU GPLv3.

For convenience this code is packaged with Open-Tamil.

C-tamil

The package under C-tamil provides some of the same functionality as Python 'tamil' but in ISO-C for C/C++ use. роЪро┐ родрооро┐ро┤рпН рокрпИродро╛ройрпН 'родрооро┐ро┤рпН' родрпКроХрпБрокрпНрокро┐ро▓рпН роЙро│рпНро│ роЪро┐ро▓ рокропройрпНрокро╛роЯрпБроХро│рпИ 'роЪро┐ родрооро┐ро┤рпН' роРроОро╕рпНроУ-роЪро┐-ропро┐ро▓рпН, роЪро┐/роЪро┐++ рокропройрпНрокроЯрпБродрпНродрпБроорпН ро╡роХрпИропро┐ро▓рпН роХрпКроЯрпБроХрпНроХрпБроорпН.

родро┐ро░рпИ ро╡ро┐роЪрпИрокрпНрокро▓роХрпИ (Onscreen Keyboard)

Open-tamil provides the keyboard layout in the file keyboard/tamil.js for they jQuery UI plugin. 'tamil.js' ро╡ро┐роЪрпИрокрпНрокро▓роХрпИ роЕроорпИрокрпНрокрпИ ро╡ро┤роЩрпНроХрпБроХро┐ро▒родрпБ.

рооро╛родро┐ро░ро┐роХро│рпН (Language Modes)

Basic support for letter unigram, bigram models using UTF-8 based corpora are supported in the package 'ngram/' which supports unigram model at the moment. More complex language models are expected to be developed soon. роОро┤рпБродрпНродрпБ unigram роЕроЯро┐рокрпНрокроЯрпИ роЖродро░ро╡рпБ, рооро▒рпНро▒рпБроорпН UTF-8 роЕроЯро┐рокрпНрокроЯрпИропро┐ро▓рпН роЪрпКро▒рпНроХро┐роЯроЩрпНроХро┐ройрпН рокропройрпНрокроЯрпБродрпНродро┐ bigram рооро╛родро┐ро░ро┐роХро│рпН 'ngram/' родрпКроХрпБрокрпНрокро╛ро▓рпН роЖродро░ро┐роХрпНроХрокрпНрокроЯрпБроХро┐ройрпНро▒рой, родро▒рпНрокрпКро┤рпБродрпБ роЕродрпБ рооро╛родро┐ро░ро┐ unigram-роР роЖродро░ро┐роХрпНроХро┐ро▒родрпБ. рооро┐роХро╡рпБроорпН роирпБрогрпБроХрпНроХрооро╛рой роорпКро┤ро┐ рооро╛родро┐ро░ро┐роХро│рпН ро╡ро┐ро░рпИро╡ро┐ро▓рпН роЕрокро┐ро╡ро┐ро░рпБродрпНродро┐ роЪрпЖропрпНропрокрпНрокроЯрпБроорпН роОрой роОродро┐ро░рпНрокро╛ро░рпНроХрпНроХрокрпНрокроЯрпБроХро┐ро▒родрпБ.

роиро┐ро▒рпБро╡рпБродро▓рпН (Installation)

Installation from Python Package Index is also recommended, following the commands,

$ pip install open-tamil

Installing from sources

After pulling sources from git repo you need to sync the submodule for tamilsandhi by issuing the following commands,

$ git submodule init $ git submodule update --force

This is required for packaging, tamilsandhichecker, along with open-tamil.

роЙродро╛ро░рогроЩрпНроХро│рпН (Example

Open-Tamil is a set of Python libraries which can help your application - web, system software, GUI on desktop etc. support Tamil text processing, inputs etc.

Open-Tamil is still a basic collection of tools - its not complete yet. We have keyboard layouts, converters to change old encoding to UTF-8, N-gram language models, transliterators etc.

Examples for using Python Open-Tamil are found [here](tests/).

роУрокройрпН-родрооро┐ро┤рпН роОройрпНрокродрпБ родрпКроХрпБроХрпНроХрокрпНрокроЯрпНроЯ рокрпИродро╛ройрпН роирпВро▓роХрооро╛роХрпБроорпН, роЙроЩрпНроХро│рпН ро╡ро▓рпИ, рогро┐ройро┐ роиро┐ро░ро▓рпН, роорпБроХродрпНродро┐ро░рпИ ро╡ро░рпИроХро▓рпИ рооро▒рпНро▒рпБроорпН рокро▓ родрооро┐ро┤рпН роОро┤рпБродрпНродрпБро░рпБ роЪрпЖропро▒рпНрокро╛роЯрпБроХро│рпБроХрпНроХрпБ рооро┐роХро╡рпБроорпН роЙро╡ро┐ропро╛роХ роЗро░рпБроХрпНроХрпБроорпН. роУрокройрпН-родрооро┐ро┤рпН роОройрпНрокродрпБ роЕроЯро┐рокрпНрокроЯрпИ родрпКроХрпБрокрпНрокрпБроХрпНроХро│рпИ роороЯрпНроЯрпБроорпЗ роХрпКрогрпНроЯ роХро░рпБро╡ро┐роХро│ро╛рпБроорпН, роЗродрпБ роЗройрпНройрпБроорпН роорпБро┤рпБроорпИ рокрпЖро▒ро╡ро┐ро▓рпНро▓рпИ. роЗродро┐ро▓рпН UTF-8, роОройрпН-роХро┐ро░ро╛роорпН роорпКро┤ро┐ рооро╛родро┐ро░ро┐роХро│рпН, transliterators роорпБродро▓ро┐ропрой рокро┤рпИроп роорпБро▒рпИропрпИ рооро╛ро▒рпНро▒ ро╡ро┐роЪрпИрокрпНрокро▓роХрпИ роЕроорпИрокрпНрокрпБ, рооро╛ро▒рпНро▒ро┐роХро│рпН роЙро│рпНро│рой. рокрпИродро╛ройрпН роУрокройрпН родрооро┐ро┤рпН рокропройрпНрокроЯрпБродрпНродро┐ роЙродро╛ро░рогроЩрпНроХро│рпН [роЗроЩрпНроХрпБ](tests/) роХро╛рогрокрпНрокроЯрпБроХро┐ройрпНро▒рой.

роЗро▓роХрпНроХрпБроХро│рпН (Goals)

Goal of this package is to collect and develop open-source licensed Tamil tools, in one location that provide the following,

  1. Unicode standard tools for Tamil - provide various tools for Tamil Unicode development. Currently 25 encodes are supported, read about it [here](tamil/txt2unicode/README.md)
  2. Access Unicode Tamil letters, vowels and consonants.
  3. Breakdown Tamil glyphs and unicode code-points into Tamil letter representations - collation
  4. Tools for navigating a corpus of data, build word frequency, prediction tables etc.
  5. Conversion from various encodings. e.g. TSCII to Unicode etc. We hope eventually to converts between the other major Tamil encodings like TAB, TAM, Bamini (insert-your-favortie-font-encoding) into Tamil Unicode encoding.
  6. Support all of above in Python3.

While most of tools in this package will be in Python 2.6. or later, we are open to other open-source language source code contributions.

Contributing to Open-Tamil

  1. Please add your code, and unit tests under MIT, GNU GPL or ASF licenses.
  2. Update your code into modules, add unit tests following the Python flake8, pylint standards
  3. Please do not mix TABS and SPACES. Use 4-space for Tabs.
  4. Make sure your module installed as part of pip package
  5. Ensure your code works for Python 2 and 3.

рокро▒рпНро▒ро┐(About)

Tamil is classical language primarily spoken in South India. родрооро┐ро┤рпН роорпБродройрпНроорпИропро╛роХ родрпЖройрпН роЗроирпНродро┐ропро╛ро╡ро┐ро▓рпН рокрпЗроЪрокрпНрокроЯрпБроорпН рокро╛ро░роорпНрокро░ро┐роп роорпКро┤ро┐ роЖроХрпБроорпН.