Code Monkey home page Code Monkey logo

ezhil-language-foundation / open-tamil Goto Github PK

View Code? Open in Web Editor NEW
262.0 262.0 80.0 104.67 MB

Open Source Tamil NLP Tools - தமிழ் இயற்கை மொழி பகுப்பாய்வு நிரல்தொகுப்பு

Home Page: http://tamilpesu.us

License: MIT License

C 0.18% Python 23.60% Shell 0.03% HTML 2.92% JavaScript 67.92% Makefile 0.01% Ruby 0.02% Java 2.15% CSS 0.57% Dockerfile 0.01% MATLAB 0.01% Less 2.24% Rust 0.34%

open-tamil's Introduction

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. தமிழ் முதன்மையாக தென் இந்தியாவில் பேசப்படும் பாரம்பரிய மொழி ஆகும்.

open-tamil's People

Contributors

abuvanth avatar arcturusannamalai avatar arulalant avatar atvkumar avatar cre2525 avatar dependabot[bot] avatar digital-carver avatar ksengottuvel avatar msathia avatar parathantl avatar photonique avatar rudhbaskaran avatar sbuvaneshkumar avatar smartmanoj avatar ssurenr avatar subramani95 avatar tecoholic avatar tshrinivasan avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

open-tamil's Issues

tamil.utf8.compare_words_lexicographic - Python3 support is missing

Python 3 support is missing. This goes to origin of sorted() working differently with new API in Python 3. Ref: [[https://docs.python.org/3/howto/sorting.html]], [[http://python3porting.com/preparing.html]]
for l in sorted(frequency.keys(), key=cmp_to_key(tamil.utf8.compare_words_lexicographic)):
File "/usr/local/lib/python3.4/dist-packages/tamil/utf8.py", line 390, in compare_words_lexicographic
return cmp(pos1, pos2)
NameError: name 'cmp' is not defined

Solthiruthi - framework - command line interface

Define solthiruthi command line interface, any combination of one or more of following,
$ python solthiruthi.py -dialects kovai,nellai,chennai -dict std,wikipedia,madurai,
$ python solthiruthi.py -help
$ python solthiruthi.py #to use the standard input and report errors at EOF
$ python solthiruthi.py -in -nalt 5 -replace #only 1 file at a time
$ python solthiruthi.py -auto # output in useful format for testing speller itself

options

  1. Dialect related spell checking for Kovai, Nellai, Ceylong or Chennai and other future vattara mozhigal
  2. Dict shows the allowed word dictionaries while spell checking
  3. Nalt shows number of alternatives in the suggestions
  4. Replace option replaces the text inplace
  5. Auto mode is sutiable for testing -a non-Interactive mode

Multi-threaded flows

Spell checking without context is inherently 'embarassingly parallel' problem.

Solthiruthi - framework - test

  1. solthiruthi/tests
    1.1 generate example documents with typos in words, and misspelled words.
    1.2 specify the words that are in error in text
    1.3 specify the corrected word/expected correct word

  2. Items could be listed as XML file,
    <?xml ver="1.2"?>
    <urai>
    <pizhaigal>
    <sol>
    <thiruttham></thiruttham>
    </sol>

    .... more sorkal ....
    </pizhaigal>
    </urai>

  3. Domain-specific language : alternative to 2 the urai items can be listed in a clear text format,

    urai

    .... tamil text goes here ...

    end urai

    pizhaigail

    $SOL | $THIRUTTHANGAL

    end pizhaigal

Solthiruthi - heuristic rules

  1. Define protocol/class outline interface for applying rules
  2. Define rules for adjacent vowels, consonants
  3. Define rules based on other Tamil language heuristics

வணக்கம் - ஆவணங்கள் தமிழில் இல்லை ஏன்?

வணக்கம்,

எனது சிறிய வேண்டுகோள்/கருத்து.

உங்கள் முயற்சிகளுக்கு எனது மனமார்ந்த வாழ்த்துக்கள் நன்றிகள் !
எந்த தமிழ் மென்பொருளாகினும் ஆவணம் தமிழில் கிடைக்கிடைப்பது அறிது.
உங்களின் படைப்புகளுக்கான ஆவணங்களை(Readme etc..) முடிந்த வரை தமிழில் கொடுத்தால் பயனாக இருக்கும்.

வருகின்ற நிரலாலற்களும் இதைத்தொடர்ந்து செய்துடுவார்கள்.

நன்றி
அருண் குமார்

Move unit tests to right folders

Hello Arulalan,

Please move unit tests to right folders, for 'utils' module.

I think we have to merge all of that code into tamil module at some point. Maybe 'tamil.utils' class within 'tamil' module would be a nice setup.

Thanks

Create a noun list

Collect noun list from various sources.
Ask community to help for adding more verbs.

Suffix removal function

பாடத்தில் -> பாடத்த் (இல் நீக்கம்)
அவர்கள் -> அவர் (கள் நீக்கம்)

corpus analysis tools - precursor to Bayesian inference

  • Task: Build n-gram letter analysis tools to work on a given corpus, e.g. Wikipedia, Website, Blog etc.
  • Requirements
    1. Letter frequency info
    2. Esp bi-, tri- gram data sets, with smoothing
    3. Word level bi-gram data.
    4. Write out the data in some common text/XML format as efficient.
  • Note :
    This will be useful precursor to Bayesian analysis in Tamil

tscii - ஒருங்குறியில் பிழை

Reported by Shrini

open-tamil பயன்படுத்தி tscii - ஒருங்குறி மாற்றும் போது, 'ரி' எழுத்து
வருவதில்லை.

¢ மட்டுமே வருகிறது. ரி க்கு முன் உள்ள எழுத்துமே மாறி விருகிறது.

உதாரணக் கோப்புகளைக் காண்க.

இதே பிழை இங்கும் உள்ளது.

http://www.suratha.com/reader.htm

இது சரியாக வேலை செய்கிறது.
http://www.higopi.com/adhiyaman/

அருள்,
இந்த பிழையை சரி செய்ய வேண்டுகிறேன்.

TACE-16

Create a standard library that can
1.Take any unicode input and try to return the codepoints for TACE-16
2. Interpret complex characters and prrovide TACE-16 codepoints
3. String Manipulation on TACE-16

tamil.utf8.istamil_alnum - bug

tamil.utf8.istamil_alnum('---')
Traceback (most recent call last):
File "", line 1, in
File "build/bdist.linux-x86_64/egg/tamil/utf8.py", line 251, in istamil_alnum
AttributeError: 'str' object has no attribute 'istamil'

Enhancements to UTF-8 text processing in Tamil

Create a standard library that can
1.Take any unicode input and try to return the codepoints
2. Provide a standard method for Level II rendering for each complex character( avoid canonical equivalence problem)
3. Provide a new index to all 247+ Character set.
4. Return a standard tamil character array
5. Provide common string manipulation functions that are agnostic to encoding
a. Char count
b. Concatenate strings
c. reverse the strings
d. provide an array and return a string
e. compare strings
f. split string

WordSplitter algorithm

Add a word splitter algorithm for Tamil

பாரதமாதா -> பாரத + மாதா
தமிழ்நாடு
ஒருதலைகாதல் -> ஒரு + தலை + காதல்

பல்கலைகழகம் -> பல் + கலை + கழகம்

கணிதம் -> (same)

Ref: These will serve similar purpose like algorithm from German language, https://github.com/danielnaber/jwordsplitter

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.