Skip to main content

A package for working with Kazakh language text processing.

Project description



QazNLTK: a package for working with Kazakh language text processing.

PyPI Latest Release PyPI Downloads PyPI Downloads

What is it?

QazNLTK provides developers with a fast and convenient tool for processing text in the Kazakh language. Tailored for the unique linguistic characteristics of Kazakh, this library offers a comprehensive set of tools for natural language processing, like: tokenization, sentence segmentation, evaluation similarity score and tranliteration of kazakh language cyrillic-latin.

Table of Contents

Main Features

Here are just a few of the things that qaznltk does well:

  1. Kazakh language Text Tokenizing by keyword frequencies:
from qaznltk import QazNLTK
qn = QazNLTK()

text = input("Enter text: ")
tokens = qn.tokenize(text)
print(tokens)

# Input: Біздің өміріміз үлкен өзен іспетті. Сіздің қайығыңыздың қиындықтардан жеңіл өтіп, махаббат иірімінде басқаруын жоғалтпай, бақыт сарқырамасына жетуін тілеймін!
# Output: [('өміріміз', 1), ('үлкен', 1), ('өзен', 1), ('іспетті', 1), ('сіздің', 1), ('қайығыңыздың', 1), ('қиындықтардан', 1), ('жеңіл', 1), ('өтіп', 1), ('махаббат', 1), ('иірімінде', 1), ('басқаруын', 1), ('жоғалтпай', 1), ('бақыт', 1), ('сарқырамасына', 1), ('жетуін', 1), ('тілеймін', 1)]
  1. Kazakh language Text Segmentation into sentences:
from qaznltk import QazNLTK
qn = QazNLTK()

text = input("Enter text: ")
sent_tokens = qn.sent_tokenize(text)
print(sent_tokens)

# Input: Біздің өміріміз үлкен өзен іспетті. Сіздің қайығыңыздың қиындықтардан жеңіл өтіп, махаббат иірімінде басқаруын жоғалтпай, бақыт сарқырамасына жетуін тілеймін!
# Output: ['Біздің өміріміз үлкен өзен іспетті.', 'Сіздің қайығыңыздың қиындықтардан жеңіл өтіп, махаббат иірімінде басқаруын жоғалтпай, бақыт сарқырамасына жетуін тілеймін!']
  1. Evaluate Difference score between 2 text:
from qaznltk import QazNLTK
qn = QazNLTK()

textA = input("Enter text A: ")
textB = input("Enter text B: ")
similarity_score = qn.calc_similarity(textA, textB)
print(similarity_score)

# Input: textA = "Еңбегіне қарай — құрмет, Жасына қарай — ізет.", textB = "Еңбегіне қарай табысы, Ерлігіне қарай дабысы."
# Output: 0.368421052631579
  1. Convert Kazakh language Text from Cyrillic to Latin using ISO-9 Standard:
from qaznltk import QazNLTK
qn = QazNLTK()

text = input("Enter text: ")
latin_text = qn.convert2latin_iso9(text)
print(latin_text)

# Input: Бүгін қандай керемет күн! 
# Output: Bùgìn k̦andaj keremet kùn!
  1. Convert Kazakh language Text from Latin to Cyrillic using ISO-9 Standard:
from qaznltk import QazNLTK
qn = QazNLTK()

text = input("Enter text: ")
cyrillic_text = qn.convert2cyrillic_iso9(text)
print(cyrillic_text)

# Input: Bùgìn k̦andaj keremet kùn!
# Output: Бүгін қандай керемет күн!
  1. Sentiment Analysis of Kazakh language text [negative: -1, neutral: 0, positive: 1]:
from qaznltk import QazNLTK
qn = QazNLTK()

text = input("Enter text: ")
sentimize_score = qn.sentimize(text)
print(sentimize_score)

# Input: Бұл мақала өте нашар жазылған.
# Output: -1.0 (negative)
  1. Converting any number N into kazakh language number words [N <= 10^31]:
from qaznltk import QazNLTK
qn = QazNLTK()

n = int(input())
print(qn.num2word(n))

# Input: N = 1465
# Output: бір мың төрт жүз алпыс бес
  1. Extracting information from IIN (Individual Identification Number) [IIN: 12 digits]:
from qaznltk import QazNLTK
qn = QazNLTK()

iin = input("Enter IIN: ")
print(qn.get_info_from_iin(iin))

# Input: 990408482390
# Output: {'status': 'success', 'date_of_birth': '08.04.1999', 'century_of_birth': '20', 'gender': 'female', 'sequence_number': 8239, 'control_discharge': 0}
  1. KNN Search on TF-IDF matrix embeddings of Kazakh language text:
from qaznltk import QazNLTKVectorizer

