Repository files navigation

PyArabic

build

A specific Arabic language library for Python, provides basic functions to manipulate Arabic letters and text, like detecting Arabic letters, Arabic letters groups and characteristics, remove diacritics etc.

مكتبة برمجية للغة العربية بلغة بيثون، توفر دوالّ للتحكم في الحروف والنصوص، مثلا تحديد نوع الحرف، حذف الحركات، مقارنة التشكيل.

downloads

Developpers: Taha Zerrouki: http://tahadz.com taha dot zerrouki at gmail dot com

Featuresvalue
AuthorsTaha Zerrouki: http://tahadz.com, taha dot zerrouki at gmail dot com
Release0.6.12
LicenseGPLv3
Trackerlinuxscout/pyarabic/Issues
Websitehttps://pypi.python.org/pypi/pyarabic
Docpackage Documentaion
SourceGithub
Downloadpypi.python.org
FeedbacksComments
Accounts@Twitter@Sourceforge

Citation

DOI

Zerrouki, T., (2023). PyArabic: A Python package for Arabic text. Journal of Open Source Software, 8(84), 4886, https://doi.org/10.21105/joss.04886

T. Zerrouki‏, Pyarabic, An Arabic language library for Python, https://pypi.python.org/pypi/pyarabic/, 2010

or in bibtex format
```bibtex
@article{Zerrouki2023,
title = {PyArabic: A Python package for Arabic text},
author = {Taha Zerrouki},
year = 2023,
journal = {Journal of Open Source Software},
publisher = {The Open Journal},
volume = 8,
number = 84,
pages = 4886,
doi = {10.21105/joss.04886},
url = {https://doi.org/10.21105/joss.04886}
}

or

@misc{zerrouki2012pyarabic,
title={pyarabic, An Arabic language library for Python},
author={Zerrouki, Taha},
url={https://pypi.python.org/pypi/pyarabic, year={2010}}

مزايا

  • تصنيف الحروف
  • تفريق النص إلى وحدات (جمل أو كلمات)
  • حذف الحركات:( كل الحركات، الحركات عدا الشدة، حذف الشدة، حذف التطويل، حذف الحركة الأخيرة)
  • فصل الحركات عن النصوص وإدماجها
  • اختزال التشكيل
  • قياس التماثل بين كلمتين ( في الحركات جزئيا وكليا، التماثل مع وزن)
  • تنميط الحروف ( توحيد التراكيب مثل لام الألف، والهمزات)
  • تحويل الأعداد إلى كلمات
  • استخلاص العبارات العددية من النص
  • تشكيل أولي للعبارات العددية
  • قلب النصوص العربية للأنظمة التي لا تدعم تشبيك الحروف

Features

  • Arabic letters classification
  • Text tokenization into words or sentences
  • Strip Harakat ( all, except Shadda, tatweel, last_haraka)
  • Sperate and join Letters and Harakat
  • Reduce tashkeel
  • Mesure tashkeel similarity ( Harakats, fully or partially vocalized, similarity with a template)
  • Letters normalization ( Ligatures and Hamza)
  • Numbers to words
  • Extract numerical phrases
  • Pre-vocalization of numerical phrases
  • Unshiping texts

Applications

  • Arabic text processing

Installation

pip install pyarabic

Usage

importpyarabic.arabyasarabyimportpyarabic.numberasnumber

Package Documentation

https://pyarabic.readthedocs.io/

Files

  • file/directory category description
  • araby.py: arabic routins.
  • named.py: handle named enteties recognation.
  • unshape.py: unshaping arabic text

وصف

مكتبة بيثون للعربيةPyArabic مكتبة برمجية تجمع في طياتها خصائص ووظائف يحتاجها المبرمج للتعامل مع النصوص العربية، وهي مستوحاة من مكتبة بي أتش بي العربية لصديقنا خالد الشمعة، التي تستهدف توفير مصدر مفتوح لكثير من وظائف النصوص العربية لاستعمالها في مجال النشر في الإنترنت.

تعريف نص عربي

أفضل طريقة للتعامل مع النصوص العربية بلغة بيثون هو استخدام الترميز يونيكود، التي يدعمها بيثون دعما أصليا، لا حاجة فيه إلى مكتبات خارجية أو دوال خاصة، وقد يكون هذا أهمّ ما دفعني لاختيار لغة بيثون، إذ يكفي أن تسبق النص بحرف يو u لتدع بيثون يريحك من عناء التفكير وبرمجة النصوص، ويعامل معها بشفافية عالية.

تعريف نص عربي بترميز يونيكود

text=u'الإسلام ديننا'

اختيار ترميز ملف المتن.

#!/usr/bin/env python
# -*- coding: utf-8 -*-

عرض النص العربي في المخرج

print text.encode('utf8')

اسم المكتبة pyarabic فيها العديد من الوظائف المجمعة في وحدات:

فيها العديد من الوظائف المجمعة في وحدات:

  • وحدة : araby.py وفيها الثوابت كالحروف وأسمائها ومجموعاتها والوظائف العامة كحذف الحركات وحذف التطويل ومقارنة التشكيل بين الكلمات، وضبط علامات الترقيم.
  • وحدة الأعداد number.py : وفيها وظائف تحويل الأعداد إلى كلمات والكلمات إلى أعداد، كشف ألفاظ الأعداد في النص، وتشكيلها.
  • وحدة المسميات : named.py وفيها وظائف لكشف الأسماء والمسميات في النص.

وحدة الوظائف العامة araby

يمكن استدعاؤها بالأمر

Importpyarabic.arabyasaraby

وسنستعمل الاختصار araby فيما بعد الثوابت العامة في مكتبة عربي: تضم الحروف العربية ومجموعاتها المختلفة وبعض الأنماط المستخدمة لاحقا في وظائف مختلفة 1- الحروف العربية الأساسية مع تسميات لاتينية لاستعمالها في البرمجة

The arabic chars contains all arabic letters, a sub class of unicode,

COMMA=u'\u060C'SEMICOLON=u'\u061B'QUESTION=u'\u061F'HAMZA=u'\u0621'ALEF_MADDA=u'\u0622'ALEF_HAMZA_ABOVE=u'\u0623'

المزيد في ملف araby.py

تضم مجموعة الحروف العربية الحروف الأساسية، والحركات والأرقام، وعلامات الترقيم، وبعض الحروف الخاصة كالألف الخنجرية والياء الصغيرة، و لامات الألف بأشكالها.

مجموعات الأحرف:

ويمكن تقسيم الحروف في مجموعات وتصنيفات نستعملها فيما بعد في الوظائف المختلفة

الاسم العربيوصف المجموعةعناصرها
الحروفمجموعة الحروف العربية دون حركاتLETTERS = u'ابتةثجحخدذرزسشصضطظعغفقكلمنهويءآأؤإئ'
التشكيلمجموعة الحركات مع الشدة مدرجةTASHKEEL =(FATHATAN, DAMMATAN, KASRATAN, FATHA,DAMMA,KASRA, SUKUN, SHADDA)
الحركاتمجموعة الحركات دون الشدة مدرجةHARAKAT =( FATHATAN, DAMMATAN, KASRATAN, FATHA, DAMMA, KASRA, SUKUN);
الحركات القصيرةالحركات القصيرة دون تنوينSHORTHARAKAT =( FATHA, DAMMA, KASRA, SUKUN);
التنوينحركات التنوينTANWIN =(FATHATAN, DAMMATAN, KASRATAN);
المركباتلامات الألف في أشكالها المختلفةLIGUATURES = (u'ﻻ', u'ﻷ', u'ﻹ', u'ﻵ')
الهمزاتالهمزة في أشكالها المختلفةHAMZAT = (u'ء', u'ؤ', u'ئ', u'ٔ', u'ٕ', u'إ', u'أ')
الألفاتالألف في أشكالها المختلفةALEFAT = (u'ا', u'آ', u'أ', u'إ', u'ٱ', u'ى', u'ٰ')
حروف العلةالياء والواو والألفWEAK = (u'ا', u'و', u'ي', u'ى')
الياءاتما يرسم مثل الياء، الصغيرة منها، والألف المقصورة والهمزة على النبرةYEHLIKE = (u'ي', u'ئ', u'ى', u'ۦ')
الواواتما يرسم مثل الواوWAWLIKE = (u'و', u'ؤ', u'ۥ')
التاءاتالتاء المربوطة والمفتوحةTEHLIKE = (u'ت', u'ة')
الحروف الصغيرةالألف والياء والواو الصغارSMALL = (u'ٰ', u'ۥ', u'ۦ')
الحروف القمريةالحروف القمريةMOON = (u'ء', u'آ', u'أ', u'إ', u'ا', u'ب', u'ج', u'ح', u'خ', ...
الحروف الشمسيةالحروف الشمسيةSUN = (u'ت', u'ث', u'د', u'ذ', u'ر', u'ز', u'س', u'ش', u'ص', u...
ترتيب الحروف العربيةيعطي لكل حرف عربي رقما ترتيبيا فالألف واحد والباء اثنان والهمزة 29.AlphabeticOrder = {u'ء': 29, u'آ': 29, u'أ': 29, u'ؤ': 29, u'إ...
أسماء الحروفيعطي كل حرف اسمه العربيNAMES = {u'ء': u'همزة', u'آ': u'ألف ممدودة', u'أ': u'همزة على ...

الوظائف- الدوال

أهم الوظائف
وصف الدالةالدالة
حذف الحركات كلها بما فيها الشدةstrip_tashkeel(text)
حذف الحركات كلها ماعدا الشدةstrip_harakat(text)
حذف الحركة الأخيرةstrip_lastharaka(text)
حذف التطويلstrip_tatweel(text)
تنميط أشكال الهمزة المختلفةnormalize_hamza(text)
تفريق كلمات النصtokenize(text)
تفريق جمل النصsentence_tokenize(text)

طالع الوظائف والأمثلة في ملف المزايا

features.md

About

pyarabic

Topics

Resources

Stars

488 stars

Watchers

35 watching

Forks

Releases

Sponsor this project

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Add copy buttons to all
 blocks\n(function() {\n function addCopyButtons() {\n document.querySelectorAll('pre code').forEach(function(codeBlock) {\n if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;\n codeBlock.parentElement.setAttribute('data-copy-added', 'true');\n \n var btn = document.createElement('button');\n btn.textContent = 'Copy';\n btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';\n btn.onmouseover = function() { this.style.opacity = '1'; };\n btn.onmouseout = function() { this.style.opacity = '0.7'; };\n btn.onclick = function() {\n navigator.clipboard.writeText(codeBlock.textContent).then(function() {\n btn.textContent = 'Copied!';\n setTimeout(function() { btn.textContent = 'Copy'; }, 1500);\n });\n };\n codeBlock.parentElement.style.position = 'relative';\n codeBlock.parentElement.appendChild(btn);\n });\n }\n \n addCopyButtons();\n \n // Re-run on dynamic content\n var observer = new MutationObserver(addCopyButtons);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Add Copy Buttons to Code Blocks");
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
Skip to content

Repository files navigation

PyArabic

build

A specific Arabic language library for Python, provides basic functions to manipulate Arabic letters and text, like detecting Arabic letters, Arabic letters groups and characteristics, remove diacritics etc.

مكتبة برمجية للغة العربية بلغة بيثون، توفر دوالّ للتحكم في الحروف والنصوص، مثلا تحديد نوع الحرف، حذف الحركات، مقارنة التشكيل.

downloads

Developpers: Taha Zerrouki: http://tahadz.com taha dot zerrouki at gmail dot com

Featuresvalue
AuthorsTaha Zerrouki: http://tahadz.com, taha dot zerrouki at gmail dot com
Release0.6.12
LicenseGPLv3
Trackerlinuxscout/pyarabic/Issues
Websitehttps://pypi.python.org/pypi/pyarabic
Docpackage Documentaion
SourceGithub
Downloadpypi.python.org
FeedbacksComments
Accounts@Twitter@Sourceforge

Citation

DOI

Zerrouki, T., (2023). PyArabic: A Python package for Arabic text. Journal of Open Source Software, 8(84), 4886, https://doi.org/10.21105/joss.04886

T. Zerrouki‏, Pyarabic, An Arabic language library for Python, https://pypi.python.org/pypi/pyarabic/, 2010

or in bibtex format
```bibtex
@article{Zerrouki2023,
title = {PyArabic: A Python package for Arabic text},
author = {Taha Zerrouki},
year = 2023,
journal = {Journal of Open Source Software},
publisher = {The Open Journal},
volume = 8,
number = 84,
pages = 4886,
doi = {10.21105/joss.04886},
url = {https://doi.org/10.21105/joss.04886}
}

or

@misc{zerrouki2012pyarabic,
title={pyarabic, An Arabic language library for Python},
author={Zerrouki, Taha},
url={https://pypi.python.org/pypi/pyarabic, year={2010}}

مزايا

  • تصنيف الحروف
  • تفريق النص إلى وحدات (جمل أو كلمات)
  • حذف الحركات:( كل الحركات، الحركات عدا الشدة، حذف الشدة، حذف التطويل، حذف الحركة الأخيرة)
  • فصل الحركات عن النصوص وإدماجها
  • اختزال التشكيل
  • قياس التماثل بين كلمتين ( في الحركات جزئيا وكليا، التماثل مع وزن)
  • تنميط الحروف ( توحيد التراكيب مثل لام الألف، والهمزات)
  • تحويل الأعداد إلى كلمات
  • استخلاص العبارات العددية من النص
  • تشكيل أولي للعبارات العددية
  • قلب النصوص العربية للأنظمة التي لا تدعم تشبيك الحروف

Features

  • Arabic letters classification
  • Text tokenization into words or sentences
  • Strip Harakat ( all, except Shadda, tatweel, last_haraka)
  • Sperate and join Letters and Harakat
  • Reduce tashkeel
  • Mesure tashkeel similarity ( Harakats, fully or partially vocalized, similarity with a template)
  • Letters normalization ( Ligatures and Hamza)
  • Numbers to words
  • Extract numerical phrases
  • Pre-vocalization of numerical phrases
  • Unshiping texts

Applications

  • Arabic text processing

Installation

pip install pyarabic

Usage

importpyarabic.arabyasarabyimportpyarabic.numberasnumber

Package Documentation

https://pyarabic.readthedocs.io/

Files

  • file/directory category description
  • araby.py: arabic routins.
  • named.py: handle named enteties recognation.
  • unshape.py: unshaping arabic text

وصف

مكتبة بيثون للعربيةPyArabic مكتبة برمجية تجمع في طياتها خصائص ووظائف يحتاجها المبرمج للتعامل مع النصوص العربية، وهي مستوحاة من مكتبة بي أتش بي العربية لصديقنا خالد الشمعة، التي تستهدف توفير مصدر مفتوح لكثير من وظائف النصوص العربية لاستعمالها في مجال النشر في الإنترنت.

تعريف نص عربي

أفضل طريقة للتعامل مع النصوص العربية بلغة بيثون هو استخدام الترميز يونيكود، التي يدعمها بيثون دعما أصليا، لا حاجة فيه إلى مكتبات خارجية أو دوال خاصة، وقد يكون هذا أهمّ ما دفعني لاختيار لغة بيثون، إذ يكفي أن تسبق النص بحرف يو u لتدع بيثون يريحك من عناء التفكير وبرمجة النصوص، ويعامل معها بشفافية عالية.

تعريف نص عربي بترميز يونيكود

text=u'الإسلام ديننا'

اختيار ترميز ملف المتن.

#!/usr/bin/env python
# -*- coding: utf-8 -*-

عرض النص العربي في المخرج

print text.encode('utf8')

اسم المكتبة pyarabic فيها العديد من الوظائف المجمعة في وحدات:

فيها العديد من الوظائف المجمعة في وحدات:

  • وحدة : araby.py وفيها الثوابت كالحروف وأسمائها ومجموعاتها والوظائف العامة كحذف الحركات وحذف التطويل ومقارنة التشكيل بين الكلمات، وضبط علامات الترقيم.
  • وحدة الأعداد number.py : وفيها وظائف تحويل الأعداد إلى كلمات والكلمات إلى أعداد، كشف ألفاظ الأعداد في النص، وتشكيلها.
  • وحدة المسميات : named.py وفيها وظائف لكشف الأسماء والمسميات في النص.

وحدة الوظائف العامة araby

يمكن استدعاؤها بالأمر

Importpyarabic.arabyasaraby

وسنستعمل الاختصار araby فيما بعد الثوابت العامة في مكتبة عربي: تضم الحروف العربية ومجموعاتها المختلفة وبعض الأنماط المستخدمة لاحقا في وظائف مختلفة 1- الحروف العربية الأساسية مع تسميات لاتينية لاستعمالها في البرمجة

The arabic chars contains all arabic letters, a sub class of unicode,

COMMA=u'\u060C'SEMICOLON=u'\u061B'QUESTION=u'\u061F'HAMZA=u'\u0621'ALEF_MADDA=u'\u0622'ALEF_HAMZA_ABOVE=u'\u0623'

المزيد في ملف araby.py

تضم مجموعة الحروف العربية الحروف الأساسية، والحركات والأرقام، وعلامات الترقيم، وبعض الحروف الخاصة كالألف الخنجرية والياء الصغيرة، و لامات الألف بأشكالها.

مجموعات الأحرف:

ويمكن تقسيم الحروف في مجموعات وتصنيفات نستعملها فيما بعد في الوظائف المختلفة

الاسم العربيوصف المجموعةعناصرها
الحروفمجموعة الحروف العربية دون حركاتLETTERS = u'ابتةثجحخدذرزسشصضطظعغفقكلمنهويءآأؤإئ'
التشكيلمجموعة الحركات مع الشدة مدرجةTASHKEEL =(FATHATAN, DAMMATAN, KASRATAN, FATHA,DAMMA,KASRA, SUKUN, SHADDA)
الحركاتمجموعة الحركات دون الشدة مدرجةHARAKAT =( FATHATAN, DAMMATAN, KASRATAN, FATHA, DAMMA, KASRA, SUKUN);
الحركات القصيرةالحركات القصيرة دون تنوينSHORTHARAKAT =( FATHA, DAMMA, KASRA, SUKUN);
التنوينحركات التنوينTANWIN =(FATHATAN, DAMMATAN, KASRATAN);
المركباتلامات الألف في أشكالها المختلفةLIGUATURES = (u'ﻻ', u'ﻷ', u'ﻹ', u'ﻵ')
الهمزاتالهمزة في أشكالها المختلفةHAMZAT = (u'ء', u'ؤ', u'ئ', u'ٔ', u'ٕ', u'إ', u'أ')
الألفاتالألف في أشكالها المختلفةALEFAT = (u'ا', u'آ', u'أ', u'إ', u'ٱ', u'ى', u'ٰ')
حروف العلةالياء والواو والألفWEAK = (u'ا', u'و', u'ي', u'ى')
الياءاتما يرسم مثل الياء، الصغيرة منها، والألف المقصورة والهمزة على النبرةYEHLIKE = (u'ي', u'ئ', u'ى', u'ۦ')
الواواتما يرسم مثل الواوWAWLIKE = (u'و', u'ؤ', u'ۥ')
التاءاتالتاء المربوطة والمفتوحةTEHLIKE = (u'ت', u'ة')
الحروف الصغيرةالألف والياء والواو الصغارSMALL = (u'ٰ', u'ۥ', u'ۦ')
الحروف القمريةالحروف القمريةMOON = (u'ء', u'آ', u'أ', u'إ', u'ا', u'ب', u'ج', u'ح', u'خ', ...
الحروف الشمسيةالحروف الشمسيةSUN = (u'ت', u'ث', u'د', u'ذ', u'ر', u'ز', u'س', u'ش', u'ص', u...
ترتيب الحروف العربيةيعطي لكل حرف عربي رقما ترتيبيا فالألف واحد والباء اثنان والهمزة 29.AlphabeticOrder = {u'ء': 29, u'آ': 29, u'أ': 29, u'ؤ': 29, u'إ...
أسماء الحروفيعطي كل حرف اسمه العربيNAMES = {u'ء': u'همزة', u'آ': u'ألف ممدودة', u'أ': u'همزة على ...

الوظائف- الدوال

أهم الوظائف
وصف الدالةالدالة
حذف الحركات كلها بما فيها الشدةstrip_tashkeel(text)
حذف الحركات كلها ماعدا الشدةstrip_harakat(text)
حذف الحركة الأخيرةstrip_lastharaka(text)
حذف التطويلstrip_tatweel(text)
تنميط أشكال الهمزة المختلفةnormalize_hamza(text)
تفريق كلمات النصtokenize(text)
تفريق جمل النصsentence_tokenize(text)

طالع الوظائف والأمثلة في ملف المزايا

features.md

About

pyarabic

Topics

Resources

Stars

488 stars

Watchers

35 watching

Forks

Releases

Sponsor this project

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Force GitHub README to respect dark mode\n(function() {\n var style = document.createElement('style');\n style.textContent = '\n .markdown-body {\n color-scheme: dark light;\n }\n .markdown-body pre { background: #161b22 !important; }\n .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; }\n .markdown-body table th, .markdown-body table td { border-color: #30363d !important; }\n .markdown-body img { background: #0d1117; }\n .markdown-body blockquote { border-left-color: #8b949e; }\n .markdown-body hr { border-color: #30363d; }\n ';\n document.head.appendChild(style);\n})();", "GitHub Dark Mode README Fix"); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

PyArabic

build

A specific Arabic language library for Python, provides basic functions to manipulate Arabic letters and text, like detecting Arabic letters, Arabic letters groups and characteristics, remove diacritics etc.

مكتبة برمجية للغة العربية بلغة بيثون، توفر دوالّ للتحكم في الحروف والنصوص، مثلا تحديد نوع الحرف، حذف الحركات، مقارنة التشكيل.

downloads

Developpers: Taha Zerrouki: http://tahadz.com taha dot zerrouki at gmail dot com

Featuresvalue
AuthorsTaha Zerrouki: http://tahadz.com, taha dot zerrouki at gmail dot com
Release0.6.12
LicenseGPLv3
Trackerlinuxscout/pyarabic/Issues
Websitehttps://pypi.python.org/pypi/pyarabic
Docpackage Documentaion
SourceGithub
Downloadpypi.python.org
FeedbacksComments
Accounts@Twitter@Sourceforge

Citation

DOI

Zerrouki, T., (2023). PyArabic: A Python package for Arabic text. Journal of Open Source Software, 8(84), 4886, https://doi.org/10.21105/joss.04886

T. Zerrouki‏, Pyarabic, An Arabic language library for Python, https://pypi.python.org/pypi/pyarabic/, 2010

or in bibtex format
```bibtex
@article{Zerrouki2023,
title = {PyArabic: A Python package for Arabic text},
author = {Taha Zerrouki},
year = 2023,
journal = {Journal of Open Source Software},
publisher = {The Open Journal},
volume = 8,
number = 84,
pages = 4886,
doi = {10.21105/joss.04886},
url = {https://doi.org/10.21105/joss.04886}
}

or

@misc{zerrouki2012pyarabic,
title={pyarabic, An Arabic language library for Python},
author={Zerrouki, Taha},
url={https://pypi.python.org/pypi/pyarabic, year={2010}}

مزايا

  • تصنيف الحروف
  • تفريق النص إلى وحدات (جمل أو كلمات)
  • حذف الحركات:( كل الحركات، الحركات عدا الشدة، حذف الشدة، حذف التطويل، حذف الحركة الأخيرة)
  • فصل الحركات عن النصوص وإدماجها
  • اختزال التشكيل
  • قياس التماثل بين كلمتين ( في الحركات جزئيا وكليا، التماثل مع وزن)
  • تنميط الحروف ( توحيد التراكيب مثل لام الألف، والهمزات)
  • تحويل الأعداد إلى كلمات
  • استخلاص العبارات العددية من النص
  • تشكيل أولي للعبارات العددية
  • قلب النصوص العربية للأنظمة التي لا تدعم تشبيك الحروف

Features

  • Arabic letters classification
  • Text tokenization into words or sentences
  • Strip Harakat ( all, except Shadda, tatweel, last_haraka)
  • Sperate and join Letters and Harakat
  • Reduce tashkeel
  • Mesure tashkeel similarity ( Harakats, fully or partially vocalized, similarity with a template)
  • Letters normalization ( Ligatures and Hamza)
  • Numbers to words
  • Extract numerical phrases
  • Pre-vocalization of numerical phrases
  • Unshiping texts

Applications

  • Arabic text processing

Installation

pip install pyarabic

Usage

importpyarabic.arabyasarabyimportpyarabic.numberasnumber

Package Documentation

https://pyarabic.readthedocs.io/

Files

  • file/directory category description
  • araby.py: arabic routins.
  • named.py: handle named enteties recognation.
  • unshape.py: unshaping arabic text

وصف

مكتبة بيثون للعربيةPyArabic مكتبة برمجية تجمع في طياتها خصائص ووظائف يحتاجها المبرمج للتعامل مع النصوص العربية، وهي مستوحاة من مكتبة بي أتش بي العربية لصديقنا خالد الشمعة، التي تستهدف توفير مصدر مفتوح لكثير من وظائف النصوص العربية لاستعمالها في مجال النشر في الإنترنت.

تعريف نص عربي

أفضل طريقة للتعامل مع النصوص العربية بلغة بيثون هو استخدام الترميز يونيكود، التي يدعمها بيثون دعما أصليا، لا حاجة فيه إلى مكتبات خارجية أو دوال خاصة، وقد يكون هذا أهمّ ما دفعني لاختيار لغة بيثون، إذ يكفي أن تسبق النص بحرف يو u لتدع بيثون يريحك من عناء التفكير وبرمجة النصوص، ويعامل معها بشفافية عالية.

تعريف نص عربي بترميز يونيكود

text=u'الإسلام ديننا'

اختيار ترميز ملف المتن.

#!/usr/bin/env python
# -*- coding: utf-8 -*-

عرض النص العربي في المخرج

print text.encode('utf8')

اسم المكتبة pyarabic فيها العديد من الوظائف المجمعة في وحدات:

فيها العديد من الوظائف المجمعة في وحدات:

  • وحدة : araby.py وفيها الثوابت كالحروف وأسمائها ومجموعاتها والوظائف العامة كحذف الحركات وحذف التطويل ومقارنة التشكيل بين الكلمات، وضبط علامات الترقيم.
  • وحدة الأعداد number.py : وفيها وظائف تحويل الأعداد إلى كلمات والكلمات إلى أعداد، كشف ألفاظ الأعداد في النص، وتشكيلها.
  • وحدة المسميات : named.py وفيها وظائف لكشف الأسماء والمسميات في النص.

وحدة الوظائف العامة araby

يمكن استدعاؤها بالأمر

Importpyarabic.arabyasaraby

وسنستعمل الاختصار araby فيما بعد الثوابت العامة في مكتبة عربي: تضم الحروف العربية ومجموعاتها المختلفة وبعض الأنماط المستخدمة لاحقا في وظائف مختلفة 1- الحروف العربية الأساسية مع تسميات لاتينية لاستعمالها في البرمجة

The arabic chars contains all arabic letters, a sub class of unicode,

COMMA=u'\u060C'SEMICOLON=u'\u061B'QUESTION=u'\u061F'HAMZA=u'\u0621'ALEF_MADDA=u'\u0622'ALEF_HAMZA_ABOVE=u'\u0623'

المزيد في ملف araby.py

تضم مجموعة الحروف العربية الحروف الأساسية، والحركات والأرقام، وعلامات الترقيم، وبعض الحروف الخاصة كالألف الخنجرية والياء الصغيرة، و لامات الألف بأشكالها.

مجموعات الأحرف:

ويمكن تقسيم الحروف في مجموعات وتصنيفات نستعملها فيما بعد في الوظائف المختلفة

الاسم العربيوصف المجموعةعناصرها
الحروفمجموعة الحروف العربية دون حركاتLETTERS = u'ابتةثجحخدذرزسشصضطظعغفقكلمنهويءآأؤإئ'
التشكيلمجموعة الحركات مع الشدة مدرجةTASHKEEL =(FATHATAN, DAMMATAN, KASRATAN, FATHA,DAMMA,KASRA, SUKUN, SHADDA)
الحركاتمجموعة الحركات دون الشدة مدرجةHARAKAT =( FATHATAN, DAMMATAN, KASRATAN, FATHA, DAMMA, KASRA, SUKUN);
الحركات القصيرةالحركات القصيرة دون تنوينSHORTHARAKAT =( FATHA, DAMMA, KASRA, SUKUN);
التنوينحركات التنوينTANWIN =(FATHATAN, DAMMATAN, KASRATAN);
المركباتلامات الألف في أشكالها المختلفةLIGUATURES = (u'ﻻ', u'ﻷ', u'ﻹ', u'ﻵ')
الهمزاتالهمزة في أشكالها المختلفةHAMZAT = (u'ء', u'ؤ', u'ئ', u'ٔ', u'ٕ', u'إ', u'أ')
الألفاتالألف في أشكالها المختلفةALEFAT = (u'ا', u'آ', u'أ', u'إ', u'ٱ', u'ى', u'ٰ')
حروف العلةالياء والواو والألفWEAK = (u'ا', u'و', u'ي', u'ى')
الياءاتما يرسم مثل الياء، الصغيرة منها، والألف المقصورة والهمزة على النبرةYEHLIKE = (u'ي', u'ئ', u'ى', u'ۦ')
الواواتما يرسم مثل الواوWAWLIKE = (u'و', u'ؤ', u'ۥ')
التاءاتالتاء المربوطة والمفتوحةTEHLIKE = (u'ت', u'ة')
الحروف الصغيرةالألف والياء والواو الصغارSMALL = (u'ٰ', u'ۥ', u'ۦ')
الحروف القمريةالحروف القمريةMOON = (u'ء', u'آ', u'أ', u'إ', u'ا', u'ب', u'ج', u'ح', u'خ', ...
الحروف الشمسيةالحروف الشمسيةSUN = (u'ت', u'ث', u'د', u'ذ', u'ر', u'ز', u'س', u'ش', u'ص', u...
ترتيب الحروف العربيةيعطي لكل حرف عربي رقما ترتيبيا فالألف واحد والباء اثنان والهمزة 29.AlphabeticOrder = {u'ء': 29, u'آ': 29, u'أ': 29, u'ؤ': 29, u'إ...
أسماء الحروفيعطي كل حرف اسمه العربيNAMES = {u'ء': u'همزة', u'آ': u'ألف ممدودة', u'أ': u'همزة على ...

الوظائف- الدوال

أهم الوظائف
وصف الدالةالدالة
حذف الحركات كلها بما فيها الشدةstrip_tashkeel(text)
حذف الحركات كلها ماعدا الشدةstrip_harakat(text)
حذف الحركة الأخيرةstrip_lastharaka(text)
حذف التطويلstrip_tatweel(text)
تنميط أشكال الهمزة المختلفةnormalize_hamza(text)
تفريق كلمات النصtokenize(text)
تفريق جمل النصsentence_tokenize(text)

طالع الوظائف والأمثلة في ملف المزايا

features.md

About

pyarabic

Topics

Resources

Stars

488 stars

Watchers

35 watching

Forks

Releases

Sponsor this project

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Highlight search terms from Google/DuckDuckGo/Bing referrer\n(function() {\n var ref = document.referrer;\n var terms = [];\n \n if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) {\n var url = new URL(ref);\n var q = url.searchParams.get('q') || url.searchParams.get('p');\n if (q) {\n terms = q.split(/\\s+/).filter(function(t) { return t.length > 2; });\n }\n }\n \n if (terms.length === 0) return;\n \n var style = document.createElement('style');\n style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }';\n document.head.appendChild(style);\n \n function highlight(node) {\n if (node.nodeType === 3) { // text node\n var text = node.textContent;\n var found = false;\n terms.forEach(function(term) {\n var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\') + ')', 'gi');\n if (regex.test(text)) {\n found = true;\n var frag = document.createDocumentFragment();\n var parts = text.split(regex);\n parts.forEach(function(part, i) {\n if (i % 2 === 0) {\n frag.appendChild(document.createTextNode(part));\n } else {\n var span = document.createElement('span');\n span.className = 'userscript-highlight';\n span.textContent = part;\n frag.appendChild(span);\n }\n });\n node.parentNode.replaceChild(frag, node);\n }\n });\n } else if (node.nodeType === 1 && node.childNodes) { // element\n var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT'];\n if (!skipTags.includes(node.tagName)) {\n Array.from(node.childNodes).forEach(highlight);\n }\n }\n }\n \n highlight(document.body);\n \n // Re-highlight on dynamic content\n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1 || node.nodeType === 3) highlight(node);\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Highlight Search Terms"); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

PyArabic

build

A specific Arabic language library for Python, provides basic functions to manipulate Arabic letters and text, like detecting Arabic letters, Arabic letters groups and characteristics, remove diacritics etc.

مكتبة برمجية للغة العربية بلغة بيثون، توفر دوالّ للتحكم في الحروف والنصوص، مثلا تحديد نوع الحرف، حذف الحركات، مقارنة التشكيل.

downloads

Developpers: Taha Zerrouki: http://tahadz.com taha dot zerrouki at gmail dot com

Featuresvalue
AuthorsTaha Zerrouki: http://tahadz.com, taha dot zerrouki at gmail dot com
Release0.6.12
LicenseGPLv3
Trackerlinuxscout/pyarabic/Issues
Websitehttps://pypi.python.org/pypi/pyarabic
Docpackage Documentaion
SourceGithub
Downloadpypi.python.org
FeedbacksComments
Accounts@Twitter@Sourceforge

Citation

DOI

Zerrouki, T., (2023). PyArabic: A Python package for Arabic text. Journal of Open Source Software, 8(84), 4886, https://doi.org/10.21105/joss.04886

T. Zerrouki‏, Pyarabic, An Arabic language library for Python, https://pypi.python.org/pypi/pyarabic/, 2010

or in bibtex format
```bibtex
@article{Zerrouki2023,
title = {PyArabic: A Python package for Arabic text},
author = {Taha Zerrouki},
year = 2023,
journal = {Journal of Open Source Software},
publisher = {The Open Journal},
volume = 8,
number = 84,
pages = 4886,
doi = {10.21105/joss.04886},
url = {https://doi.org/10.21105/joss.04886}
}

or

@misc{zerrouki2012pyarabic,
title={pyarabic, An Arabic language library for Python},
author={Zerrouki, Taha},
url={https://pypi.python.org/pypi/pyarabic, year={2010}}

مزايا

  • تصنيف الحروف
  • تفريق النص إلى وحدات (جمل أو كلمات)
  • حذف الحركات:( كل الحركات، الحركات عدا الشدة، حذف الشدة، حذف التطويل، حذف الحركة الأخيرة)
  • فصل الحركات عن النصوص وإدماجها
  • اختزال التشكيل
  • قياس التماثل بين كلمتين ( في الحركات جزئيا وكليا، التماثل مع وزن)
  • تنميط الحروف ( توحيد التراكيب مثل لام الألف، والهمزات)
  • تحويل الأعداد إلى كلمات
  • استخلاص العبارات العددية من النص
  • تشكيل أولي للعبارات العددية
  • قلب النصوص العربية للأنظمة التي لا تدعم تشبيك الحروف

Features

  • Arabic letters classification
  • Text tokenization into words or sentences
  • Strip Harakat ( all, except Shadda, tatweel, last_haraka)
  • Sperate and join Letters and Harakat
  • Reduce tashkeel
  • Mesure tashkeel similarity ( Harakats, fully or partially vocalized, similarity with a template)
  • Letters normalization ( Ligatures and Hamza)
  • Numbers to words
  • Extract numerical phrases
  • Pre-vocalization of numerical phrases
  • Unshiping texts

Applications

  • Arabic text processing

Installation

pip install pyarabic

Usage

importpyarabic.arabyasarabyimportpyarabic.numberasnumber

Package Documentation

https://pyarabic.readthedocs.io/

Files

  • file/directory category description
  • araby.py: arabic routins.
  • named.py: handle named enteties recognation.
  • unshape.py: unshaping arabic text

وصف

مكتبة بيثون للعربيةPyArabic مكتبة برمجية تجمع في طياتها خصائص ووظائف يحتاجها المبرمج للتعامل مع النصوص العربية، وهي مستوحاة من مكتبة بي أتش بي العربية لصديقنا خالد الشمعة، التي تستهدف توفير مصدر مفتوح لكثير من وظائف النصوص العربية لاستعمالها في مجال النشر في الإنترنت.

تعريف نص عربي

أفضل طريقة للتعامل مع النصوص العربية بلغة بيثون هو استخدام الترميز يونيكود، التي يدعمها بيثون دعما أصليا، لا حاجة فيه إلى مكتبات خارجية أو دوال خاصة، وقد يكون هذا أهمّ ما دفعني لاختيار لغة بيثون، إذ يكفي أن تسبق النص بحرف يو u لتدع بيثون يريحك من عناء التفكير وبرمجة النصوص، ويعامل معها بشفافية عالية.

تعريف نص عربي بترميز يونيكود

text=u'الإسلام ديننا'

اختيار ترميز ملف المتن.

#!/usr/bin/env python
# -*- coding: utf-8 -*-

عرض النص العربي في المخرج

print text.encode('utf8')

اسم المكتبة pyarabic فيها العديد من الوظائف المجمعة في وحدات:

فيها العديد من الوظائف المجمعة في وحدات:

  • وحدة : araby.py وفيها الثوابت كالحروف وأسمائها ومجموعاتها والوظائف العامة كحذف الحركات وحذف التطويل ومقارنة التشكيل بين الكلمات، وضبط علامات الترقيم.
  • وحدة الأعداد number.py : وفيها وظائف تحويل الأعداد إلى كلمات والكلمات إلى أعداد، كشف ألفاظ الأعداد في النص، وتشكيلها.
  • وحدة المسميات : named.py وفيها وظائف لكشف الأسماء والمسميات في النص.

وحدة الوظائف العامة araby

يمكن استدعاؤها بالأمر

Importpyarabic.arabyasaraby

وسنستعمل الاختصار araby فيما بعد الثوابت العامة في مكتبة عربي: تضم الحروف العربية ومجموعاتها المختلفة وبعض الأنماط المستخدمة لاحقا في وظائف مختلفة 1- الحروف العربية الأساسية مع تسميات لاتينية لاستعمالها في البرمجة

The arabic chars contains all arabic letters, a sub class of unicode,

COMMA=u'\u060C'SEMICOLON=u'\u061B'QUESTION=u'\u061F'HAMZA=u'\u0621'ALEF_MADDA=u'\u0622'ALEF_HAMZA_ABOVE=u'\u0623'

المزيد في ملف araby.py

تضم مجموعة الحروف العربية الحروف الأساسية، والحركات والأرقام، وعلامات الترقيم، وبعض الحروف الخاصة كالألف الخنجرية والياء الصغيرة، و لامات الألف بأشكالها.

مجموعات الأحرف:

ويمكن تقسيم الحروف في مجموعات وتصنيفات نستعملها فيما بعد في الوظائف المختلفة

الاسم العربيوصف المجموعةعناصرها
الحروفمجموعة الحروف العربية دون حركاتLETTERS = u'ابتةثجحخدذرزسشصضطظعغفقكلمنهويءآأؤإئ'
التشكيلمجموعة الحركات مع الشدة مدرجةTASHKEEL =(FATHATAN, DAMMATAN, KASRATAN, FATHA,DAMMA,KASRA, SUKUN, SHADDA)
الحركاتمجموعة الحركات دون الشدة مدرجةHARAKAT =( FATHATAN, DAMMATAN, KASRATAN, FATHA, DAMMA, KASRA, SUKUN);
الحركات القصيرةالحركات القصيرة دون تنوينSHORTHARAKAT =( FATHA, DAMMA, KASRA, SUKUN);
التنوينحركات التنوينTANWIN =(FATHATAN, DAMMATAN, KASRATAN);
المركباتلامات الألف في أشكالها المختلفةLIGUATURES = (u'ﻻ', u'ﻷ', u'ﻹ', u'ﻵ')
الهمزاتالهمزة في أشكالها المختلفةHAMZAT = (u'ء', u'ؤ', u'ئ', u'ٔ', u'ٕ', u'إ', u'أ')
الألفاتالألف في أشكالها المختلفةALEFAT = (u'ا', u'آ', u'أ', u'إ', u'ٱ', u'ى', u'ٰ')
حروف العلةالياء والواو والألفWEAK = (u'ا', u'و', u'ي', u'ى')
الياءاتما يرسم مثل الياء، الصغيرة منها، والألف المقصورة والهمزة على النبرةYEHLIKE = (u'ي', u'ئ', u'ى', u'ۦ')
الواواتما يرسم مثل الواوWAWLIKE = (u'و', u'ؤ', u'ۥ')
التاءاتالتاء المربوطة والمفتوحةTEHLIKE = (u'ت', u'ة')
الحروف الصغيرةالألف والياء والواو الصغارSMALL = (u'ٰ', u'ۥ', u'ۦ')
الحروف القمريةالحروف القمريةMOON = (u'ء', u'آ', u'أ', u'إ', u'ا', u'ب', u'ج', u'ح', u'خ', ...
الحروف الشمسيةالحروف الشمسيةSUN = (u'ت', u'ث', u'د', u'ذ', u'ر', u'ز', u'س', u'ش', u'ص', u...
ترتيب الحروف العربيةيعطي لكل حرف عربي رقما ترتيبيا فالألف واحد والباء اثنان والهمزة 29.AlphabeticOrder = {u'ء': 29, u'آ': 29, u'أ': 29, u'ؤ': 29, u'إ...
أسماء الحروفيعطي كل حرف اسمه العربيNAMES = {u'ء': u'همزة', u'آ': u'ألف ممدودة', u'أ': u'همزة على ...

الوظائف- الدوال

أهم الوظائف
وصف الدالةالدالة
حذف الحركات كلها بما فيها الشدةstrip_tashkeel(text)
حذف الحركات كلها ماعدا الشدةstrip_harakat(text)
حذف الحركة الأخيرةstrip_lastharaka(text)
حذف التطويلstrip_tatweel(text)
تنميط أشكال الهمزة المختلفةnormalize_hamza(text)
تفريق كلمات النصtokenize(text)
تفريق جمل النصsentence_tokenize(text)

طالع الوظائف والأمثلة في ملف المزايا

features.md

About

pyarabic

Topics

Resources

Stars

488 stars

Watchers

35 watching

Forks

Releases

Sponsor this project

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Strip utm_, fbclid, gclid, etc. from all links on page\n(function() {\n var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content',\n 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid',\n 'ref', 'ref_src', 'source', 'medium', 'campaign'];\n \n function cleanUrl(url) {\n try {\n var u = new URL(url, window.location.origin);\n var changed = false;\n trackingParams.forEach(function(p) {\n if (u.searchParams.has(p)) {\n u.searchParams.delete(p);\n changed = true;\n }\n });\n return changed ? u.toString() : url;\n } catch (e) {\n return url;\n }\n }\n \n function cleanLinks() {\n document.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n \n cleanLinks();\n \n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1) {\n if (node.tagName === 'A') cleanLinks();\n node.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Remove Tracking Parameters from Links"); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + '
Skip to content

Repository files navigation

PyArabic

build

A specific Arabic language library for Python, provides basic functions to manipulate Arabic letters and text, like detecting Arabic letters, Arabic letters groups and characteristics, remove diacritics etc.

مكتبة برمجية للغة العربية بلغة بيثون، توفر دوالّ للتحكم في الحروف والنصوص، مثلا تحديد نوع الحرف، حذف الحركات، مقارنة التشكيل.

downloads

Developpers: Taha Zerrouki: http://tahadz.com taha dot zerrouki at gmail dot com

Featuresvalue
AuthorsTaha Zerrouki: http://tahadz.com, taha dot zerrouki at gmail dot com
Release0.6.12
LicenseGPLv3
Trackerlinuxscout/pyarabic/Issues
Websitehttps://pypi.python.org/pypi/pyarabic
Docpackage Documentaion
SourceGithub
Downloadpypi.python.org
FeedbacksComments
Accounts@Twitter@Sourceforge

Citation

DOI

Zerrouki, T., (2023). PyArabic: A Python package for Arabic text. Journal of Open Source Software, 8(84), 4886, https://doi.org/10.21105/joss.04886

T. Zerrouki‏, Pyarabic, An Arabic language library for Python, https://pypi.python.org/pypi/pyarabic/, 2010

or in bibtex format
```bibtex
@article{Zerrouki2023,
title = {PyArabic: A Python package for Arabic text},
author = {Taha Zerrouki},
year = 2023,
journal = {Journal of Open Source Software},
publisher = {The Open Journal},
volume = 8,
number = 84,
pages = 4886,
doi = {10.21105/joss.04886},
url = {https://doi.org/10.21105/joss.04886}
}

or

@misc{zerrouki2012pyarabic,
title={pyarabic, An Arabic language library for Python},
author={Zerrouki, Taha},
url={https://pypi.python.org/pypi/pyarabic, year={2010}}

مزايا

  • تصنيف الحروف
  • تفريق النص إلى وحدات (جمل أو كلمات)
  • حذف الحركات:( كل الحركات، الحركات عدا الشدة، حذف الشدة، حذف التطويل، حذف الحركة الأخيرة)
  • فصل الحركات عن النصوص وإدماجها
  • اختزال التشكيل
  • قياس التماثل بين كلمتين ( في الحركات جزئيا وكليا، التماثل مع وزن)
  • تنميط الحروف ( توحيد التراكيب مثل لام الألف، والهمزات)
  • تحويل الأعداد إلى كلمات
  • استخلاص العبارات العددية من النص
  • تشكيل أولي للعبارات العددية
  • قلب النصوص العربية للأنظمة التي لا تدعم تشبيك الحروف

Features

  • Arabic letters classification
  • Text tokenization into words or sentences
  • Strip Harakat ( all, except Shadda, tatweel, last_haraka)
  • Sperate and join Letters and Harakat
  • Reduce tashkeel
  • Mesure tashkeel similarity ( Harakats, fully or partially vocalized, similarity with a template)
  • Letters normalization ( Ligatures and Hamza)
  • Numbers to words
  • Extract numerical phrases
  • Pre-vocalization of numerical phrases
  • Unshiping texts

Applications

  • Arabic text processing

Installation

pip install pyarabic

Usage

importpyarabic.arabyasarabyimportpyarabic.numberasnumber

Package Documentation

https://pyarabic.readthedocs.io/

Files

  • file/directory category description
  • araby.py: arabic routins.
  • named.py: handle named enteties recognation.
  • unshape.py: unshaping arabic text

وصف

مكتبة بيثون للعربيةPyArabic مكتبة برمجية تجمع في طياتها خصائص ووظائف يحتاجها المبرمج للتعامل مع النصوص العربية، وهي مستوحاة من مكتبة بي أتش بي العربية لصديقنا خالد الشمعة، التي تستهدف توفير مصدر مفتوح لكثير من وظائف النصوص العربية لاستعمالها في مجال النشر في الإنترنت.

تعريف نص عربي

أفضل طريقة للتعامل مع النصوص العربية بلغة بيثون هو استخدام الترميز يونيكود، التي يدعمها بيثون دعما أصليا، لا حاجة فيه إلى مكتبات خارجية أو دوال خاصة، وقد يكون هذا أهمّ ما دفعني لاختيار لغة بيثون، إذ يكفي أن تسبق النص بحرف يو u لتدع بيثون يريحك من عناء التفكير وبرمجة النصوص، ويعامل معها بشفافية عالية.

تعريف نص عربي بترميز يونيكود

text=u'الإسلام ديننا'

اختيار ترميز ملف المتن.

#!/usr/bin/env python
# -*- coding: utf-8 -*-

عرض النص العربي في المخرج

print text.encode('utf8')

اسم المكتبة pyarabic فيها العديد من الوظائف المجمعة في وحدات:

فيها العديد من الوظائف المجمعة في وحدات:

  • وحدة : araby.py وفيها الثوابت كالحروف وأسمائها ومجموعاتها والوظائف العامة كحذف الحركات وحذف التطويل ومقارنة التشكيل بين الكلمات، وضبط علامات الترقيم.
  • وحدة الأعداد number.py : وفيها وظائف تحويل الأعداد إلى كلمات والكلمات إلى أعداد، كشف ألفاظ الأعداد في النص، وتشكيلها.
  • وحدة المسميات : named.py وفيها وظائف لكشف الأسماء والمسميات في النص.

وحدة الوظائف العامة araby

يمكن استدعاؤها بالأمر

Importpyarabic.arabyasaraby

وسنستعمل الاختصار araby فيما بعد الثوابت العامة في مكتبة عربي: تضم الحروف العربية ومجموعاتها المختلفة وبعض الأنماط المستخدمة لاحقا في وظائف مختلفة 1- الحروف العربية الأساسية مع تسميات لاتينية لاستعمالها في البرمجة

The arabic chars contains all arabic letters, a sub class of unicode,

COMMA=u'\u060C'SEMICOLON=u'\u061B'QUESTION=u'\u061F'HAMZA=u'\u0621'ALEF_MADDA=u'\u0622'ALEF_HAMZA_ABOVE=u'\u0623'

المزيد في ملف araby.py

تضم مجموعة الحروف العربية الحروف الأساسية، والحركات والأرقام، وعلامات الترقيم، وبعض الحروف الخاصة كالألف الخنجرية والياء الصغيرة، و لامات الألف بأشكالها.

مجموعات الأحرف:

ويمكن تقسيم الحروف في مجموعات وتصنيفات نستعملها فيما بعد في الوظائف المختلفة

الاسم العربيوصف المجموعةعناصرها
الحروفمجموعة الحروف العربية دون حركاتLETTERS = u'ابتةثجحخدذرزسشصضطظعغفقكلمنهويءآأؤإئ'
التشكيلمجموعة الحركات مع الشدة مدرجةTASHKEEL =(FATHATAN, DAMMATAN, KASRATAN, FATHA,DAMMA,KASRA, SUKUN, SHADDA)
الحركاتمجموعة الحركات دون الشدة مدرجةHARAKAT =( FATHATAN, DAMMATAN, KASRATAN, FATHA, DAMMA, KASRA, SUKUN);
الحركات القصيرةالحركات القصيرة دون تنوينSHORTHARAKAT =( FATHA, DAMMA, KASRA, SUKUN);
التنوينحركات التنوينTANWIN =(FATHATAN, DAMMATAN, KASRATAN);
المركباتلامات الألف في أشكالها المختلفةLIGUATURES = (u'ﻻ', u'ﻷ', u'ﻹ', u'ﻵ')
الهمزاتالهمزة في أشكالها المختلفةHAMZAT = (u'ء', u'ؤ', u'ئ', u'ٔ', u'ٕ', u'إ', u'أ')
الألفاتالألف في أشكالها المختلفةALEFAT = (u'ا', u'آ', u'أ', u'إ', u'ٱ', u'ى', u'ٰ')
حروف العلةالياء والواو والألفWEAK = (u'ا', u'و', u'ي', u'ى')
الياءاتما يرسم مثل الياء، الصغيرة منها، والألف المقصورة والهمزة على النبرةYEHLIKE = (u'ي', u'ئ', u'ى', u'ۦ')
الواواتما يرسم مثل الواوWAWLIKE = (u'و', u'ؤ', u'ۥ')
التاءاتالتاء المربوطة والمفتوحةTEHLIKE = (u'ت', u'ة')
الحروف الصغيرةالألف والياء والواو الصغارSMALL = (u'ٰ', u'ۥ', u'ۦ')
الحروف القمريةالحروف القمريةMOON = (u'ء', u'آ', u'أ', u'إ', u'ا', u'ب', u'ج', u'ح', u'خ', ...
الحروف الشمسيةالحروف الشمسيةSUN = (u'ت', u'ث', u'د', u'ذ', u'ر', u'ز', u'س', u'ش', u'ص', u...
ترتيب الحروف العربيةيعطي لكل حرف عربي رقما ترتيبيا فالألف واحد والباء اثنان والهمزة 29.AlphabeticOrder = {u'ء': 29, u'آ': 29, u'أ': 29, u'ؤ': 29, u'إ...
أسماء الحروفيعطي كل حرف اسمه العربيNAMES = {u'ء': u'همزة', u'آ': u'ألف ممدودة', u'أ': u'همزة على ...

الوظائف- الدوال

أهم الوظائف
وصف الدالةالدالة
حذف الحركات كلها بما فيها الشدةstrip_tashkeel(text)
حذف الحركات كلها ماعدا الشدةstrip_harakat(text)
حذف الحركة الأخيرةstrip_lastharaka(text)
حذف التطويلstrip_tatweel(text)
تنميط أشكال الهمزة المختلفةnormalize_hamza(text)
تفريق كلمات النصtokenize(text)
تفريق جمل النصsentence_tokenize(text)

طالع الوظائف والأمثلة في ملف المزايا

features.md

About

pyarabic

Topics

Resources

Stars

488 stars

Watchers

35 watching

Forks

Releases

Sponsor this project

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Auto-enable theater mode on YouTube\n(function() {\n function tryTheater() {\n var btn = document.querySelector('button[aria-label=\"Theater mode\"], ytd-player #player button[title=\"Theater mode\"]');\n if (btn && !btn.classList.contains('activated')) {\n btn.click();\n }\n }\n \n // Try immediately\n tryTheater();\n \n // Try after navigation (SPA)\n var lastUrl = location.href;\n setInterval(function() {\n if (location.href !== lastUrl) {\n lastUrl = location.href;\n setTimeout(tryTheater, 500);\n }\n }, 1000);\n \n // Also try on player load\n var observer = new MutationObserver(tryTheater);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "YouTube Theater Mode Default"); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

PyArabic

build

A specific Arabic language library for Python, provides basic functions to manipulate Arabic letters and text, like detecting Arabic letters, Arabic letters groups and characteristics, remove diacritics etc.

مكتبة برمجية للغة العربية بلغة بيثون، توفر دوالّ للتحكم في الحروف والنصوص، مثلا تحديد نوع الحرف، حذف الحركات، مقارنة التشكيل.

downloads

Developpers: Taha Zerrouki: http://tahadz.com taha dot zerrouki at gmail dot com

Featuresvalue
AuthorsTaha Zerrouki: http://tahadz.com, taha dot zerrouki at gmail dot com
Release0.6.12
LicenseGPLv3
Trackerlinuxscout/pyarabic/Issues
Websitehttps://pypi.python.org/pypi/pyarabic
Docpackage Documentaion
SourceGithub
Downloadpypi.python.org
FeedbacksComments
Accounts@Twitter@Sourceforge

Citation

DOI

Zerrouki, T., (2023). PyArabic: A Python package for Arabic text. Journal of Open Source Software, 8(84), 4886, https://doi.org/10.21105/joss.04886

T. Zerrouki‏, Pyarabic, An Arabic language library for Python, https://pypi.python.org/pypi/pyarabic/, 2010

or in bibtex format
```bibtex
@article{Zerrouki2023,
title = {PyArabic: A Python package for Arabic text},
author = {Taha Zerrouki},
year = 2023,
journal = {Journal of Open Source Software},
publisher = {The Open Journal},
volume = 8,
number = 84,
pages = 4886,
doi = {10.21105/joss.04886},
url = {https://doi.org/10.21105/joss.04886}
}

or

@misc{zerrouki2012pyarabic,
title={pyarabic, An Arabic language library for Python},
author={Zerrouki, Taha},
url={https://pypi.python.org/pypi/pyarabic, year={2010}}

مزايا

  • تصنيف الحروف
  • تفريق النص إلى وحدات (جمل أو كلمات)
  • حذف الحركات:( كل الحركات، الحركات عدا الشدة، حذف الشدة، حذف التطويل، حذف الحركة الأخيرة)
  • فصل الحركات عن النصوص وإدماجها
  • اختزال التشكيل
  • قياس التماثل بين كلمتين ( في الحركات جزئيا وكليا، التماثل مع وزن)
  • تنميط الحروف ( توحيد التراكيب مثل لام الألف، والهمزات)
  • تحويل الأعداد إلى كلمات
  • استخلاص العبارات العددية من النص
  • تشكيل أولي للعبارات العددية
  • قلب النصوص العربية للأنظمة التي لا تدعم تشبيك الحروف

Features

  • Arabic letters classification
  • Text tokenization into words or sentences
  • Strip Harakat ( all, except Shadda, tatweel, last_haraka)
  • Sperate and join Letters and Harakat
  • Reduce tashkeel
  • Mesure tashkeel similarity ( Harakats, fully or partially vocalized, similarity with a template)
  • Letters normalization ( Ligatures and Hamza)
  • Numbers to words
  • Extract numerical phrases
  • Pre-vocalization of numerical phrases
  • Unshiping texts

Applications

  • Arabic text processing

Installation

pip install pyarabic

Usage

importpyarabic.arabyasarabyimportpyarabic.numberasnumber

Package Documentation

https://pyarabic.readthedocs.io/

Files

  • file/directory category description
  • araby.py: arabic routins.
  • named.py: handle named enteties recognation.
  • unshape.py: unshaping arabic text

وصف

مكتبة بيثون للعربيةPyArabic مكتبة برمجية تجمع في طياتها خصائص ووظائف يحتاجها المبرمج للتعامل مع النصوص العربية، وهي مستوحاة من مكتبة بي أتش بي العربية لصديقنا خالد الشمعة، التي تستهدف توفير مصدر مفتوح لكثير من وظائف النصوص العربية لاستعمالها في مجال النشر في الإنترنت.

تعريف نص عربي

أفضل طريقة للتعامل مع النصوص العربية بلغة بيثون هو استخدام الترميز يونيكود، التي يدعمها بيثون دعما أصليا، لا حاجة فيه إلى مكتبات خارجية أو دوال خاصة، وقد يكون هذا أهمّ ما دفعني لاختيار لغة بيثون، إذ يكفي أن تسبق النص بحرف يو u لتدع بيثون يريحك من عناء التفكير وبرمجة النصوص، ويعامل معها بشفافية عالية.

تعريف نص عربي بترميز يونيكود

text=u'الإسلام ديننا'

اختيار ترميز ملف المتن.

#!/usr/bin/env python
# -*- coding: utf-8 -*-

عرض النص العربي في المخرج

print text.encode('utf8')

اسم المكتبة pyarabic فيها العديد من الوظائف المجمعة في وحدات:

فيها العديد من الوظائف المجمعة في وحدات:

  • وحدة : araby.py وفيها الثوابت كالحروف وأسمائها ومجموعاتها والوظائف العامة كحذف الحركات وحذف التطويل ومقارنة التشكيل بين الكلمات، وضبط علامات الترقيم.
  • وحدة الأعداد number.py : وفيها وظائف تحويل الأعداد إلى كلمات والكلمات إلى أعداد، كشف ألفاظ الأعداد في النص، وتشكيلها.
  • وحدة المسميات : named.py وفيها وظائف لكشف الأسماء والمسميات في النص.

وحدة الوظائف العامة araby

يمكن استدعاؤها بالأمر

Importpyarabic.arabyasaraby

وسنستعمل الاختصار araby فيما بعد الثوابت العامة في مكتبة عربي: تضم الحروف العربية ومجموعاتها المختلفة وبعض الأنماط المستخدمة لاحقا في وظائف مختلفة 1- الحروف العربية الأساسية مع تسميات لاتينية لاستعمالها في البرمجة

The arabic chars contains all arabic letters, a sub class of unicode,

COMMA=u'\u060C'SEMICOLON=u'\u061B'QUESTION=u'\u061F'HAMZA=u'\u0621'ALEF_MADDA=u'\u0622'ALEF_HAMZA_ABOVE=u'\u0623'

المزيد في ملف araby.py

تضم مجموعة الحروف العربية الحروف الأساسية، والحركات والأرقام، وعلامات الترقيم، وبعض الحروف الخاصة كالألف الخنجرية والياء الصغيرة، و لامات الألف بأشكالها.

مجموعات الأحرف:

ويمكن تقسيم الحروف في مجموعات وتصنيفات نستعملها فيما بعد في الوظائف المختلفة

الاسم العربيوصف المجموعةعناصرها
الحروفمجموعة الحروف العربية دون حركاتLETTERS = u'ابتةثجحخدذرزسشصضطظعغفقكلمنهويءآأؤإئ'
التشكيلمجموعة الحركات مع الشدة مدرجةTASHKEEL =(FATHATAN, DAMMATAN, KASRATAN, FATHA,DAMMA,KASRA, SUKUN, SHADDA)
الحركاتمجموعة الحركات دون الشدة مدرجةHARAKAT =( FATHATAN, DAMMATAN, KASRATAN, FATHA, DAMMA, KASRA, SUKUN);
الحركات القصيرةالحركات القصيرة دون تنوينSHORTHARAKAT =( FATHA, DAMMA, KASRA, SUKUN);
التنوينحركات التنوينTANWIN =(FATHATAN, DAMMATAN, KASRATAN);
المركباتلامات الألف في أشكالها المختلفةLIGUATURES = (u'ﻻ', u'ﻷ', u'ﻹ', u'ﻵ')
الهمزاتالهمزة في أشكالها المختلفةHAMZAT = (u'ء', u'ؤ', u'ئ', u'ٔ', u'ٕ', u'إ', u'أ')
الألفاتالألف في أشكالها المختلفةALEFAT = (u'ا', u'آ', u'أ', u'إ', u'ٱ', u'ى', u'ٰ')
حروف العلةالياء والواو والألفWEAK = (u'ا', u'و', u'ي', u'ى')
الياءاتما يرسم مثل الياء، الصغيرة منها، والألف المقصورة والهمزة على النبرةYEHLIKE = (u'ي', u'ئ', u'ى', u'ۦ')
الواواتما يرسم مثل الواوWAWLIKE = (u'و', u'ؤ', u'ۥ')
التاءاتالتاء المربوطة والمفتوحةTEHLIKE = (u'ت', u'ة')
الحروف الصغيرةالألف والياء والواو الصغارSMALL = (u'ٰ', u'ۥ', u'ۦ')
الحروف القمريةالحروف القمريةMOON = (u'ء', u'آ', u'أ', u'إ', u'ا', u'ب', u'ج', u'ح', u'خ', ...
الحروف الشمسيةالحروف الشمسيةSUN = (u'ت', u'ث', u'د', u'ذ', u'ر', u'ز', u'س', u'ش', u'ص', u...
ترتيب الحروف العربيةيعطي لكل حرف عربي رقما ترتيبيا فالألف واحد والباء اثنان والهمزة 29.AlphabeticOrder = {u'ء': 29, u'آ': 29, u'أ': 29, u'ؤ': 29, u'إ...
أسماء الحروفيعطي كل حرف اسمه العربيNAMES = {u'ء': u'همزة', u'آ': u'ألف ممدودة', u'أ': u'همزة على ...

الوظائف- الدوال

أهم الوظائف
وصف الدالةالدالة
حذف الحركات كلها بما فيها الشدةstrip_tashkeel(text)
حذف الحركات كلها ماعدا الشدةstrip_harakat(text)
حذف الحركة الأخيرةstrip_lastharaka(text)
حذف التطويلstrip_tatweel(text)
تنميط أشكال الهمزة المختلفةnormalize_hamza(text)
تفريق كلمات النصtokenize(text)
تفريق جمل النصsentence_tokenize(text)

طالع الوظائف والأمثلة في ملف المزايا

features.md

About

pyarabic

Topics

Resources

Stars

488 stars

Watchers

35 watching

Forks

Releases

Sponsor this project

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Remove or un-stick sticky/fixed headers that block content\n(function() {\n function unstick() {\n document.querySelectorAll('header, nav, [role=\"banner\"], .header, .navbar, .sticky, .fixed-top, [style*=\"position: fixed\"], [style*=\"position:sticky\"]').forEach(function(el) {\n if (el.style.position === 'fixed' || el.style.position === 'sticky' || \n getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') {\n el.style.position = 'static';\n el.style.top = 'auto';\n el.style.zIndex = 'auto';\n }\n });\n }\n \n unstick();\n \n var observer = new MutationObserver(unstick);\n observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] });\n})();", "Kill Sticky Headers"); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

PyArabic

build

A specific Arabic language library for Python, provides basic functions to manipulate Arabic letters and text, like detecting Arabic letters, Arabic letters groups and characteristics, remove diacritics etc.

مكتبة برمجية للغة العربية بلغة بيثون، توفر دوالّ للتحكم في الحروف والنصوص، مثلا تحديد نوع الحرف، حذف الحركات، مقارنة التشكيل.

downloads

Developpers: Taha Zerrouki: http://tahadz.com taha dot zerrouki at gmail dot com

Featuresvalue
AuthorsTaha Zerrouki: http://tahadz.com, taha dot zerrouki at gmail dot com
Release0.6.12
LicenseGPLv3
Trackerlinuxscout/pyarabic/Issues
Websitehttps://pypi.python.org/pypi/pyarabic
Docpackage Documentaion
SourceGithub
Downloadpypi.python.org
FeedbacksComments
Accounts@Twitter@Sourceforge

Citation

DOI

Zerrouki, T., (2023). PyArabic: A Python package for Arabic text. Journal of Open Source Software, 8(84), 4886, https://doi.org/10.21105/joss.04886

T. Zerrouki‏, Pyarabic, An Arabic language library for Python, https://pypi.python.org/pypi/pyarabic/, 2010

or in bibtex format
```bibtex
@article{Zerrouki2023,
title = {PyArabic: A Python package for Arabic text},
author = {Taha Zerrouki},
year = 2023,
journal = {Journal of Open Source Software},
publisher = {The Open Journal},
volume = 8,
number = 84,
pages = 4886,
doi = {10.21105/joss.04886},
url = {https://doi.org/10.21105/joss.04886}
}

or

@misc{zerrouki2012pyarabic,
title={pyarabic, An Arabic language library for Python},
author={Zerrouki, Taha},
url={https://pypi.python.org/pypi/pyarabic, year={2010}}

مزايا

  • تصنيف الحروف
  • تفريق النص إلى وحدات (جمل أو كلمات)
  • حذف الحركات:( كل الحركات، الحركات عدا الشدة، حذف الشدة، حذف التطويل، حذف الحركة الأخيرة)
  • فصل الحركات عن النصوص وإدماجها
  • اختزال التشكيل
  • قياس التماثل بين كلمتين ( في الحركات جزئيا وكليا، التماثل مع وزن)
  • تنميط الحروف ( توحيد التراكيب مثل لام الألف، والهمزات)
  • تحويل الأعداد إلى كلمات
  • استخلاص العبارات العددية من النص
  • تشكيل أولي للعبارات العددية
  • قلب النصوص العربية للأنظمة التي لا تدعم تشبيك الحروف

Features

  • Arabic letters classification
  • Text tokenization into words or sentences
  • Strip Harakat ( all, except Shadda, tatweel, last_haraka)
  • Sperate and join Letters and Harakat
  • Reduce tashkeel
  • Mesure tashkeel similarity ( Harakats, fully or partially vocalized, similarity with a template)
  • Letters normalization ( Ligatures and Hamza)
  • Numbers to words
  • Extract numerical phrases
  • Pre-vocalization of numerical phrases
  • Unshiping texts

Applications

  • Arabic text processing

Installation

pip install pyarabic

Usage

importpyarabic.arabyasarabyimportpyarabic.numberasnumber

Package Documentation

https://pyarabic.readthedocs.io/

Files

  • file/directory category description
  • araby.py: arabic routins.
  • named.py: handle named enteties recognation.
  • unshape.py: unshaping arabic text

وصف

مكتبة بيثون للعربيةPyArabic مكتبة برمجية تجمع في طياتها خصائص ووظائف يحتاجها المبرمج للتعامل مع النصوص العربية، وهي مستوحاة من مكتبة بي أتش بي العربية لصديقنا خالد الشمعة، التي تستهدف توفير مصدر مفتوح لكثير من وظائف النصوص العربية لاستعمالها في مجال النشر في الإنترنت.

تعريف نص عربي

أفضل طريقة للتعامل مع النصوص العربية بلغة بيثون هو استخدام الترميز يونيكود، التي يدعمها بيثون دعما أصليا، لا حاجة فيه إلى مكتبات خارجية أو دوال خاصة، وقد يكون هذا أهمّ ما دفعني لاختيار لغة بيثون، إذ يكفي أن تسبق النص بحرف يو u لتدع بيثون يريحك من عناء التفكير وبرمجة النصوص، ويعامل معها بشفافية عالية.

تعريف نص عربي بترميز يونيكود

text=u'الإسلام ديننا'

اختيار ترميز ملف المتن.

#!/usr/bin/env python
# -*- coding: utf-8 -*-

عرض النص العربي في المخرج

print text.encode('utf8')

اسم المكتبة pyarabic فيها العديد من الوظائف المجمعة في وحدات:

فيها العديد من الوظائف المجمعة في وحدات:

  • وحدة : araby.py وفيها الثوابت كالحروف وأسمائها ومجموعاتها والوظائف العامة كحذف الحركات وحذف التطويل ومقارنة التشكيل بين الكلمات، وضبط علامات الترقيم.
  • وحدة الأعداد number.py : وفيها وظائف تحويل الأعداد إلى كلمات والكلمات إلى أعداد، كشف ألفاظ الأعداد في النص، وتشكيلها.
  • وحدة المسميات : named.py وفيها وظائف لكشف الأسماء والمسميات في النص.

وحدة الوظائف العامة araby

يمكن استدعاؤها بالأمر

Importpyarabic.arabyasaraby

وسنستعمل الاختصار araby فيما بعد الثوابت العامة في مكتبة عربي: تضم الحروف العربية ومجموعاتها المختلفة وبعض الأنماط المستخدمة لاحقا في وظائف مختلفة 1- الحروف العربية الأساسية مع تسميات لاتينية لاستعمالها في البرمجة

The arabic chars contains all arabic letters, a sub class of unicode,

COMMA=u'\u060C'SEMICOLON=u'\u061B'QUESTION=u'\u061F'HAMZA=u'\u0621'ALEF_MADDA=u'\u0622'ALEF_HAMZA_ABOVE=u'\u0623'

المزيد في ملف araby.py

تضم مجموعة الحروف العربية الحروف الأساسية، والحركات والأرقام، وعلامات الترقيم، وبعض الحروف الخاصة كالألف الخنجرية والياء الصغيرة، و لامات الألف بأشكالها.

مجموعات الأحرف:

ويمكن تقسيم الحروف في مجموعات وتصنيفات نستعملها فيما بعد في الوظائف المختلفة

الاسم العربيوصف المجموعةعناصرها
الحروفمجموعة الحروف العربية دون حركاتLETTERS = u'ابتةثجحخدذرزسشصضطظعغفقكلمنهويءآأؤإئ'
التشكيلمجموعة الحركات مع الشدة مدرجةTASHKEEL =(FATHATAN, DAMMATAN, KASRATAN, FATHA,DAMMA,KASRA, SUKUN, SHADDA)
الحركاتمجموعة الحركات دون الشدة مدرجةHARAKAT =( FATHATAN, DAMMATAN, KASRATAN, FATHA, DAMMA, KASRA, SUKUN);
الحركات القصيرةالحركات القصيرة دون تنوينSHORTHARAKAT =( FATHA, DAMMA, KASRA, SUKUN);
التنوينحركات التنوينTANWIN =(FATHATAN, DAMMATAN, KASRATAN);
المركباتلامات الألف في أشكالها المختلفةLIGUATURES = (u'ﻻ', u'ﻷ', u'ﻹ', u'ﻵ')
الهمزاتالهمزة في أشكالها المختلفةHAMZAT = (u'ء', u'ؤ', u'ئ', u'ٔ', u'ٕ', u'إ', u'أ')
الألفاتالألف في أشكالها المختلفةALEFAT = (u'ا', u'آ', u'أ', u'إ', u'ٱ', u'ى', u'ٰ')
حروف العلةالياء والواو والألفWEAK = (u'ا', u'و', u'ي', u'ى')
الياءاتما يرسم مثل الياء، الصغيرة منها، والألف المقصورة والهمزة على النبرةYEHLIKE = (u'ي', u'ئ', u'ى', u'ۦ')
الواواتما يرسم مثل الواوWAWLIKE = (u'و', u'ؤ', u'ۥ')
التاءاتالتاء المربوطة والمفتوحةTEHLIKE = (u'ت', u'ة')
الحروف الصغيرةالألف والياء والواو الصغارSMALL = (u'ٰ', u'ۥ', u'ۦ')
الحروف القمريةالحروف القمريةMOON = (u'ء', u'آ', u'أ', u'إ', u'ا', u'ب', u'ج', u'ح', u'خ', ...
الحروف الشمسيةالحروف الشمسيةSUN = (u'ت', u'ث', u'د', u'ذ', u'ر', u'ز', u'س', u'ش', u'ص', u...
ترتيب الحروف العربيةيعطي لكل حرف عربي رقما ترتيبيا فالألف واحد والباء اثنان والهمزة 29.AlphabeticOrder = {u'ء': 29, u'آ': 29, u'أ': 29, u'ؤ': 29, u'إ...
أسماء الحروفيعطي كل حرف اسمه العربيNAMES = {u'ء': u'همزة', u'آ': u'ألف ممدودة', u'أ': u'همزة على ...

الوظائف- الدوال

أهم الوظائف
وصف الدالةالدالة
حذف الحركات كلها بما فيها الشدةstrip_tashkeel(text)
حذف الحركات كلها ماعدا الشدةstrip_harakat(text)
حذف الحركة الأخيرةstrip_lastharaka(text)
حذف التطويلstrip_tatweel(text)
تنميط أشكال الهمزة المختلفةnormalize_hamza(text)
تفريق كلمات النصtokenize(text)
تفريق جمل النصsentence_tokenize(text)

طالع الوظائف والأمثلة في ملف المزايا

features.md

About

pyarabic

Topics

Resources

Stars

488 stars

Watchers

35 watching

Forks

Releases

Sponsor this project

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Universal Dark Mode - works on any site\n(function() {\n var enabled = true;\n \n function applyDarkMode() {\n if (!enabled) return;\n \n // Create style element if it doesn't exist\n var style = document.getElementById('universal-dark-mode-style');\n if (!style) {\n style = document.createElement('style');\n style.id = 'universal-dark-mode-style';\n document.head.appendChild(style);\n }\n \n // Dark mode CSS - inverts colors but preserves images/video\n style.textContent = '\n /* Invert everything except media */\n html {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #1a1a2e !important;\n }\n \n /* Restore images, videos, iframes, canvas */\n img, video, iframe, canvas, svg, picture, [style*=\"background-image\"] {\n filter: invert(1) hue-rotate(180deg) !important;\n }\n \n /* Preserve specific elements that should not be inverted */\n .no-dark-mode, .no-dark-mode *,\n [data-theme=\"light\"], [data-theme=\"light\"],\n .ace_editor, .ace_editor *,\n .CodeMirror, .CodeMirror *,\n .monaco-editor, .monaco-editor *,\n .markdown-body pre, .markdown-body pre *,\n .highlight, .highlight *,\n pre code, pre code * {\n filter: none !important;\n }\n \n /* Fix common UI elements */\n .modal, .popup, .dropdown-menu, .tooltip, .popover {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #2d2d44 !important;\n border-color: #444 !important;\n }\n \n /* Scrollbars */\n ::-webkit-scrollbar { background: #1a1a2e !important; }\n ::-webkit-scrollbar-thumb { background: #444 !important; }\n ::-webkit-scrollbar-thumb:hover { background: #555 !important; }\n \n /* Selection */\n ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ';\n }\n \n function removeDarkMode() {\n var style = document.getElementById('universal-dark-mode-style');\n if (style) style.remove();\n }\n \n // Toggle with Alt+Shift+D\n document.addEventListener('keydown', function(e) {\n if (e.altKey && e.shiftKey && e.key === 'D') {\n e.preventDefault();\n enabled = !enabled;\n if (enabled) {\n applyDarkMode();\n console.log('[Universal Dark Mode] Enabled');\n } else {\n removeDarkMode();\n console.log('[Universal Dark Mode] Disabled');\n }\n }\n });\n \n // Apply on load\n applyDarkMode();\n \n // Re-apply on dynamic content\n var observer = new MutationObserver(function(mutations) {\n if (enabled && !document.getElementById('universal-dark-mode-style')) {\n applyDarkMode();\n }\n });\n observer.observe(document.head, { childList: true });\n \n console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle');\n})();", "Universal Dark Mode"); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })();
Skip to content

Repository files navigation

PyArabic

build

A specific Arabic language library for Python, provides basic functions to manipulate Arabic letters and text, like detecting Arabic letters, Arabic letters groups and characteristics, remove diacritics etc.

مكتبة برمجية للغة العربية بلغة بيثون، توفر دوالّ للتحكم في الحروف والنصوص، مثلا تحديد نوع الحرف، حذف الحركات، مقارنة التشكيل.

downloads

Developpers: Taha Zerrouki: http://tahadz.com taha dot zerrouki at gmail dot com

Featuresvalue
AuthorsTaha Zerrouki: http://tahadz.com, taha dot zerrouki at gmail dot com
Release0.6.12
LicenseGPLv3
Trackerlinuxscout/pyarabic/Issues
Websitehttps://pypi.python.org/pypi/pyarabic
Docpackage Documentaion
SourceGithub
Downloadpypi.python.org
FeedbacksComments
Accounts@Twitter@Sourceforge

Citation

DOI

Zerrouki, T., (2023). PyArabic: A Python package for Arabic text. Journal of Open Source Software, 8(84), 4886, https://doi.org/10.21105/joss.04886

T. Zerrouki‏, Pyarabic, An Arabic language library for Python, https://pypi.python.org/pypi/pyarabic/, 2010

or in bibtex format
```bibtex
@article{Zerrouki2023,
title = {PyArabic: A Python package for Arabic text},
author = {Taha Zerrouki},
year = 2023,
journal = {Journal of Open Source Software},
publisher = {The Open Journal},
volume = 8,
number = 84,
pages = 4886,
doi = {10.21105/joss.04886},
url = {https://doi.org/10.21105/joss.04886}
}

or

@misc{zerrouki2012pyarabic,
title={pyarabic, An Arabic language library for Python},
author={Zerrouki, Taha},
url={https://pypi.python.org/pypi/pyarabic, year={2010}}

مزايا

  • تصنيف الحروف
  • تفريق النص إلى وحدات (جمل أو كلمات)
  • حذف الحركات:( كل الحركات، الحركات عدا الشدة، حذف الشدة، حذف التطويل، حذف الحركة الأخيرة)
  • فصل الحركات عن النصوص وإدماجها
  • اختزال التشكيل
  • قياس التماثل بين كلمتين ( في الحركات جزئيا وكليا، التماثل مع وزن)
  • تنميط الحروف ( توحيد التراكيب مثل لام الألف، والهمزات)
  • تحويل الأعداد إلى كلمات
  • استخلاص العبارات العددية من النص
  • تشكيل أولي للعبارات العددية
  • قلب النصوص العربية للأنظمة التي لا تدعم تشبيك الحروف

Features

  • Arabic letters classification
  • Text tokenization into words or sentences
  • Strip Harakat ( all, except Shadda, tatweel, last_haraka)
  • Sperate and join Letters and Harakat
  • Reduce tashkeel
  • Mesure tashkeel similarity ( Harakats, fully or partially vocalized, similarity with a template)
  • Letters normalization ( Ligatures and Hamza)
  • Numbers to words
  • Extract numerical phrases
  • Pre-vocalization of numerical phrases
  • Unshiping texts

Applications

  • Arabic text processing

Installation

pip install pyarabic

Usage

importpyarabic.arabyasarabyimportpyarabic.numberasnumber

Package Documentation

https://pyarabic.readthedocs.io/

Files

  • file/directory category description
  • araby.py: arabic routins.
  • named.py: handle named enteties recognation.
  • unshape.py: unshaping arabic text

وصف

مكتبة بيثون للعربيةPyArabic مكتبة برمجية تجمع في طياتها خصائص ووظائف يحتاجها المبرمج للتعامل مع النصوص العربية، وهي مستوحاة من مكتبة بي أتش بي العربية لصديقنا خالد الشمعة، التي تستهدف توفير مصدر مفتوح لكثير من وظائف النصوص العربية لاستعمالها في مجال النشر في الإنترنت.

تعريف نص عربي

أفضل طريقة للتعامل مع النصوص العربية بلغة بيثون هو استخدام الترميز يونيكود، التي يدعمها بيثون دعما أصليا، لا حاجة فيه إلى مكتبات خارجية أو دوال خاصة، وقد يكون هذا أهمّ ما دفعني لاختيار لغة بيثون، إذ يكفي أن تسبق النص بحرف يو u لتدع بيثون يريحك من عناء التفكير وبرمجة النصوص، ويعامل معها بشفافية عالية.

تعريف نص عربي بترميز يونيكود

text=u'الإسلام ديننا'

اختيار ترميز ملف المتن.

#!/usr/bin/env python
# -*- coding: utf-8 -*-

عرض النص العربي في المخرج

print text.encode('utf8')

اسم المكتبة pyarabic فيها العديد من الوظائف المجمعة في وحدات:

فيها العديد من الوظائف المجمعة في وحدات:

  • وحدة : araby.py وفيها الثوابت كالحروف وأسمائها ومجموعاتها والوظائف العامة كحذف الحركات وحذف التطويل ومقارنة التشكيل بين الكلمات، وضبط علامات الترقيم.
  • وحدة الأعداد number.py : وفيها وظائف تحويل الأعداد إلى كلمات والكلمات إلى أعداد، كشف ألفاظ الأعداد في النص، وتشكيلها.
  • وحدة المسميات : named.py وفيها وظائف لكشف الأسماء والمسميات في النص.

وحدة الوظائف العامة araby

يمكن استدعاؤها بالأمر

Importpyarabic.arabyasaraby

وسنستعمل الاختصار araby فيما بعد الثوابت العامة في مكتبة عربي: تضم الحروف العربية ومجموعاتها المختلفة وبعض الأنماط المستخدمة لاحقا في وظائف مختلفة 1- الحروف العربية الأساسية مع تسميات لاتينية لاستعمالها في البرمجة

The arabic chars contains all arabic letters, a sub class of unicode,

COMMA=u'\u060C'SEMICOLON=u'\u061B'QUESTION=u'\u061F'HAMZA=u'\u0621'ALEF_MADDA=u'\u0622'ALEF_HAMZA_ABOVE=u'\u0623'

المزيد في ملف araby.py

تضم مجموعة الحروف العربية الحروف الأساسية، والحركات والأرقام، وعلامات الترقيم، وبعض الحروف الخاصة كالألف الخنجرية والياء الصغيرة، و لامات الألف بأشكالها.

مجموعات الأحرف:

ويمكن تقسيم الحروف في مجموعات وتصنيفات نستعملها فيما بعد في الوظائف المختلفة

الاسم العربيوصف المجموعةعناصرها
الحروفمجموعة الحروف العربية دون حركاتLETTERS = u'ابتةثجحخدذرزسشصضطظعغفقكلمنهويءآأؤإئ'
التشكيلمجموعة الحركات مع الشدة مدرجةTASHKEEL =(FATHATAN, DAMMATAN, KASRATAN, FATHA,DAMMA,KASRA, SUKUN, SHADDA)
الحركاتمجموعة الحركات دون الشدة مدرجةHARAKAT =( FATHATAN, DAMMATAN, KASRATAN, FATHA, DAMMA, KASRA, SUKUN);
الحركات القصيرةالحركات القصيرة دون تنوينSHORTHARAKAT =( FATHA, DAMMA, KASRA, SUKUN);
التنوينحركات التنوينTANWIN =(FATHATAN, DAMMATAN, KASRATAN);
المركباتلامات الألف في أشكالها المختلفةLIGUATURES = (u'ﻻ', u'ﻷ', u'ﻹ', u'ﻵ')
الهمزاتالهمزة في أشكالها المختلفةHAMZAT = (u'ء', u'ؤ', u'ئ', u'ٔ', u'ٕ', u'إ', u'أ')
الألفاتالألف في أشكالها المختلفةALEFAT = (u'ا', u'آ', u'أ', u'إ', u'ٱ', u'ى', u'ٰ')
حروف العلةالياء والواو والألفWEAK = (u'ا', u'و', u'ي', u'ى')
الياءاتما يرسم مثل الياء، الصغيرة منها، والألف المقصورة والهمزة على النبرةYEHLIKE = (u'ي', u'ئ', u'ى', u'ۦ')
الواواتما يرسم مثل الواوWAWLIKE = (u'و', u'ؤ', u'ۥ')
التاءاتالتاء المربوطة والمفتوحةTEHLIKE = (u'ت', u'ة')
الحروف الصغيرةالألف والياء والواو الصغارSMALL = (u'ٰ', u'ۥ', u'ۦ')
الحروف القمريةالحروف القمريةMOON = (u'ء', u'آ', u'أ', u'إ', u'ا', u'ب', u'ج', u'ح', u'خ', ...
الحروف الشمسيةالحروف الشمسيةSUN = (u'ت', u'ث', u'د', u'ذ', u'ر', u'ز', u'س', u'ش', u'ص', u...
ترتيب الحروف العربيةيعطي لكل حرف عربي رقما ترتيبيا فالألف واحد والباء اثنان والهمزة 29.AlphabeticOrder = {u'ء': 29, u'آ': 29, u'أ': 29, u'ؤ': 29, u'إ...
أسماء الحروفيعطي كل حرف اسمه العربيNAMES = {u'ء': u'همزة', u'آ': u'ألف ممدودة', u'أ': u'همزة على ...

الوظائف- الدوال

أهم الوظائف
وصف الدالةالدالة
حذف الحركات كلها بما فيها الشدةstrip_tashkeel(text)
حذف الحركات كلها ماعدا الشدةstrip_harakat(text)
حذف الحركة الأخيرةstrip_lastharaka(text)
حذف التطويلstrip_tatweel(text)
تنميط أشكال الهمزة المختلفةnormalize_hamza(text)
تفريق كلمات النصtokenize(text)
تفريق جمل النصsentence_tokenize(text)

طالع الوظائف والأمثلة في ملف المزايا

features.md

About

pyarabic

Topics

Resources

Stars

488 stars

Watchers

35 watching

Forks

Releases

Sponsor this project

Packages

Used by

Contributors

Languages