Skip to content
Permalink
Browse files

version 1.0a

  • Loading branch information...
b00f committed Nov 5, 2015
0 parents commit 20472816d4c8fdb7ae6877281aa6e994d0d53f56
Showing with 22,634 additions and 0 deletions.
  1. +1 −0 .gitignore
  2. +675 −0 LICENSE
  3. +81 −0 README.md
  4. +1 −0 build/.gitignore
  5. +305 −0 src/affixes
  6. +2,231 −0 src/dic_delta
  7. +17,187 −0 src/dic_users
  8. +999 −0 src/lexicon
  9. +581 −0 src/lilak.py
  10. +73 −0 test/dotest.py
  11. +47 −0 test/text1
  12. +18 −0 test/text2
  13. +22 −0 test/text3
  14. +225 −0 test/text4
  15. +44 −0 test/text5
  16. +13 −0 test/text6
  17. +16 −0 test/text7
  18. +115 −0 test/text8
@@ -0,0 +1 @@
test/result.log
675 LICENSE

Large diffs are not rendered by default.

@@ -0,0 +1,81 @@
# lilak, A Persian Dictionary for Hunspell based on Persian Morphology

lilak is an open source project for generating Persian dictionary for hunspell spell checker.
This dictionary is based on Persian morphology.
In Persian language affixes can change the roll of a word in sentence.
This project helps hunspell to predict the best form of compound words based morphological rules.


##Content

lilak
|-- build : Build folder.
|
|-- src
| |-- lilak.py : Python script for building lilak dictionary
| |-- lexicon : Lexicon of Persian words with part-of-speech tags
| |-- affixes : Affix (prefix or suffix) rules
| |-- dic_users : List of words without POS tag.
| |-- dic_delta : List of foreign words in Persian.
| \-- verbs.htm : List of Persian verbs (unstemmed)
|
|-- test
| |-- dotest.py : Python script to run all test case files
| |-- text1 : 'Farsi(Persian) is Sugar', A short stpry by Mohammad-Ali Jamalzadeh
| |-- text2 : 'A Hekayat' By Saadi
| |-- text3 : 'A Ghazal' By Hafez
| |-- text4 : 'Yazdgerd Kingdom' By Ferdowsi
| |-- text5 : 'A Ghazal' By Muhammad Husayn Tabataba'i
| |-- text6 : 'Have a Safe Trip' A poem by Shafii Kadkani
| |-- text7 : 'Se Tar' A short story by Jalal Al-e-Ahmad
| \-- text8 : 'End of Shahname' By Mehdi Akhavan-Sales
|
|-- READ.me :
|-- LICENCE : License file
\-- RULES :

##Building Dictionary

To build dictionary, run lilak.py from 'src' folder:

python Lilak.py

You can find the compiled dictionary at the 'build' folder.

##Testing

Before running test make sure you have installed hunspell:

pip install hunspell

To test Lilak, run dotest.py from 'test' folder:

python dotest.py

You can find the result at 'result.log' file


How to contribute
-----------------
The best way that you can contribute on this project is collecting words with
part-of-speech tags. It will help me to make dictionary more useful and accurate.

Part-of-speech is important to build lilak.
It should classified in main types like: verb, noun, adjective, ...
Also some other tags will be useful. like tense of verb, singular or plural, ...
Check Lexicon for more information


About the Name
--------------
lilac in English came from French lilac "shrub of genus Syringa with mauve flowers"
from Spanish lilac, from Arabic lilak, from Persian lilak, variant of nilak "bluish"

As T. S. Eliot says:

April is the cruelest month, breeding
Lilacs out of the dead land, mixing
Memory and desire, stirring
Dull roots with spring rain.


@@ -0,0 +1 @@
*
@@ -0,0 +1,305 @@
##
## Lilak - The Aruma of Persian Sugar
## Copyright (C) 2015 Mostafa Sedaghat Joo (mostafa.sedaghat@gmail.com)
##
## This file is part of Lilak.
##
## Lilak is free software: you can redistribute it and/or modify
## it under the terms of the GNU General Public License as published by
## the Free Software Foundation, either version 3 of the License, or
## (at your option) any later version.
##
## Lilak is distributed in the hope that it will be useful,
## but WITHOUT ANY WARRANTY; without even the implied warranty of
## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
## GNU General Public License for more details.
##
## You should have received a copy of the GNU General Public License
## along with Lilak. If not, see <http://www.gnu.org/licenses/>.
##
##
## Lilak: https://github.com/m-o-s-t-a-f-a/lilak
## Version {0}, {1}
##