qn_vectorizer = QazNLTKVectorizer()
tf_idf_matrix = qn_vectorizer.fit_transform(documents)

knn = vectorizer.KNN(tf_idf_matrix)

query = "Еліміздің алтын күні жарық күн."

query_vector = qn_vectorizer.transform([query])[0]

results = knn.search(query_vector, k=3)

for idx, distance in results:
    print(f"Document: {documents[idx]}, Distance: {distance}")

# Input:
# documents = [
#     "Ер — елінде, гүл — жерінде.",
#     "Өз елінде көртышқан да батыр.",
#     "Өз елінің иті де қадірлі.",
#     "Отан үшін күрес — ерге тиген үлес.",
#     "Орағың өткір болса, қарың талмайды, Отаның берік болса, жауың алмайды.",
#     "Елінен безген ер болмас, Көлінен безген қаз болмас.",
#     "Сағынған елін аңсайды, Сары ала қаз көлін аңсайды.",
#     "Жат жердің қаршығасынан, Өз еліңнің қарғасы артық.",
#     "Егілмеген жер жетім, Елінен айырылған ер жетім.",
#     "Ерінен айырылған көмгенше жылайды, Елінен айырылған өлгенше жылайды.",
#     "Отан — отбасынан басталады.",
#     "Опасызда oтан жоқ.",
#     "Отан оттан да ыстық.",
#     "Отансыз адам — ормансыз бұлбұл."
# ]

# Output:
# Document: Орағың өткір болса, қарың талмайды, Отаның берік болса, жауың алмайды., Distance: 0.6740830490255459
# Document: Жат жердің қаршығасынан, Өз еліңнің қарғасы артық., Distance: 0.7040525969511919
# Document: Өз елінде көртышқан да батыр., Distance: 0.7453452762306501
  1. QazPerry

Gemma 2: 2B QazPerry is a fine-tuned version of the Gemma 2B model, optimized for the Kazakh language. This model is part of the QazPerry initiative, which aims to develop Small Large Language Models (SLLMs) to enhance Kazakh NLP capabilities. It has been fine-tuned using the saillab/alpaca_kazakh_taco dataset with a LoRA adaptation approach to improve efficiency.

pip install keras-nlp huggingface_hub
from huggingface_hub import hf_hub_download
import keras
import keras_nlp

repo_id = "silvermete0r/Gemma2_2B_QazPerry"
filename = "Gemma2_2B_QazPerry.keras"

model_path = hf_hub_download(repo_id=repo_id, filename=filename)

gemma_lm = keras.models.load_model(model_path, custom_objects={"GemmaCausalLM": keras_nlp.models.GemmaCausalLM})

prompt = "Instruction:\nҚазақша бірдеңе айтшы?\n\nResponse:\n"

print(gemma_lm.generate(prompt))

Where to get it

The source code is currently hosted on GitHub at: https://github.com/silvermete0r/QazNLTK.git

Binary installers for the latest released version are available at the Python Package Index (PyPI).

pip install qaznltk

image

Dependencies

  • Package was developed on built-in python functions (pure python);

License

License: MIT

Getting Help

📧 supwithproject@gmail.com

Contributing to qaznltk

All contributions, bug reports, bug fixes, documentation improvements, enhancements, and ideas are welcome.


Go to Top

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

qaznltk-1.2.4.4.tar.gz (14.7 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

qaznltk-1.2.4.4-py3-none-any.whl (13.0 kB view details)

Uploaded Python 3

File details

Details for the file qaznltk-1.2.4.4.tar.gz.

File metadata

  • Download URL: qaznltk-1.2.4.4.tar.gz
  • Upload date:
  • Size: 14.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.10.13

File hashes

Hashes for qaznltk-1.2.4.4.tar.gz
Algorithm Hash digest
SHA256 766344ad27cf4abb91def9dcc2a822059e23e206fd8225c0510d577ac2b8ba4e
MD5 7af3f385cb108ee7fbbb1d5371ab6260
BLAKE2b-256 93c5a11499a0507e911e5cb4f91b11ea950cc58469d2a3bbd4fdf58382d468a9

See more details on using hashes here.

File details

Details for the file qaznltk-1.2.4.4-py3-none-any.whl.

File metadata

  • Download URL: qaznltk-1.2.4.4-py3-none-any.whl
  • Upload date:
  • Size: 13.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.10.13

File hashes

Hashes for qaznltk-1.2.4.4-py3-none-any.whl
Algorithm Hash digest
SHA256 b513981c43f767fc73f33957bfef098e683be99ade6bd5bf52947791372a02b6
MD5 24fcc7b400a75b549c0b5bd32e8dcb49
BLAKE2b-256 109defe887ca44a89ce685fb2a7fd0669585c43680fccaf3b2e20132b0538a2d

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page