عربي. أفعال
مجموعة من الأدوات تعتمد على قواعد معرفية مدققة خاصة بتحليل الأفعال العربية وتصريفاتها المختلفة، تتضمن هذه الحُزمة أدوات خاصة في استخراج مصادر الكلمات والأفعال (مع تشكيل) وجذورها، وأداة خاصة في تصريف الأفعال المدخلة بشكل كامل (بغض النظر عن التصريف الحالي للمدخل) ، وأدوات خاصة في ايجاد التشكيلات المختلفة الصحيحة والمستعملة للأفعال وأداة خاصة في توقع وزن الفعل المدخل (بغض النظر عن التصريف الحالي له) وأداة خاصة في استخراج مرادفات الكلمات والأفعال. تدعم هذه الحُزمة تشكيل الناتج من التصريف وإيجاد الأوزان و المصادر.
هذه الأداة تأتي على شكل مكتبة برمجية مستقلة (تحتوي على قواعد بيانات معرفية مرافقة لها ومدمجة بداخلها).
- للحصول على جميع الامثلة في ملف برمجي واحد : جميع الأمثلة في ملف برمجي واحد
أولاً: أداة إستخراج أصل الكلمة (مع تشكيلها)
تعتمد هذه الأداة على تحليل الكلمة أو الفعل المدخل واستخراج أصله مع تشكيله.مثال ١: برنامج يستخرج المصدر لكلمة :
// الكلمة المدخلة مثال : يدرسون
String word = "يدرسون";
// بناء كائن من نوع مستخلص أصل الكلمة (أو ما اخذت منه)
LemmaExtractor le = new LemmaExtractor();
// إرجاع قائمة بالنتائج بعد مناداة العملية البرمجية الخاصة باسترجاع أصل الكلمة
ArrayList<String> res = le.getLemma(word);
// طباعة النتائج على الشاشة
System.out.println(res);
النتيجة:
[دَرَس, دَرَّس]
ثانياً: أداة إستخراج الجذور
تعمل هذه الأداة على تحليل الكلمة لإستخراج جذرها.مثال ٢: برنامج يعمل على إستخراج جذر كلمة
// الكلمة المدخلة مثال : البطولية
String word = "البطولية";
// بناء كائن من نوع مستخرج الجذور
StemmerExtractor sm = new StemmerExtractor();
//إستخراج جذر الكلمة
ArrayList<String>res = sm.getStem(word);
// طباعة الجذر
System.out.println(res);
النتيجة:
بطل
ثالثاً: أداة التحليل الصرفي
تعمل هذه الأداة على ايجاد جدول التحليل الصرفي للفعل المدخل بغض النظر عن التصريف الذي يتم إدخال الفعل به ، تعيد الأداة التصريف مهيكل بشكل يستطيع أي مبرج أن يستخرج أي جزئية به، مع توفير ايضا عمليات برمجية لإستخراج اي جزئية من التصريف .مثال ٣: قطعة برنامج تعمل على إرجاع معلومات مهيكلة عن تصريف مُدخل
// الفعل المُدخل للتحليل
String input_verb = "سألتمونيها";
// بناء كائن من نظام التحليل الصرفي
VerbsConjugation vc = new VerbsConjugation();
// استخراج التحليل الصرفية وفي حال كان هنالك اكثر من احتمالية للفعل فتعود جميع الاحتمالات
ArrayList<Verb> verbs = vc.getVerbConj(input_verb);
// استخراج معلومات الفعل مهيكلة
JSONObject structured_result = verbs.get(0).generateJSONFormat();
// تحويل المعلومات المهيكلة الى نص لتسهيل عملية طباعته
String structured_result_txt = StringEscapeUtils.unescapeJava(structured_result.toString());
// طباعة النتائج
System.out.println(structured_result_txt);
النتيجة:
{"present_tense":{"howa":"يَسْأَلُ","hum":"يَسْأَلُونَ","hunna":"يَسْأَلْنَ","huma_female":"تَسْأَلَانِ","antoma_female":"تَسْأَلَانِ","antoma_male":"تَسْأَلَانِ","nahno":"نَسْأَلُ","anti":"تَسْأَلِينَ","antom":"تَسْأَلُونَ","antona":"تَسْأَلْنَ","ana":"أَسْأَلُ","heya":"تَسْأَلُ","anta":"تَسْأَلُ","arabic_name":"الفعل المضارع","huma_male":"يَسْأَلَانِ"},
"passive_present_tense_jussive":{"howa":"يُسْأَلْ","hum":"يُسْأَلُوا","hunna":"يُسْأَلْنَ","huma_female":"تُسْأَلَا","antoma_female":"تُسْأَلَا","antoma_male":"تُسْأَلَا","nahno":"نُسْأَلْ","anti":"تُسْأَلِي","antom":"تُسْأَلُوا","antona":"تُسْأَلْنَ","ana":"أُسْأَلْ","heya":"تُسْأَلْ","anta":"تُسْأَلْ","arabic_name":"الفعل المضارع المجزوم المبني للمجهول","huma_male":"يُسْأَلَا"},
"src":{"arabic_name":"المصدر","value":"سُؤَال/مَسْأَلَة/تَسْآل"},
"verb":"سَأَل",
"passive_past_tense":{"howa":"سُئِلَ","hum":"سُئِلُوا","hunna":"سُئِلْنَ","huma_female":"سُئِلَتَا","antoma_female":"سُئِلْتُمَا","antoma_male":"سُئِلْتُمَا","nahno":"سُئِلْنَا","anti":"سُئِلْتِ","antom":"سُئِلْتُم","antona":"سُئِلْتُنَّ","ana":"سُئِلْتُ","heya":"سُئِلَتْ","anta":"سُئِلْتَ","arabic_name":"الفعل الماضي المبني للمجهول","huma_male":"سُئِلَا"},
"passive_present_tense_confirmed_heavy":{"howa":"يُسْأَلَنَّ","hum":"يُسْأَلُنَّ","hunna":"يُسْأَلْنَانِّ","huma_female":"تُسْأَلَانِّ","antoma_female":"تُسْأَلَانِّ","antoma_male":"تُسْأَلَانِّ","nahno":"نُسْأَلَنَّ","anti":"تُسْأَلِنَّ","antom":"تُسْأَلُنَّ","antona":"تُسْأَلْنَانِّ","ana":"أُسْأَلَنَّ","heya":"تُسْأَلَنَّ","anta":"تُسْأَلَنَّ","arabic_name":"الفعل المضارع المؤكد الثقيل المبني للمجهول","huma_male":"يُسْأَلَانِّ"},
"present_tense_jussive":{"howa":"يَسْأَلْ","hum":"يَسْأَلُوا","hunna":"يَسْأَلْنَ","huma_female":"تَسْأَلَا","antoma_female":"تَسْأَلَا","antoma_male":"تَسْأَلَا","nahno":"نَسْأَلْ","anti":"تَسْأَلِي","antom":"تَسْأَلُوا","antona":"تَسْأَلْنَ","ana":"أَسْأَلْ","heya":"تَسْأَلْ","anta":"تَسْأَلْ","arabic_name":"الفعل المضارع المجزوم","huma_male":"يَسْأَلَا"},
"passive_present_tense_indicative":{"howa":"يُسْأَلَ","hum":"يُسْأَلُوا","hunna":"يُسْأَلْنَ","huma_female":"تُسْأَلَا","antoma_female":"تُسْأَلَا","antoma_male":"تُسْأَلَا","nahno":"نُسْأَلَ","anti":"تُسْأَلِي","antom":"تُسْأَلُوا","antona":"تُسْأَلْنَ","ana":"أُسْأَلَ","heya":"تُسْأَلَ","anta":"تُسْأَلَ","arabic_name":"الفعل المضارع المنصوب المبني للمجهول","huma_male":"يُسْأَلَا"},
"passive_present_tense":{"howa":"يُسْأَلُ","hum":"يُسْأَلُونَ","hunna":"يُسْأَلْنَ","huma_female":"تُسْأَلَانِ","antoma_female":"تُسْأَلَانِ","antoma_male":"تُسْأَلَانِ","nahno":"نُسْأَلُ","anti":"تُسْأَلِينَ","antom":"تُسْأَلُونَ","antona":"تُسْأَلْنَ","ana":"أُسْأَلُ","heya":"تُسْأَلُ","anta":"تُسْأَلُ","arabic_name":"الفعل المضارع المبني للمجهول","huma_male":"يُسْأَلَانِ"},
"imperative_tense":{"howa":"","hum":"","hunna":"","huma_female":"","antoma_female":"اِسْأَلَا","antoma_male":"اِسْأَلَا","nahno":"","anti":"اِسْأَلِي","antom":"اِسْأَلُوا","antona":"اِسْأَلْنَ","ana":"","heya":"","anta":"اِسْأَلْ","arabic_name":"فعل الأمر","huma_male":""},
"imperative_tense_confirmed":{"howa":"","hum":"","hunna":"","huma_female":"","antoma_female":"اِسْأَلَانِّ","antoma_male":"اِسْأَلَانِّ","nahno":"","anti":"اِسْأَلِنَّ","antom":"اِسْأَلُنَّ","antona":"اِسْأَلْنَانِّ","ana":"","heya":"","anta":"اِسْأَلَنَّ","arabic_name":"فعل الأمر المؤكد","huma_male":""},
"past_tense":{"howa":"سَأَلَ","hum":"سَأَلُوا","hunna":"سَأَلْنَ","huma_female":"سَأَلَتَا","antoma_female":"سَأَلْتُمَا","antoma_male":"سَأَلْتُمَا","nahno":"سَأَلْنَا","anti":"سَأَلْتِ","antom":"سَأَلْتُم","antona":"سَأَلْتُنَّ","ana":"سَأَلْتُ","heya":"سَأَلَتْ","anta":"سَأَلْتَ","arabic_name":"الفعل الماضي","huma_male":"سَأَلَا"},
"participles_passive":{"arabic_name":"اسم المفعول","value":"مَسْؤُول"},
"present_tense_confirmed_heavy":{"howa":"يَسْأَلَنَّ","hum":"يَسْأَلُنَّ","hunna":"يَسْأَلْنَانِّ","huma_female":"تَسْأَلَانِّ","antoma_female":"تَسْأَلَانِّ","antoma_male":"تَسْأَلَانِّ","nahno":"نَسْأَلَنَّ","anti":"تَسْأَلِنَّ","antom":"تَسْأَلُنَّ","antona":"تَسْأَلْنَانِّ","ana":"أَسْأَلَنَّ","heya":"تَسْأَلَنَّ","anta":"تَسْأَلَنَّ","arabic_name":"الفعل المضارع المؤكد الثقيل","huma_male":"يَسْأَلَانِّ"},
"participles_active":{"arabic_name":"اسم الفاعل","value":"سَائِل"},
"present_tense_indicative":{"howa":"يَسْأَلَ","hum":"يَسْأَلُوا","hunna":"يَسْأَلْنَ","huma_female":"تَسْأَلَا","antoma_female":"تَسْأَلَا","antoma_male":"تَسْأَلَا","nahno":"نَسْأَلَ","anti":"تَسْأَلِي","antom":"تَسْأَلُوا","antona":"تَسْأَلْنَ","ana":"أَسْأَلَ","heya":"تَسْأَلَ","anta":"تَسْأَلَ","arabic_name":"الفعل المضارع المنصوب","huma_male":"يَسْأَلَا"},"base":{"arabic_name":"الأساس","value":"سَأَلَ"}}
// الفعل المُدخل للتحليل
String input_verb = "يقرأون";
// بناء كائن من نظام التحليل الصرفي
VerbsConjugation vc = new VerbsConjugation();
// استخراج التحليل الصرفية وفي حال كان هنالك اكثر من احتمالية للفعل فتعود جميع الاحتمالات
ArrayList<Verb> verbs = vc.getVerbConj(input_verb);
// استخرج اسم الفاعل واطبعه على الشاشة
String participles_active = verbs.get(0).getParticiples_active();
System.out.println("اسم الفاعل: "+participles_active);
// استخرج اسم المفعول واطبعه على الشاشة
String participles_passive = verbs.get(0).getParticiples_passive();
System.out.println("اسم المفعول: "+participles_passive);
النتيجة:
اسم الفاعل: قَارِئ
اسم المفعول: مَقْرُوء
// الفعل المُدخل للتحليل
String input_verb = "يبتكرون";
// بناء كائن من نظام التحليل الصرفي
VerbsConjugation vc = new VerbsConjugation();
// استخراج التحليل الصرفية وفي حال كان هنالك اكثر من احتمالية للفعل فتعود جميع الاحتمالات
ArrayList<Verb>verbs = vc.getVerbConj(input_verb);
// ارجاع الماضي مع الضمير هو للفعل المُدخل
String past_tense_howa = verbs.get(0).getPast_active(Pronouns.howa);
System.out.println("الماضي مع الضمير هو : "+past_tense_howa);
// ارجاع المضارع مع الضمير هو للفعل المُدخل
String present_tense_howa = verbs.get(0).getPresent_tense(Pronouns.howa);
System.out.println("المضارع مع الضمير هو :"+present_tense_howa);
النتيجة:
الماضي مع الضمير هو : اِبْتَكَرَ
المضارع مع الضمير هو: يَبْتَكِرُ
// الفعل المُدخل للتحليل
String input_verb = "تسديد";
// بناء كائن من نظام التحليل الصرفي
VerbsConjugation vc = new VerbsConjugation();
// استخراج التحليل الصرفية وفي حال كان هنالك اكثر من احتمالية للفعل فتعود جميع الاحتمالات
ArrayList<Verb>verbs = vc.getVerbConj(input_verb);
// ارجاع الماضي مع الضمير أنت للفعل المُدخل
String passive_present_ind = verbs.get(0).getPassive_present_tense_indicative(Pronouns.anti);
System.out.println("المضارع المنصوب المبني للمجهول مع الضمير أنتِ: "+passive_present_ind);
// ارجاع الأمر مع الضمير أنتِ للفعل المُدخل
String imperative_tense = verbs.get(0).getImperative_tense(Pronouns.anti);
System.out.println("فعل الأمر مع الضمير أنتِ: "+imperative_tense);
النتيجة:
المضارع المنصوب المبني للمجهول مع الضمير أنتِ: تُسَدَّدِي
فعل الأمر مع الضمير أنتِ: سَدِّدِي
رابعاً: أداة استخراج التشكيلات
تعمل هذه الأداة على إيجاد التشكيلات الصحيحة والمستعملة المختلفة للفعل (بغض النظر عن التصريف الحالي له).مثال ٧: قطعة برنامج تبني التشكيلات المختلفة للفعل:
// الفعل المُدخل للتشكيل
String verb = "يجمعون";
//بناء كائن من فئة التشكيلات المحتملة
PossibleVerbTashkeel pt = new PossibleVerbTashkeel();
// ايجاد قائمة التشكيلات
ArrayList<String> res = pt.getPossibleVerbTashkeel(verb);
// طباعة النتيجة
System.out.println(res);
النتيجة:
[يَجْمَعُونَ, يُجْمَعُونَ, يُجَمِّعُونَ, يُجَمَّعُونَ, يُجْمِعُونَ]
خامساً: أداة استخراج وزن الفعل (الميزان الصرفي)
تعمل الأداة على استخراج الوزن للكلمة المدخلة مع التشكيلات المختلفةمثال ٨: قطعة برنامج لإستخراج الوزن الصرفي:
// الفعل المُدخل لإيجاد الوزن الصرفي
String word = "استنباط";
// بناء كائن من فئة الميزان الصرفي
PossibleWazan wa = new PossibleWazan();
// ايجاد الوزن بدون ومع تشكيل
ArrayList<String> res = wa.getPossibleVerbWazen(word);
// طباعة النتيجة
System.out.println(res);
النتيجة:
[اِسْتِفْعَال, استفعال]
سادساً: أداة ايجاد كلمات ذات علاقة ومرادفات للكلمة المُدخلة
تعمل الأداة على ايجاد الكلمات ذات العلاقة والمرادفات للكلمة المُدخلة وتعيد قائمة بالنتائج.مثال ٩: قطعة برنامج لإيجاد الكلمات ذات العلاقة:
// الكلمة المُدخلة
String word = "حكايات";
// بناء كائن من فئة ايجاد المرادفات والكلمات ذات العلاقة
SynonymsExtractor sy = new SynonymsExtractor();
// ايجاد النتائج وتخزينها في قائمة
ArrayList<String> res = sy.getSynonyms(word);
// طباعة النتائج
System.out.println(res);
النتيجة:
[حكايات, قَصّ, رواية, قصص, نَقَل عن, أثَر, حَوّل, أوْصَل إلى, رَوَى, تَنَاقَل, قصص اخباريه, حَكَى, قصة, أسطورة, سَرَد, خبر, نَقَل, سَلْسَل, تقارير]