SET UTF-8
LANG fa_FA
FLAG long

TRY {2}
KEY ضصثقفغعهخحجچپ|شسیبلاتنمکگ|ظطزرذدئو
IGNORE ًٌٍَُِّـْ

NOSPLITSUGS

NOSUGGEST !!
COMPOUNDBEGIN UU
COMPOUNDEND WW
NEEDAFFIX AA
COMPOUNDFLAG CC
ONLYINCOMPOUND OO
COMPOUNDPERMITFLAG PP
COMPOUNDFORBIDFLAG FF
COMPOUNDMIN 1

## clitics

# استمراری ساز «می» با نیم فاصله
PFX e1 Y 1
PFX e1 0 می‌/FFUU .


# استمراری ساز «نمی» با نیم فاصله
PFX e2 Y 1
PFX e2 0 نمی‌/FFUU .


# استمراری ساز «همی» با نیم فاصله
PFX e3 Y 1
PFX e3 0 همی‌/FFUU .


# استمراری ساز «می» بدون نیم فاصله - چسبان
PFX e4 Y 1
PFX e4 0 می/FFUU .


# استمراری ساز «نمی» بدون نیم فاصله - چسبان
PFX e5 Y 1
PFX e5 0 نمی/FFUU .


# شناسه فعل در زمان حال یا مضارع
SFX sh Y 6
SFX sh 0 م/FFWW .
SFX sh 0 ی/FFWW .
SFX sh 0 د/FFWW .
SFX sh 0 یم/FFWW .
SFX sh 0 ید/FFWW .
SFX sh 0 ند/FFWW .


# شناسه فعل در زمان گذشته یا ماضی
SFX sg Y 5
SFX sg 0 م/FFWW .
SFX sg 0 ی/FFWW .
SFX sg 0 یم/FFWW .
SFX sg 0 ید/FFWW .
SFX sg 0 ند/FFWW .


# شناسه فعل در زمان گذشته زنده یا نقلی
SFX sn Y 6
SFX sn 0 ‌ام/FFWW .
SFX sn 0 ‌ای/FFWW .
SFX sn 0 ‌است/FFWW .
SFX sn 0 ‌ایم/FFWW .
SFX sn 0 ‌اید/FFWW .
SFX sn 0 ‌اند/FFWW .


# objective pronoun
# most common opjective pronons for verbs
# ضمیر مفعولی برای فعل‌های زمان حال
SFX zh Y 7
SFX zh 0 مت/FFWW .
SFX zh 0 مش/FFWW .
SFX zh 0 متان/FFWW .
SFX zh 0 مشان/FFWW .
SFX zh 0 دم/FFWW .
SFX zh 0 دت/FFWW .
SFX zh 0 دش/FFWW .


# ضمیر مفعولی برای فعل‌های زمان گذشته
SFX zg Y 5
SFX zg 0 مت/FFWW .
SFX zg 0 مش/FFWW .
SFX zg 0 متان/FFWW .
SFX zg 0 مشان/FFWW .
SFX zg 0 ش/FFWW .


# ضمیر ملکی متصل
SFX z1 N 6
SFX z1 0 م/WW .
SFX z1 0 ت/WW .
SFX z1 0 ش/WW .
SFX z1 0 مان/WW .
SFX z1 0 تان/WW .
SFX z1 0 شان/WW .


# ضمیر ملکی متصل
SFX z2 N 6
SFX z2 0 یم/FFWW .
SFX z2 0 یت/FFWW .
SFX z2 0 یش/FFWW .
SFX z2 0 یمان/FFWW .
SFX z2 0 یتان/FFWW .
SFX z2 0 یشان/FFWW .


# ضمیر ملکی منفصل
SFX z3 N 6
SFX z3 0 ‌ام/FFWW .
SFX z3 0 ‌ات/FFWW .
SFX z3 0 ‌اش/FFWW .
SFX z3 0 ‌مان/FFWW .
SFX z3 0 ‌تان/FFWW .
SFX z3 0 ‌شان/FFWW .


# ضمیر ملکی متصل در حالت جمع
SFX z4 N 6
SFX z4 0 هایم/FFWW .
SFX z4 0 هایت/FFWW .
SFX z4 0 هایش/FFWW .
SFX z4 0 هایمان/FFWW .
SFX z4 0 هایتان/FFWW .
SFX z4 0 هایشان/FFWW .

