Skip to content

Latest commit

 

History

History
141 lines (107 loc) · 5.66 KB

README.rst

File metadata and controls

141 lines (107 loc) · 5.66 KB

Sylajone: Arabic syntax Analyzer library

مكتبة سيلجون للتحليل النحوي

Sylajone: Arabic syntax Analyzer library

sylajone logo

sylajone logo

PyPI - Downloads

PyPI - Downloads

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

Features value
Authors Authors.md
Release 0.1
License GPL
Tracker linuxscout/sylajone/Issues
Source Github
Feedbacks Comments
Accounts [@Twitter](https://twitter.com/linuxscout))

Description

Sylajone: Arabic syntax Analyzer library

مزايا:

  • استخلاص العلاقات النحوية بين ثنائيات الكلمات : (فعل -فاعل، فعل-مفعول به، ناصب منصوب، جار مجرور)

install

pip install sylajone

Usage

import

pip install sylajone

Test

>>> import sylajone.anasyn as asn
>>> import pprint
>>> 
>>> text  =  u"يعبد الله منذ أن تطلع الشمس"
>>> result  =  []
>>> anasyn  =  asn.SyntaxAnalyzer()    
>>> result  =  anasyn.analyze_text(text)
>>> anasyn.pprint(result)
  • Extract semantic relation, display only found relations
>>> import pprint
>>> syn_result = anasyn.display_syn(result)
>>> pprint.pprint(syn_result)         
[[['اللهَ', 'يُعَبِّدَ', 'اللهُ', 'عَبَّدَ', 20],
  ['اللهَ', 'يُعَبِّدُ', 'اللهُ', 'عَبَّدَ', 20],
  ['اللهَ', 'يُعَبِّدْ', 'اللهُ', 'عَبَّدَ', 20],
  ['اللهَ', 'يَعْبُدَ', 'اللهُ', 'عَبَدَ', 20],
  ['اللهَ', 'يَعْبُدُ', 'اللهُ', 'عَبَدَ', 20],
  ['اللهَ', 'يَعْبُدْ', 'اللهُ', 'عَبَدَ', 20],
  ['اللهُ', 'يُعَبِّدَ', 'اللهُ', 'عَبَّدَ', 10],
...
  • Extract semantic relation, display all words and tags

    >>> syn_result = anasyn.display_syn(result, all=True)
    >>> pprint.pprint(syn_result)
    [('يعبد', 'B', []),
     ('الله',
      'I',
      [['اللهَ', 'يُعَبِّدَ', 'اللهُ', 'عَبَّدَ', 20],
       ['اللهَ', 'يُعَبِّدُ', 'اللهُ', 'عَبَّدَ', 20],
       ['اللهَ', 'يُعَبِّدْ', 'اللهُ', 'عَبَّدَ', 20],
       ['اللهَ', 'يَعْبُدَ', 'اللهُ', 'عَبَدَ', 20],
       ['اللهَ', 'يَعْبُدُ', 'اللهُ', 'عَبَدَ', 20],
       ['اللهَ', 'يَعْبُدْ', 'اللهُ', 'عَبَدَ', 20],
       ['اللهُ', 'يُعَبِّدَ', 'اللهُ', 'عَبَّدَ', 10],
    ...
    >>> 
  • convert to pandas ```python >>> # convert to pandas ... import pandas as pd >>> # flatten the result ... df = pd.DataFrame(anasyn.decode(result)) >>> print(df.head()) action affix affix_key forced_word_case ... unvocalized unvoriginal vocalized word 0 -ي-- -ي--|المضارع المنصوب:هو:y False ... يعبد عبد يُعَبِّدَ يعبد 1 -ي-- -ي--|المضارع المجهول المجزوم:هو:y False ... يعبد عبد يُعَبَّدْ يعبد 2 -ي-- -ي--|المضارع المجهول:هو:y False ... يعبد عبد يُعَبَّدُ يعبد 3 -ي-- -ي--|المضارع المعلوم:هو:y False ... يعبد عبد يُعَبِّدُ يعبد 4 -ي-- -ي--|المضارع المجزوم:هو:y False ... يعبد عبد يُعَبِّدْ يعبد

[5 rows x 50 columns] >>> df.to_csv("output/test.csv", encoding="utf8", sep=":raw-latex:'t'")

[requirement]

1. CodernityDB>=0.5.0   /  CodernityDB3>=0.6.0
2. libqutrub>=1.2.4.1
3. naftawayh>=0.4
4. pyarabic>=0.6.8
5. qalsadi>=0.3.5