All Projects → ysenarath → sinling

ysenarath / sinling

Licence: Apache-2.0 license
A collection of NLP tools for Sinhalese (සිංහල).

Programming Languages

Jupyter Notebook
11667 projects
python
139335 projects - #7 most used programming language

Projects that are alternatives of or similar to sinling

Jumanpp
Juman++ (a Morphological Analyzer Toolkit)
Stars: ✭ 254 (+568.42%)
Mutual labels:  tokenizer, pos-tagging
Kagome
Self-contained Japanese Morphological Analyzer written in pure Go
Stars: ✭ 554 (+1357.89%)
Mutual labels:  tokenizer, pos-tagging
Udpipe
R package for Tokenization, Parts of Speech Tagging, Lemmatization and Dependency Parsing Based on the UDPipe Natural Language Processing Toolkit
Stars: ✭ 160 (+321.05%)
Mutual labels:  tokenizer, pos-tagging
Libagar
Cross-Platform GUI Toolkit (stable)
Stars: ✭ 212 (+457.89%)
Mutual labels:  toolkit
Spiceypy
SpiceyPy: a Pythonic Wrapper for the SPICE Toolkit.
Stars: ✭ 218 (+473.68%)
Mutual labels:  toolkit
Framevuerk
Fast, Responsive, Multi Language, Both Direction Support and Configurable UI Framework based on Vue.js.
Stars: ✭ 252 (+563.16%)
Mutual labels:  toolkit
design-react-kit
A React toolkit that implements the Italia design system
Stars: ✭ 134 (+252.63%)
Mutual labels:  toolkit
Mola
A Modular Optimization framework for Localization and mApping (MOLA)
Stars: ✭ 206 (+442.11%)
Mutual labels:  toolkit
nightingale
NHS-Generic Frontend Framework.
Stars: ✭ 34 (-10.53%)
Mutual labels:  toolkit
Bioperl Live
Core BioPerl 1.x code
Stars: ✭ 244 (+542.11%)
Mutual labels:  toolkit
Pk3ds
Pokémon (3DS) ROM Editor & Randomizer
Stars: ✭ 244 (+542.11%)
Mutual labels:  toolkit
Phonia
Phonia Toolkit is one of the most advanced toolkits to scan phone numbers using only free resources. The goal is to first gather standard information such as country, area, carrier and line type on any international phone numbers with a very good accuracy.
Stars: ✭ 221 (+481.58%)
Mutual labels:  toolkit
greeb
Greeb is a simple Unicode-aware regexp-based tokenizer.
Stars: ✭ 16 (-57.89%)
Mutual labels:  tokenizer
Bedops
🔬 BEDOPS: high-performance genomic feature operations
Stars: ✭ 215 (+465.79%)
Mutual labels:  toolkit
VIZIA
A declarative GUI library written in Rust
Stars: ✭ 551 (+1350%)
Mutual labels:  toolkit
Luminoth
Deep Learning toolkit for Computer Vision.
Stars: ✭ 2,386 (+6178.95%)
Mutual labels:  toolkit
blog
个人博客,关注前端工程化及移动端
Stars: ✭ 17 (-55.26%)
Mutual labels:  toolkit
Mercury
Mercury is a hacking tool used to collect information and use the information to further hurt the target
Stars: ✭ 236 (+521.05%)
Mutual labels:  toolkit
Staplr
PDF Toolkit. 📎 🔨 🔧 ✂️ 📑 📁📎 🔖 🚧 👷
Stars: ✭ 221 (+481.58%)
Mutual labels:  toolkit
Jfa Pwa Toolkit
⚡️ PWA Features to Any Website (very Fast & Easy)
Stars: ✭ 245 (+544.74%)
Mutual labels:  toolkit

A language processing tool for Sinhalese (සිංහල).

Update 2020.11.01: Fixed pypi package. Use 'pip install sinling' to install sinling directly from repository.

Update 2020.08.16: Add pypi package @ https://pypi.org/project/sinling/.

Update 2020.08.16: Integrated Part of speech tagger and stemmer tool.

Update 2019.07.21: This tool no longer requires java to run sinhala tokenizer. All java code is ported to Python implementation for convenience.

Binder PyPI version

Installation

Run the following command in your virtualenv to install this package.

pip install sinling

How to use

Sinhala Tokenizer

from sinling import SinhalaTokenizer

tokenizer = SinhalaTokenizer()

sentence = '...'  # your sentence

tokenizer.tokenize(sentence)

Sinhala Stemmer (Experimental)

from sinling import SinhalaStemmer

stemmer = SinhalaStemmer()

word = '...'  # your sentence

stemmer.stem(word)

Please cite sinhala-stemmer if you are using this implementation.

Part-of-Speech Tagger

from sinling import SinhalaTokenizer, POSTagger

tokenizer = SinhalaTokenizer()

document = '...'  # may contain multiple sentences

tokenized_sentences = [tokenizer.tokenize(f'{ss}.') for ss in tokenizer.split_sentences(document)]

tagger = POSTagger()

pos_tags = tagger.predict(tokenized_sentences)

Word Joiner (Morphological Joiner)

from sinling import preprocess, word_joiner

w1 = preprocess('මුනි')
w2 = preprocess('උතුමා')
results = word_joiner.join(w1, w2)
# Returns a list of possible results after applying join rules ['මුනිතුමා', ...]

Word Splitter (Morphological Splitter) / corpus based - experimental

from sinling import word_splitter

word = '...'
results = word_splitter.split(word)
# Returns a dict containing debug information, base word and affix

Visit here to see some sample splits.

Contributions

License

Apache License Version 2.0, January 2004 http://www.apache.org/licenses/

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].