# ضمیر ملکی منفصل در حالت جمع
SFX z5 N 6
SFX z5 0 ‌هایم/FFWW .
SFX z5 0 ‌هایت/FFWW .
SFX z5 0 ‌هایش/FFWW .
SFX z5 0 ‌هایمان/FFWW .
SFX z5 0 ‌هایتان/FFWW .
SFX z5 0 ‌هایشان/FFWW .


# علامت جمع «ها» متصل
SFX j1 N 1
SFX j1 0 ها/FFWW .


# علامت جمع «ها» منفصل
SFX j2 N 1
SFX j2 0 ‌ها/FFWW .


# علامت جمع «ها» متصل
SFX j3 N 1
SFX j3 0 های/FFWW .


# علامت جمع «ها» منفصل
SFX j4 N 1
SFX j4 0 ‌های/FFWW .


# علامت جمع های نکره متصل
SFX j5 N 1
SFX j5 0 هایی/FFWW .


# علامت جمع های نکره منفصل
SFX j6 N 1
SFX j6 0 ‌هایی/FFWW .


# نشان همزه
SFX hz N 1
SFX hz 0 ‌ی/FFWW .


# یای نکره متصل
SFX y1 N 1
SFX y1 0 ی/FFWW .


# یای نکره منفصل
SFX y2 N 1
SFX y2 0 ‌ی/FFWW .


# یای نکره منفصل
SFX y3 N 1
SFX y3 0 ‌ای/FFWW .


# یای نکره متصل
SFX y4 N 1
SFX y4 0 یی/FFWW .


## صورت‌هاى متصل فعل «بودن» (ام، اى، است، ایم، اید، اند) در زمان حال
SFX b1 N 6
SFX b1 0 م/FFWW .
SFX b1 0 ی/FFWW .
SFX b1 0 ست/FFWW .
SFX b1 0 یم/FFWW .
SFX b1 0 ید/FFWW .
SFX b1 0 ند/FFWW .


## صورت‌هاى منفصل فعل «بودن» (ام، اى، است، ایم، اید، اند) در زمان حال
SFX b2 N 5
SFX b2 0 ‌ام/FFWW .
SFX b2 0 ‌ای/FFWW .
SFX b2 0 ‌ایم/FFWW .
SFX b2 0 ‌اید/FFWW .
SFX b2 0 ‌اند/FFWW .


## صورت‌هاى متصل فعل «بودن» (ام، اى، است، ایم، اید، اند) در زمان حال
SFX b3 N 6
SFX b3 0 یم/FFWW .
SFX b3 0 یی/FFWW .
SFX b3 0 ست/FFWW .
SFX b3 0 ییم/FFWW .
SFX b3 0 یید/FFWW .
SFX b3 0 یند/FFWW .

## صورت‌هاى متصل فعل «بودن» (ام، اى، است، ایم، اید، اند) در زمان حال
SFX b4 N 5
SFX b4 0 م/FFWW .
SFX b4 0 ی/FFWW .
SFX b4 0 یم/FFWW .
SFX b4 0 ید/FFWW .
SFX b4 0 ند/FFWW .

## صورت‌هاى منفصل فعل «بودن» (ام، اى) مفرد
SFX b5 N 2
SFX b5 0 ‌ام/FFWW .
SFX b5 0 ‌ای/FFWW .

## صورت‌هاى منفصل فعل «بودن» (ایم، اید، اند) جمع
SFX b6 N 3
SFX b6 0 ‌ایم/FFWW .
SFX b6 0 ‌اید/FFWW .
SFX b6 0 ‌اند/FFWW .


# atached Tar & Tarin
SFX t1 N 2
SFX t1 0 تر/j1j3y1 .
SFX t1 0 ترین/j2j4 .


# detached Tar & Tarin with zwnj
SFX t2 N 2
SFX t2 0 ‌تر/j1j3y1 .
SFX t2 0 ‌ترین/j2j4 .



REP 5
REP ي ی
REP ك ک
REP ة ه
REP ة ت
REP ‌ _

MAP 10
MAP ضص
MAP طظ
MAP ضظ
MAP فق
MAP غع
MAP چخحج
MAP بپ
MAP کگ
MAP ژزر
MAP اآ

0 comments on commit 2047281

Please sign in to comment.
You can’t perform that action at this time.