mghareeb32 commited on
Commit
e7488cb
·
1 Parent(s): 4d1ae57

Moved things around.

Browse files
This view is limited to 50 files because it contains too many changes.   See raw diff
Files changed (50) hide show
  1. app.json +811 -0
  2. app.py +27 -46
  3. preproc.py +39 -0
  4. {wis2lines → wis_gemini}/M022410 +0 -0
  5. {wis2lines → wis_gemini}/M022412 +0 -0
  6. {wis2lines → wis_gemini}/M022413 +0 -0
  7. {wis2lines → wis_gemini}/M022414 +0 -0
  8. {wis2lines → wis_gemini}/M022415 +0 -0
  9. {wis2lines → wis_gemini}/M022416 +0 -0
  10. {wis2lines → wis_gemini}/M022417 +0 -0
  11. {wis2lines → wis_gemini}/M022421 +0 -0
  12. {wis2lines → wis_gemini}/M022422 +0 -0
  13. {wis2lines → wis_gemini}/M022423 +0 -0
  14. {wis2lines → wis_gemini}/M022426 +0 -0
  15. {wis2lines → wis_gemini}/M022428 +0 -0
  16. {wis2lines → wis_gemini}/M022431 +0 -0
  17. {wis2lines → wis_gemini}/M022432 +0 -0
  18. {wis2lines → wis_gemini}/M022436 +0 -0
  19. {wis2lines → wis_gemini}/M022437 +0 -0
  20. {wis2lines → wis_gemini}/M022438 +0 -0
  21. {wis2lines → wis_gemini}/M022439 +0 -0
  22. {wis2lines → wis_gemini}/M022440 +0 -0
  23. {wis2lines → wis_gemini}/M022442 +0 -0
  24. {wis2lines → wis_gemini}/M022443 +0 -0
  25. {wis2lines → wis_gemini}/M022444 +0 -0
  26. {wis2lines → wis_gemini}/M022445 +0 -0
  27. {wis2lines → wis_gemini}/M022446 +0 -0
  28. {wis2lines → wis_gemini}/M022448 +0 -0
  29. {wis2lines → wis_gemini}/M022449 +0 -0
  30. {wis2lines → wis_gemini}/M022452 +0 -0
  31. {wis2lines → wis_gemini}/M022454 +0 -0
  32. {wis2lines → wis_gemini}/M022456 +0 -0
  33. {wis2lines → wis_gemini}/M022457 +0 -0
  34. {wis2lines → wis_gemini}/M022458 +0 -0
  35. {wis2lines → wis_gemini}/M022459 +0 -0
  36. {wis2lines → wis_gemini}/M022460 +0 -0
  37. {wis2lines → wis_gemini}/M022463 +0 -0
  38. {wis2lines → wis_gemini}/M022467 +0 -0
  39. {wis2lines → wis_gemini}/M022468 +0 -0
  40. {wis2lines → wis_gemini}/M022470 +0 -0
  41. {wis2lines → wis_gemini}/M022471 +0 -0
  42. {wis2lines → wis_gemini}/M022472 +0 -0
  43. {wis2lines → wis_gemini}/M022473 +0 -0
  44. {wis2lines → wis_gemini}/M022474 +0 -0
  45. {wis2lines → wis_gemini}/M022475 +0 -0
  46. {wis2lines → wis_gemini}/M022478 +0 -0
  47. {wis2lines → wis_gemini}/M022481 +0 -0
  48. {wis2lines → wis_gemini}/M022482 +0 -0
  49. {wis2lines → wis_gemini}/M022483 +0 -0
  50. {wis2lines → wis_gemini}/M022484 +0 -0
app.json ADDED
@@ -0,0 +1,811 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "('M022549', 0)": [
3
+ "هَل غادَرَ الشُعَراءُ مِن مُتَرَدَّمِ أَم هَل عَرَفتَ الدارَ بَعدَ تَوَهُّمِ",
4
+ [
5
+ "الطريق إلى الحقيقة صعب.",
6
+ "لا يُمكن الوصول إلى الحقيقة دون صعوبة وتوهّم.",
7
+ "التجربة تُعلّم.",
8
+ "الضياع يُمهّد للمعرفة."
9
+ ]
10
+ ],
11
+ "('M022549', 1)": [
12
+ "يا دارَ عَبلَةَ بِالجَواءِ تَكَلَّمي وَعَمي صَباحاً دارَ عَبلَةَ وَاِسلَمي",
13
+ [
14
+ "الحنين للأوطان",
15
+ "الشوق للماضي",
16
+ "القلوب تُحِبّ مُستقرّها",
17
+ "الوطن مُحَبب",
18
+ "العيش في الوطن جنة",
19
+ "الحب للماضي",
20
+ "لا للغربة"
21
+ ]
22
+ ],
23
+ "('M022549', 2)": [
24
+ "فَوَقَفتُ فيها ناقَتي وَكَأَنَّه فَدَنٌ لِأَقضِيَ حاجَةَ المُتَلَوِّمِ",
25
+ [
26
+ "الرحلة مُرهقة",
27
+ "التعب يحُقُّ له التعويض",
28
+ "صعوبة أداء الحاجة",
29
+ "الوصول إلى المراد"
30
+ ]
31
+ ],
32
+ "('M022549', 3)": [
33
+ "وَتَحُلُّ عَبلَةُ بِالجَواءِ وَأَهلُن بِالحَزنِ فَالصَمّانِ فَالمُتَثَلَّمِ",
34
+ [
35
+ "الفِراق حزن",
36
+ "الْحُبّ يُغْنِمُ",
37
+ "الحياة مُقَدّرة",
38
+ "فقد عزيز حزن",
39
+ "الفرقة مصيبة"
40
+ ]
41
+ ],
42
+ "('M022549', 4)": [
43
+ "حُيِّيتَ مِن طَلَلٍ تَقادَمَ عَهدُهُ أَقوى وَأَقفَرَ بَعدَ أُمِّ الهَيثَمِ",
44
+ [
45
+ "الزمن يُبدل الأشياء",
46
+ "كل شيء فاني",
47
+ "الأطلال شاهد على الحضارات",
48
+ "الموت يَحصد كل شيء",
49
+ "لا دوم للحياة",
50
+ "لا دوم للمكان"
51
+ ]
52
+ ],
53
+ "('M022549', 5)": [
54
+ "حَلَّت بِأَرضِ الزائِرينَ فَأَصبَحَت عَسِراً عَلَيَّ طِلابُكِ اِبنَةَ مَخرَمِ",
55
+ [
56
+ "الحياة صعبة",
57
+ "الطّريق إلى النّجاح شاقّ",
58
+ "التّردد يُفقِدُ الفُرصَ",
59
+ "حاول تُفلِح",
60
+ "لا تَخْتَشِ مِن الزّحامِ"
61
+ ]
62
+ ],
63
+ "('M022549', 6)": [
64
+ "عُلِّقتُها عَرَضاً وَأَقتُلُ قَومَه زَعماً لَعَمرُ أَبيكَ لَيسَ بِمَزعَمِ",
65
+ [
66
+ "الانتقام لا يحل المشاكل.",
67
+ "الغضب عدو الإنسان.",
68
+ "التهور يؤدي إلى الخراب.",
69
+ "التصالح أفضل من الانتقام.",
70
+ "التفكير قبل التصرف ضروري."
71
+ ]
72
+ ],
73
+ "('M022549', 7)": [
74
+ "وَلَقَد نَزَلتِ فَلا تَظُنّي غَيرَهُ مِنّي بِمَنزِلَةِ المُحَبِّ المُكرَمِ",
75
+ [
76
+ "الحبُّ أفعال",
77
+ "الوفاءُ بالعمل",
78
+ "الكلامُ لا يُثبِتُ الحب",
79
+ "الإخلاصُ يُكشِفُ عن الحُب",
80
+ "صدقُ المشاعر يُحسّ"
81
+ ]
82
+ ],
83
+ "('M022549', 8)": [
84
+ "كَيفَ المَزارُ وَقَد تَرَبَّعَ أَهلُه بِعُنَيزَتَينِ وَأَهلُنا بِالغَيلَمِ",
85
+ [
86
+ "الفقر حرف",
87
+ "التباين في الحياة طبيعي",
88
+ "الحنين للوطن قوي",
89
+ "الظروف قد تفرق بين الناس"
90
+ ]
91
+ ],
92
+ "('M022549', 9)": [
93
+ "إِن كُنتِ أَزمَعتِ الفِراقَ فَإِنَّم زُمَّت رِكابُكُمُ بِلَيلٍ مُظلِمِ",
94
+ [
95
+ "الفراق مُؤلم",
96
+ "ليل الفراق مظلم",
97
+ "الرحيل مُؤسف",
98
+ "الرحيل في الظلام",
99
+ "رحيل صعب"
100
+ ]
101
+ ],
102
+ "('M022549', 10)": [
103
+ "ما راعَني إِلّا حَمولَةُ أَهلِه وَسطَ الدِيارِ تَسَفُّ حَبَّ الخِمخِمِ",
104
+ [
105
+ "الغنى منتشرة في البيت",
106
+ "الضيافة الكريمة من صفاتِ الأنبياء",
107
+ "المال لا يشتري السعادة",
108
+ "أغنى الأغنياء من يُقدمُ خيرَه للناس"
109
+ ]
110
+ ],
111
+ "('M022549', 11)": [
112
+ "فيها اِثنَتانِ وَأَربَعونَ حَلوبَةً سوداً كَخافِيَةِ الغُرابِ الأَسحَمِ",
113
+ [
114
+ "الثراءُ دليلُ الرخاءِ",
115
+ "الوفرةُ تُدلُّ على السعادةِ",
116
+ "الجمالُ جمالٌ في كلّ شيء",
117
+ "الغُرابُ الأسودُ جمَالٌ في حدّ ذاته"
118
+ ]
119
+ ],
120
+ "('M022549', 12)": [
121
+ "إِذ تَستَبيكَ بِذي غُروبٍ واضِحٍ عَذبٍ مُقَبَّلُهُ لَذيذِ المَطعَمِ",
122
+ [
123
+ "الماء حياة",
124
+ "جمال الطبيعة",
125
+ "الماء عذب",
126
+ "الماء طعام",
127
+ "الماء هدية",
128
+ "الماء نعمة",
129
+ "الماء جميل",
130
+ "الماء يسر القلب"
131
+ ]
132
+ ],
133
+ "('M022549', 13)": [
134
+ "وَكَأَنَّ فارَةَ تاجِرٍ بِقَسيمَةٍ سَبَقَت عَوارِضَها إِلَيكَ مِنَ الفَمِ",
135
+ [
136
+ "الجمال مُقارن",
137
+ "الوصف يَزيد الجمال",
138
+ "اللفظ يُضفي جمالًا",
139
+ "الطبيعة مُلهمة",
140
+ "القسمة إحسان",
141
+ ""
142
+ ]
143
+ ],
144
+ "('M022549', 14)": [
145
+ "أَو رَوضَةً أُنُفاً تَضَمَّنَ نَبتَه غَيثٌ قَليلُ الدِمنِ لَيسَ بِمَعلَمِ",
146
+ [
147
+ "الجمال خفي",
148
+ "قد يكون الغيث مخفيًّا",
149
+ "السعادة في البساطة",
150
+ "لا تبحث عن العلامة",
151
+ "ليس كل شيء واضح",
152
+ "قد يكون الكنز مُخفّيًا",
153
+ "لا تَحكم على الأشياء من ظاهرها",
154
+ "قد يكون الخير مُستقرًّا"
155
+ ]
156
+ ],
157
+ "('M022549', 15)": [
158
+ "جادَت عَليهِ كُلُّ بِكرٍ حُرَّةٍ فَتَرَكنَ كُلَّ قَرارَةٍ كَالدِرهَمِ",
159
+ [
160
+ "نعم الله غزيرة",
161
+ "وفرة العطاء",
162
+ "الحياة مُلْقاة على الشخص كـ \"الدِرهَمِ\"",
163
+ "النجاح يُشبه \"الدِرهَمِ\""
164
+ ]
165
+ ],
166
+ "('M022549', 16)": [
167
+ "سَحّاً وَتَسكاباً فَكُلَّ عَشِيَّةٍ يَجري عَلَيها الماءُ لَم يَتَصَرَّمِ",
168
+ [
169
+ "نعم الله لا تُعدّ",
170
+ "مَوارد الله لا تنفد",
171
+ "الماء منحة",
172
+ "الماء رمز الحياة",
173
+ "جمال الطبيعة",
174
+ "الطبيعة كرم من الله"
175
+ ]
176
+ ],
177
+ "('M022549', 17)": [
178
+ "وَخَلا الذُبابُ بِها فَلَيسَ بِبارِحٍ غَرِداً كَفِعلِ الشارِبِ المُتَرَنِّمِ",
179
+ [
180
+ "سكن الذباب دليل الراحة",
181
+ "المكان جميلٌ يُريح الذباب",
182
+ "الترنم يدل على السعادة",
183
+ "السعادة تدعو للراحة",
184
+ "صوت الذباب كغناء",
185
+ "صوت الذباب ينم عن الراحة"
186
+ ]
187
+ ],
188
+ "('M022549', 18)": [
189
+ "هَزِجاً يَحُكُّ ذِراعَهُ بِذِراعِهِ قَدحَ المُكِبِّ عَلى الزِنادِ الأَجذَمِ",
190
+ [
191
+ "الحركة السريعة",
192
+ "الغضب التعجّل",
193
+ "الذباب غير مُتّزن",
194
+ "العجلة تُفسد العمل"
195
+ ]
196
+ ],
197
+ "('M022549', 19)": [
198
+ "تُمسي وَتُصبِحُ فَوقَ ظَهرِ حَشِيَّةٍ وَأَبيتُ فَوقَ سَراةِ أَدهَمَ مُلجَمِ",
199
+ [
200
+ "الطبيعةُ قاسية",
201
+ "الحياةُ صعبةٌ",
202
+ "الشِدّةُ تُقوى",
203
+ "الصّبرُ مفتاحُ الفَرج"
204
+ ]
205
+ ],
206
+ "('M022549', 20)": [
207
+ "وَحَشِيَّتي سَرجٌ عَلى عَبلِ الشَوى نَهدٍ مَراكِلُهُ نَبيلِ المَحزِمِ",
208
+ [
209
+ "الشجاعة تَستقِلُّ بالصعب",
210
+ "الفخر بالجمالِ",
211
+ "الجمالُ قوةٌ",
212
+ "السِرجُ رمزُ الشّجاعة",
213
+ "العبلُ قوةُ البادية",
214
+ "التواضعُ مُكمّلُ الفخر"
215
+ ]
216
+ ],
217
+ "('M022549', 21)": [
218
+ "هَل تُبلِغَنّي دارَها شَدَنِيَّةٌ لُعِنَت بِمَحرومِ الشَرابِ مُصَرَّمِ",
219
+ [
220
+ "الشوق مُوجع",
221
+ "الحزن مُجبر",
222
+ "الحياة قاسية",
223
+ "الحبّ صعب",
224
+ "الظروف تتحكم",
225
+ "الأمل ضعيف",
226
+ "لا مُساعد في النكد"
227
+ ]
228
+ ],
229
+ "('M022549', 22)": [
230
+ "خَطّارَةٌ غِبَّ السُرى زَيّافَةٌ تَطِسُ الإِكامَ بِوَخذِ خُفٍّ ميثَمِ",
231
+ [
232
+ "مشقة السفر",
233
+ "قسوة الظروف",
234
+ "تعب الرحلة",
235
+ "سكون الليل",
236
+ "سرعة البعير",
237
+ "صوت خطوات البعير",
238
+ "هدوء البعير"
239
+ ]
240
+ ],
241
+ "('M022549', 23)": [
242
+ "وَكَأَنَّما تَطِسُ الإِكامَ عَشِيَّةً بِقَريبِ بَينَ المَنسِمَينِ مُصَلَّمِ",
243
+ [
244
+ "سرعة الحيوان",
245
+ "فطنة الحيوان",
246
+ "ذكاء الإنسان",
247
+ "اختيار الطريق المناسب",
248
+ "العاقل يَختارُ الطّريقَ الصّحيح",
249
+ "السرعة في العمل",
250
+ "الوصول إلى الهدف"
251
+ ]
252
+ ],
253
+ "('M022549', 24)": [
254
+ "تَأوي لَهُ قُلُصُ النَعامِ كَما أَوَت حِزَقٌ يَمانِيَةٌ لِأَعجَمَ طِمطِمِ",
255
+ [
256
+ "الطبيعة تُعلّمُ السلوكَ.",
257
+ "الأمن يُؤمّنُ المُشاعرَ.",
258
+ "التَآخي مُؤسّسُ الحياةِ.",
259
+ "الضَعيفُ يَحتاجُ لِلِحمايةِ.",
260
+ "تَأويلُ الحوادِثِ مُهمٌّ.",
261
+ "الِأَشخاصُ يَحتاجونَ لِلِإِنسانِ .",
262
+ "الضَعيفُ يَحتاجُ لِرَعايةِ الِقويّ.",
263
+ "الطبيعةُ أُمٌّ لِأَولادِها."
264
+ ]
265
+ ],
266
+ "('M022549', 25)": [
267
+ "يَتبَعنَ قُلَّةَ رَأسِهِ وَكَأَنَّهُ حِدجٌ عَلى نَعشٍ لَهُنَّ مُخَيَّمِ",
268
+ [
269
+ "سرعة النعام",
270
+ "مُشَاهدةُ الخَطر وَتَجنّبه",
271
+ "الخَوف يُجرِي",
272
+ "الضغط يُثير السرعة",
273
+ "الحرَكة بِدون نَظَر"
274
+ ]
275
+ ],
276
+ "('M022549', 26)": [
277
+ "صَعلٍ يَعودُ بِذي العُشَيرَةِ بَيضَهُ كَالعَبدِ ذي الفَروِ الطَويلِ الأَصلَمِ",
278
+ [
279
+ "الشجاعة",
280
+ "الإخلاص",
281
+ "حب الوطن",
282
+ "الولاء",
283
+ "التواضع",
284
+ "العمل الجاد"
285
+ ]
286
+ ],
287
+ "('M022549', 27)": [
288
+ "شَرِبَت بِماءِ الدُحرُضَينِ فَأَصبَحَت زَوراءَ تَنفِرُ عَن حِياضِ الدَيلَمِ",
289
+ [
290
+ "الماء مُنُشّط",
291
+ "الماء يُقوي",
292
+ "التمكين من الله",
293
+ "الشجاعة ضرورية"
294
+ ]
295
+ ],
296
+ "('M022549', 28)": [
297
+ "وَكَأَنَّما تَنأى بِجانِبِ دَفَّها ال وَحشِيِّ مِن هَزِجِ العَشِيِّ مُؤَوَّمِ",
298
+ [
299
+ "بعد المشقة يسر",
300
+ "الراحة حق المُتعب",
301
+ "وصف الدقيق يشعر بالحياة"
302
+ ]
303
+ ],
304
+ "('M022549', 29)": [
305
+ "هِرٍ جَنيبٍ كُلَّما عَطَفَت لَهُ غَضَبى اِتَّقاها بِاليَدَينِ وَبِالفَمِ",
306
+ [
307
+ "الغضب عظيم",
308
+ "القوة مُتَواصِلة",
309
+ "الشجاعة ضرورية",
310
+ "الدفاع عن النفس واجب",
311
+ "الجمال لا يعني الضعف"
312
+ ]
313
+ ],
314
+ "('M022549', 30)": [
315
+ "بَرَكَت عَلى جَنبِ الرِداعِ كَأَنَّم بَرَكَت عَلى قَصَبٍ أَجَشَّ مُهَضَّمِ",
316
+ [
317
+ "الرحلة مُتعبة",
318
+ "العيش صعب",
319
+ "الظروف قد تُضعِف",
320
+ "الصبر مُطلوب"
321
+ ]
322
+ ],
323
+ "('M022549', 31)": [
324
+ "وَكأَنَّ رُبّاً أَو كُحَيلاً مُعقَد حَشَّ الوَقودُ بِهِ جَوانِبَ قُمقُمِ",
325
+ [
326
+ "الشِعر يُعبّرُ عن الطبيعةِ بِشكلٍ جميلٍ - يُمكنُ للشاعرِ وصفَ الطبيعةِ بِشكلٍ مُبهرٍ.",
327
+ "الصورةُ الشعريةُ تُقوّي الـمعنى - الشعرُ يُستخدمُ الصورةَ الشعريةَ لـ توصيلِ المعنى بِشكلٍ أَقو��.",
328
+ "الاستعارةُ تُضفي جمالًا على الـمُعْطَى - الاستعارةُ تُضفي جمالًا على الـمُعْطَى من خلالِ نقلِ الـمُشابهةِ.",
329
+ "الـمُشابهةُ بين الطبيعةِ والـمُعْطَى - يُمكنُ مُقارنةُ الطبيعةِ بِالأشياءِ الأُخرى بِشكلٍ جميلٍ وواضحٍ.",
330
+ "جمالُ الصورةِ الشعريةِ - يُمكنُ للشاعرِ وصفَ الأشياءِ بِشكلٍ جميلٍ ومُثيرِ للـمُخيلة."
331
+ ]
332
+ ],
333
+ "('M022549', 32)": [
334
+ "يَنباعُ مِن ذِفرى غَضوبٍ جَسرَةٍ زَيّافَةٍ مِثلَ الفَنيقِ المُكدَمِ",
335
+ [
336
+ "الله غنيّ عن الخلق",
337
+ "النعمة من الله",
338
+ "الماء من فضل الله",
339
+ "قدرة الخالق عظيمة",
340
+ "الماء مصدر الحياة"
341
+ ]
342
+ ],
343
+ "('M022549', 33)": [
344
+ "إِن تُغدِفي دوني القِناعَ فَإِنَّني طَبٌّ بِأَخذِ الفارِسِ المُستَلئِمِ",
345
+ [
346
+ "الاصرار على الحق",
347
+ "لا تخاف من المُعترض",
348
+ "المُستلئِمٌ يَصل لِهدفه",
349
+ "لا تَتراجع عن حقّك",
350
+ "صمود وَتحدّي"
351
+ ]
352
+ ],
353
+ "('M022549', 34)": [
354
+ "أَثني عَلَيَّ بِما عَلِمتِ فَإِنَّني سَمحٌ مُخالَقَتي إِذا لَم أُظلَمِ",
355
+ [
356
+ "السّمحُ لا يُغدر.",
357
+ "العدل أساس السّلام.",
358
+ "ردّ الظلم واجب.",
359
+ "حسنُ الخلقِ يُزّينُ الإنسانَ.",
360
+ "من سَمِحَ أُجِرَ."
361
+ ]
362
+ ],
363
+ "('M022549', 35)": [
364
+ "وَإِذا ظُلِمتُ فَإِنَّ ظُلمِيَ باسِلٌ مُرٌّ مَذاقَتَهُ كَطَعمِ العَلقَمِ",
365
+ [
366
+ "لا تسكت على الظلم",
367
+ "الظلم مُرٌّ",
368
+ "الشجاعة قوة",
369
+ "الصمود مُهم",
370
+ "لا يَهدأ لي بالّ حتى أُنصف",
371
+ "الـظالم يُعاقب",
372
+ "الـصبر مُكافأة"
373
+ ]
374
+ ],
375
+ "('M022549', 36)": [
376
+ "وَلَقَد شَرِبتُ مِنَ المُدامَةِ بَعدَم رَكَدَ الهَواجِرُ بِالمَشوفِ المُعلَمِ",
377
+ [
378
+ "الخمر تنسى الهموم",
379
+ "لا يُنصح بالأمل في الخمر لحلّ المشكلات",
380
+ "الرفاهية تُغري بالنّسيان",
381
+ "التّسلية مؤقتة",
382
+ "الهموم لا تُزول بالخمر"
383
+ ]
384
+ ],
385
+ "('M022549', 37)": [
386
+ "بِزُجاجَةٍ صَفراءَ ذاتِ أَسِرَّةٍ قُرِنَت بِأَزهَرَ في الشَمالِ مُفَدَّمِ",
387
+ [
388
+ "الجمال في الوصف",
389
+ "وصف الخمر",
390
+ "أَزهَرَ",
391
+ "مُفَدَّم",
392
+ "صفراء",
393
+ "ذاتِ أَسِرَّةٍ"
394
+ ]
395
+ ],
396
+ "('M022549', 38)": [
397
+ "فَإِذا شَرِبتُ فَإِنَّني مُستَهلِكٌ مالي وَعِرضي وافِرٌ لَم يُكلَمِ",
398
+ [
399
+ "الخمر تُفقد العقل",
400
+ "الخمر مُهلكة",
401
+ "لا تُسرف في المتعة",
402
+ "فكر قبل أن تفعل",
403
+ "كن حريصًا على شرفك",
404
+ "المال والعرض أغلى من الخمر",
405
+ "إنفاق المال بدون تفكير يؤدي إلى الخراب"
406
+ ]
407
+ ],
408
+ "('M022549', 39)": [
409
+ "وَإِذا صَحَوتُ فَما أُقَصِّرُ عَن نَدىً وَكَما عَلِمتِ شَمائِلي وَتَكَرُّمي",
410
+ [
411
+ "كُن على خلقك",
412
+ "الصدق ينبت",
413
+ "لا يُغير الخلق",
414
+ "أفعال لا تُغيّر",
415
+ "الخير مستمر",
416
+ "الطبع غالب",
417
+ "كن على مرادك",
418
+ "أفعالك لا تُغير منك",
419
+ "الحُسن لا يزول",
420
+ "ما يُطبع منك"
421
+ ]
422
+ ],
423
+ "('M022549', 40)": [
424
+ "وَحَليلِ غانِيَةٍ تَرَكتُ مُجَدَّل تَمكو فَريصَتُهُ كَشَدقِ الأَعلَمِ",
425
+ [
426
+ "فرصة ضائعة",
427
+ "عدم تردد",
428
+ "تصميم على النجاح",
429
+ "التحديات مُمكنة",
430
+ "الفُرصة لا تُعوّض",
431
+ "الفرصة تُدرك بِالشّجاعة"
432
+ ]
433
+ ],
434
+ "('M022549', 41)": [
435
+ "سَبَقَت يَدايَ لَهُ بِعاجِلِ طَعنَةٍ وَرَشاشِ نافِذَةٍ كَلَونِ العَندَمِ",
436
+ [
437
+ "السرعة في القتال مهمة",
438
+ "المهارة تُفوز في الحرب",
439
+ "الضربة القوية تُنهي القتال",
440
+ "أسلوب المُشَبّهات تُضفي جمال على الوصف"
441
+ ]
442
+ ],
443
+ "('M022549', 42)": [
444
+ "هَلّا سَأَلتِ الخَيلَ يا اِبنَةَ مالِكٍ إِن كُنتِ جاهِلَةً بِما لَم تَعلَمي",
445
+ [
446
+ "الشجاعة تُرَى في الخيل",
447
+ "ثقة الشاعر بنفسه",
448
+ "الخيول تُشهد على الشجاعة",
449
+ "الشجاعة تظهر في المواقف",
450
+ "سلوك الخيل يُشير إلى شخصيته",
451
+ "لا تُحكم على الشجاعة من الكلام",
452
+ "استفسر عن الحقيقة من شُهودها"
453
+ ]
454
+ ],
455
+ "('M022549', 43)": [
456
+ "إِذ لا أَزالُ عَلى رِحالَةِ سابِحٍ نَهدٍ تَعاوَرُهُ الكُماةُ مُكَلَّمِ",
457
+ [
458
+ "الحياة رحلةٌ صعبة.",
459
+ "المعركة مُستمرة.",
460
+ "لا تهدأ من التحدي.",
461
+ "الفارس لا يَخاف من العقبات.",
462
+ "الحياة مُقاومة واستمرار."
463
+ ]
464
+ ],
465
+ "('M022549', 44)": [
466
+ "طَوراً يُجَرَّدُ لِلطِعانِ وَتارَةً يَأوي إِلى حَصدِ القَسِيِّ عَرَمرَمِ",
467
+ [
468
+ "الشجاعة لا تُستثنى من التعب",
469
+ "حياة الإنسان تُشبه حياة الخيل",
470
+ "الحياة مزيج من التعب والراحة",
471
+ "أوقات النشاط أَهمّ من أوقات الراحة",
472
+ "استغل أوقات نشاطك في العمل."
473
+ ]
474
+ ],
475
+ "('M022549', 45)": [
476
+ "يُخبِركِ مَن شَهِدَ الوَقيعَةَ أَنَّني أَغشى الوَغى وَأَعِفُّ عِندَ المَغنَمِ",
477
+ [
478
+ "شرف الفارسِ في معاركه",
479
+ "صدق الوعد في أوقاتِ الشدّة",
480
+ "شجاعتهُ مع الإخلاص",
481
+ "أمانةِ المُقاتلِ",
482
+ "الشرفُ غالي",
483
+ "الوعود تُوفّى",
484
+ "الخيانةُ مُذمومة"
485
+ ]
486
+ ],
487
+ "('M022549', 46)": [
488
+ "وَمُدَجَّجٍ كَرِهَ الكُماةُ نِزالَهُ لا مُمعِنٍ هَرَباً وَلا مُستَسلِمِ",
489
+ [
490
+ "لا تَخَفِ من المَوت",
491
+ "شجاعة لا هروب",
492
+ "مُقاتل قوي",
493
+ "قَويٌّ لا يستَسلِم",
494
+ "الضّعفُ عارٌ",
495
+ "الموتُ شَرَفٌ"
496
+ ]
497
+ ],
498
+ "('M022549', 47)": [
499
+ "جادَت لَهُ كَفّي بِعاجِلِ طَعنَةٍ بِمُثَقَّفٍ صَدقِ الكُعوبِ مُقَوَّمِ",
500
+ [
501
+ "الشجاعة",
502
+ "العزيمة",
503
+ "الانتصار",
504
+ "القوة",
505
+ "القدرة",
506
+ "العدو",
507
+ "الظفر",
508
+ "الصمود"
509
+ ]
510
+ ],
511
+ "('M022549', 48)": [
512
+ "فَشَكَكتُ بِالرُمحِ الأَصَمِّ ثِيابَهُ لَيسَ الكَريمُ عَلى القَنا بِمُحَرَّمِ",
513
+ [
514
+ "الشجاع لا يخاف",
515
+ "لا يُحرم الكريم من القتال",
516
+ "التحدّي يُغلب الصعوبة",
517
+ "نصرُ الصّابرِ مُؤكّد",
518
+ "أصّمتُ على الصّعابِ"
519
+ ]
520
+ ],
521
+ "('M022549', 49)": [
522
+ "فَتَرَكتُهُ جَزَرَ السِباعِ يَنُشنَهُ يَقضِمنَ حُسنَ بِنانِهِ وَالمِعصَمِ",
523
+ [
524
+ "الحرب مُدمّرة",
525
+ "الظّلم لا يُؤدّي إلّا إلى الفساد",
526
+ "الانتقام لا يُؤدّي إلّا إلى الدمار",
527
+ "الغرور وَالتكبر يُؤدّيان إلى الهلاك",
528
+ "لا تُنسى أنَّ الموت هو النّهاية الحتميّة"
529
+ ]
530
+ ],
531
+ "('M022549', 50)": [
532
+ "وَمِشَكِّ سابِغَةٍ هَتَكتُ فُروجَه بِالسَيفِ عَن حامي الحَقيقَةِ مُعلِمِ",
533
+ [
534
+ "الشجاعة في الوقوف مع الحقّ",
535
+ "الدفاع عن الحقيقة واجب",
536
+ "لا يَخافُ من دافع عن الحقّ",
537
+ "الصدقُ مُنارَةٌ للنّاس",
538
+ "لا لِلتّخاذُلِ في مُواجهةِ الظّلم",
539
+ "كلّ مُجرم يُعاقَب",
540
+ "السيفُ يُحكمُ بينَ الظّالمِ وَالمَظلومِ",
541
+ "الشجاعةُ مِن خُلقِ الشّرفاء"
542
+ ]
543
+ ],
544
+ "('M022549', 51)": [
545
+ "رَبِذٍ يَداهُ بِالقِداحِ إِذا شَت هَتّاكِ غاياتِ التِجارِ مُلَوَّمِ",
546
+ [
547
+ "الحذر من الأعداء",
548
+ "التجار هدف للمُفترسين",
549
+ "العدوان مُلام",
550
+ "الحِماية ضرورية",
551
+ "الشجاعة ضد الظلم"
552
+ ]
553
+ ],
554
+ "('M022549', 52)": [
555
+ "لَمّا رَآني قَد نَزَلتُ أُريدُهُ أَبدى نَواجِذَهُ لِغَيرِ تَبَسُّمِ",
556
+ [
557
+ "الشجاعة في مواجهة الخطر",
558
+ "الخصم لا يتبسم",
559
+ "الأسنان تُظهر الخوف",
560
+ "الوجه يُخفي القلوب",
561
+ "لا تُثق بالأعداء",
562
+ "الحذر واجب"
563
+ ]
564
+ ],
565
+ "('M022549', 53)": [
566
+ "عَهدي بِهِ مَدَّ النَهارِ كَأَنَّم خُضِبَ البَنانُ وَرَأسُهُ بِالعِظلِمِ",
567
+ [
568
+ "الحقد فاسد",
569
+ "لا تُحقد على أحد",
570
+ "الانتقام عواقب وخيمة",
571
+ "الحقد يُفسد القلوب",
572
+ "لا تُحصر أحقادك"
573
+ ]
574
+ ],
575
+ "('M022549', 54)": [
576
+ "فَطَعَنتُهُ بِالرُمحِ ثُمَّ عَلَوتُهُ بِمُهَنَّدٍ صافي الحَديدَةِ مِخذَمِ",
577
+ [
578
+ "البطولة في المعركة",
579
+ "الانتصار على العدو",
580
+ "الصمود ضد الظلم",
581
+ "القوة في ساحة الحرب",
582
+ "العزيمة في المواجهة"
583
+ ]
584
+ ],
585
+ "('M022549', 55)": [
586
+ "بَطَلٍ كَأَنَّ ثِيابَهُ في سَرحَةٍ يُحذى نِعالَ السِبتِ لَيسَ بِتَوأَمِ",
587
+ [
588
+ "لا تُقلد أحداً ،",
589
+ "كن ذو شخصية مستقلة ،",
590
+ "الشكل لا يُهم ،",
591
+ "لا تُعطي اهتماماً للشكل الظاهري،",
592
+ "الجوهر أهم من الشكل ."
593
+ ]
594
+ ],
595
+ "('M022549', 56)": [
596
+ "يا شاةَ ما قَنَصٍ لِمَن حَلَّت لَهُ حَرُمَت عَلَيَّ وَلَيتَها لَم تَحرُمِ",
597
+ [
598
+ "الفرص تَفُوت",
599
+ "الوقت لا يُرَجّع",
600
+ "لا تُعَوّض",
601
+ "القدر",
602
+ "الحياة مُتَقَلّبة",
603
+ "لا تُحسَد",
604
+ "الفرصة مُتاحة",
605
+ "لا تُفَوّت"
606
+ ]
607
+ ],
608
+ "('M022549', 57)": [
609
+ "فَبَعَثتُ جارِيَتي فَقُلتُ لَها اِذهَبي فَتَجَسَّسي أَخبارَها لِيَ وَاِعلَمي",
610
+ [
611
+ "منْ أرادَ أن يَعلمَ أَمرَ شي‌ءٍ، فَليَسأل عَنْهُ",
612
+ "اسألوا أهل الخبرة",
613
+ "لا تُقرّرْ قبل الاستعلام",
614
+ "الحكمة تُستَفادُ مِنْ تَجَسّسِ الأمور"
615
+ ]
616
+ ],
617
+ "('M022549', 58)": [
618
+ "قالَت رَأَيتُ مِنَ الأَعادي غِرَّةً وَالشاةُ مُمكِنَةٌ لِمَن هُوَ مُرتَمِ",
619
+ [
620
+ "العدو الغافل سهل الهزيمة",
621
+ "التهاون يؤدي إلى الهزيمة",
622
+ "استعد للأعداء قبل أن تواجهم",
623
+ "الضعيف سهل الغلبة",
624
+ "الاستعداد يُمكنك من النصر",
625
+ "لا تستهن بالعدو"
626
+ ]
627
+ ],
628
+ "('M022549', 59)": [
629
+ "وَكَأَنَّما اِلتَفَتَت بِجيدِ جَدايَةٍ رَشإٍ مِنَ الغِزلانِ حُرٍّ أَرثَمِ",
630
+ [
631
+ "الجمال سَحر",
632
+ "الغَزال رمز للرشاقة",
633
+ "الحُبّ جميل",
634
+ "الطبيعة سَحر",
635
+ "الجمال مُلهم",
636
+ "الحبّ يلهم الشعر",
637
+ "الغزل من أساليب الشعراء",
638
+ "المرأة كالغَزال"
639
+ ]
640
+ ],
641
+ "('M022549', 60)": [
642
+ "نِبِّئتُ عَمرو��ً غَيرَ شاكِرِ نِعمَتي وَالكُفرُ مَخبَثَةٌ لَنَفسِ المُنعِمِ",
643
+ [
644
+ "شكر النعم واجِبٌ",
645
+ "الكفر بالنِعم يُؤذي صاحبِها",
646
+ "نكران الجميل يُقلّل من ثقتِهِ بنفسِهِ",
647
+ "من لا يُقدّر النعم سيُعاقب",
648
+ "الجميل بِالجميل",
649
+ "لا تُنكِر الجميل ."
650
+ ]
651
+ ],
652
+ "('M022549', 61)": [
653
+ "وَلَقَد حَفِظتُ وَصاةَ عَمّي بِالضُحى إِذ تَقلِصُ الشَفَتانِ عَن وَضَحِ الفَمِ",
654
+ [
655
+ "وصايا الوالدين كنز",
656
+ "التّربية أهمّ مِن التّعليم",
657
+ "صِغارُنا مستقبلُنا",
658
+ "تعليمُ الطفلِ من أهمّ الأعمال",
659
+ "حفظُ الوصايا أمانة",
660
+ "الوصايا ضّوءٌ يُرشِدُنا",
661
+ "الوصايا تُخلّصُنا منَ الشّقاء",
662
+ "الوصايا تُعينُنا على السّعادة"
663
+ ]
664
+ ],
665
+ "('M022549', 62)": [
666
+ "في حَومَةِ الحَربِ الَّتي لا تَشتَكي غَمَراتِها الأَبطالُ غَيرَ تَغَمغُمِ",
667
+ [
668
+ "الحرب لا تُرحم",
669
+ "الأبطال صابرون",
670
+ "الشجاعة مُثابرة",
671
+ "الوطن يُقدم على النفس",
672
+ "الشهادة غاية",
673
+ "من يَحِبّ الوطن يُحِبّ الحرب",
674
+ "لا تَشتكي من الحرب",
675
+ "الحربُ يُصعب فَوزها"
676
+ ]
677
+ ],
678
+ "('M022549', 63)": [
679
+ "إِذ يَتَّقونَ بِيَ الأَسِنَّةَ لَم أَخِم عَنها وَلَكِنّي تَضايَقَ مُقدَمي",
680
+ [
681
+ "الشجاعة ثبات",
682
+ "القدر يُصيب",
683
+ "الضغط يصنع الماس",
684
+ "لا يُهم حجم المشكلة، المهم الحلّ",
685
+ "من يخشى يَفوز",
686
+ "الذكاء أبلغ من القوة"
687
+ ]
688
+ ],
689
+ "('M022549', 64)": [
690
+ "لَمّا رَأَيتُ القَومَ أَقبَلَ جَمعُهُم يَتَذامَرونَ كَرَرتُ غَيرَ مُذَمَّمِ",
691
+ [
692
+ "الشجاعة هي الاستعداد",
693
+ "لا تهاب المخاطر",
694
+ "الثقة تُعطي قوة",
695
+ "لا تُقاس الشجاعة بالكلام",
696
+ "العقل قبل الخطر"
697
+ ]
698
+ ],
699
+ "('M022549', 65)": [
700
+ "يَدعونَ عَنتَرَ وَالرِماحُ كَأَنَّه أَشطانُ بِئرٍ في لَبانِ الأَدهَمِ",
701
+ [
702
+ "العدوّ قوي",
703
+ "الخوف من المُرعب",
704
+ "الكثير كَالبحر"
705
+ ]
706
+ ],
707
+ "('M022549', 66)": [
708
+ "ما زِلتُ أَرميهِم بِثُغرَةِ نَحرِهِ وَلَبانِهِ حَتّى تَسَربَلَ بِالدَمِ",
709
+ [
710
+ "الشجاعة تُقرّب النصر",
711
+ "الشجاعة في مواجهة الأعداء",
712
+ "الهدف مُهمٌّ في القتال",
713
+ "الضرب على الرأس",
714
+ "لا تهاجم إلا في مكان ضعف"
715
+ ]
716
+ ],
717
+ "('M022549', 67)": [
718
+ "فَاِزوَرَّ مِن وَقعِ القَنا بِلَبانِهِ وَشَكا إِلَيَّ بِعَبرَةٍ وَتَحَمحُمِ",
719
+ [
720
+ "الألم قاس",
721
+ "البكاء يخفف الألم",
722
+ "الشجاعة مُواجهة لِلموت",
723
+ "النصر يُحقق بالثبات",
724
+ "الشجاعة تُثبت بالألم",
725
+ "الضعف يظهر في الألم",
726
+ "الشجاعة تُساعد على التغلب على الألم"
727
+ ]
728
+ ],
729
+ "('M022549', 68)": [
730
+ "لَو كانَ يَدري ما المُحاوَرَةُ اِشتَكى وَلَكانَ لَو عَلِمَ الكَلامَ مُكَلِّمي",
731
+ [
732
+ "الجهل يَصنع الأذى",
733
+ "فَهْمُ الكَلامِ يَصنع التّفاهم",
734
+ "العلم نور",
735
+ "العلم نُورٌ وَالجَهْل ظُلْمَةٌ",
736
+ "فَهْمُ الظّروفِ يَحِمِي مِنَ المُشاكِل",
737
+ "يَتَكَلّمُ الخَبِيرُ",
738
+ "اللّغةُ مُفتَاحُ الفَهمِ",
739
+ "الحِكْمَةُ تَحمي مِنَ الآلام",
740
+ "فَهْمُ المُحاوَرَةِ يَصنع النّجاح"
741
+ ]
742
+ ],
743
+ "('M022549', 69)": [
744
+ "وَلَقَد شَفى نَفسي وَأَذهَبَ سُقمَه قيلُ الفَوارِسِ وَيكَ عَنتَرَ أَقدِمِ",
745
+ [
746
+ "الكلمة الطيبة شفاء",
747
+ "التكريم يُريح النفس",
748
+ "الشجاعة تُكسب التقدير",
749
+ "الثناء يُزيل السقم",
750
+ "عَنترة بطل"
751
+ ]
752
+ ],
753
+ "('M022549', 70)": [
754
+ "وَالخَيلُ تَقتَحِمُ الخَبارَ عَوابِس مِن بَينِ شَيظَمَةٍ وَآخَرَ شَيظَمِ",
755
+ [
756
+ "الشجاعة في القلب",
757
+ "جرأة الفارس",
758
+ "قوة الخيل",
759
+ "الخطر مُنعش",
760
+ "السرعة مُؤثّرة"
761
+ ]
762
+ ],
763
+ "('M022549', 71)": [
764
+ "ذُلُلٌ رِكابي حَيثُ شِئتُ مُشايِعي لُبّي وَأَحفِزُهُ بِأَمرٍ مُبرَمِ",
765
+ [
766
+ "الطاعة واجبة",
767
+ "الإخلاص مُهم",
768
+ "عدم التردد",
769
+ "التواضع من فضائل النفس",
770
+ "الخِدمة والتكريم",
771
+ "أَنا مُطيعٌ لكَ",
772
+ "أَنا مُستعدٌ لخدمتك"
773
+ ]
774
+ ],
775
+ "('M022549', 72)": [
776
+ "وَلَقَد خَشيتُ بِأَن أَموتَ وَلَم تَدُر لِلحَربِ دائِرَةٌ عَلى اِبنَي ضَمضَمِ",
777
+ [
778
+ "الموت يُخيف",
779
+ "الحرب خطيرة",
780
+ "الانتقام عزيز",
781
+ "حقّ الناس واجب",
782
+ "العدالة مهمة",
783
+ "المهمة تُتمّ",
784
+ "الهدف أسمى",
785
+ "الحياة ثمينة"
786
+ ]
787
+ ],
788
+ "('M022549', 73)": [
789
+ "الشاتِمَي عِرضي وَلَم أَشتِمهُم وَالناذِرَينِ إِذا لَم اَلقَهُما دَمي",
790
+ [
791
+ "الصمتُ أحيانًا أفضل.",
792
+ "صبرٌ على الشتم.",
793
+ "لا تَستَفِز العدوّ.",
794
+ "حَلمٌ على الناذر.",
795
+ "الهدوء مفتاح الحل.",
796
+ "لا تُرد السّوء بِالسّوء.",
797
+ "العفو أَكرم من التّعزيز.",
798
+ "حَلمٌ وَغَفرَانٌ لِمَن يَظلِم."
799
+ ]
800
+ ],
801
+ "('M022549', 74)": [
802
+ "إِن يَفعَلا فَلَقَد تَرَكتُ أَباهُم جَزَرَ السِباعِ وَكُلِّ نَسرٍ قَشعَمِ",
803
+ [
804
+ "العدو يُعاقَب",
805
+ "لا تَسَتَخفّ بِالعدوّ",
806
+ "العدالةُ إلهية",
807
+ "الشرّ يرُدّ إلى أهله",
808
+ "الغرور مُدَمّر"
809
+ ]
810
+ ]
811
+ }
app.py CHANGED
@@ -19,28 +19,6 @@ p, div, input, label, h1, h2, h3, h4, h5, h6 {
19
  </style>
20
  """, unsafe_allow_html=True)
21
 
22
- SPLIT = " \n"
23
-
24
- @st.cache_resource
25
- def poems(pids=None):
26
- with open('aldiwan.json', 'r', encoding='utf-8') as file:
27
- all_poems = ujson.load(file)
28
- ans = {}
29
- for t in all_poems:
30
- for p in t['poems']:
31
- if pids is not None and p['uid'] not in pids:
32
- continue
33
-
34
- lines = [[]]
35
- for h in p['halves']:
36
- lines[-1].append(h)
37
- if len(lines[-1]) == 2:
38
- lines[-1] = ' ... '.join(lines[-1])
39
- lines.append([])
40
- poem = SPLIT.join(lines[:-1])
41
- ans[p['uid']] = poem
42
- return ans
43
-
44
  @st.cache_resource
45
  def wx_embedding():
46
  import os
@@ -65,28 +43,32 @@ def wx_embedding():
65
  return watsonx_embedding
66
 
67
  @st.cache_resource
68
- def get_wis2line(pids):
69
- wis2line = defaultdict(lambda: [])
70
- for pid in pids:
71
- verses = poems(pids)[pid].split(SPLIT)
72
- with open(f"wis2lines/{pid}", 'r', encoding='utf-8') as file:
73
- for line_idx, line in enumerate(file):
74
- for wis in line.strip().split("="):
75
- wis2line[wis].append((pid, line_idx, verses[line_idx]))
76
- wis_list = list(wis2line.keys())
77
- wis_embeds = wx_embedding().embed_documents(wis_list)
78
- return wis2line, wis_list, wis_embeds
 
 
 
 
 
 
 
 
 
 
 
 
79
 
80
- def top_wis(input_embed, wis_embeds, wis_list, wis2line):
81
- verse2score = defaultdict(lambda: 0)
82
- verse2count = defaultdict(lambda: 0)
83
- sim = cosine_similarity(input_embed, wis_embeds)
84
- for score, wis_index in sorted([(-x, i) for i, x in enumerate(sim[0])]):
85
- for pid, line_idx, verse in wis2line[wis_list[wis_index]]:
86
- verse2score[(pid, line_idx, verse)] += score
87
- verse2count[(pid, line_idx, verse)] += 1
88
- for i, (score, verse) in enumerate(sorted([(score / verse2count[verse], verse) for verse, score in verse2score.items()])):
89
- yield score**2, verse
90
  if i == 5: break
91
 
92
  # READ INPUT
@@ -97,9 +79,8 @@ txt = st.text_input(
97
  )
98
  input_embed = wx_embedding().embed_documents([txt])
99
  # FIND MATCHES
100
- wis2line, wis_list, wis_embeds = get_wis2line(["M022549"])
101
  table = []
102
- for score, (pid, line_idx, verse) in top_wis(input_embed, wis_embeds, wis_list, wis2line):
103
- table.append([verse, f"{score * 100:.1f}%"])
104
  df = pd.DataFrame(table, columns=['البيت', 'التشابه'])
105
  st.table(df)
 
19
  </style>
20
  """, unsafe_allow_html=True)
21
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
22
  @st.cache_resource
23
  def wx_embedding():
24
  import os
 
43
  return watsonx_embedding
44
 
45
  @st.cache_resource
46
+ def load_text2id():
47
+ with open("app.json", "r", encoding="utf-8") as file:
48
+ id2all = ujson.load(file)
49
+ text2id = {}
50
+ for id, val in id2all.items():
51
+ verse = val[0]
52
+ wis = val[1]
53
+ for w in wis:
54
+ text2id[w] = (id, verse)
55
+ return text2id
56
+
57
+ def top_wis(input_embed):
58
+ text2id = load_text2id()
59
+ text_list = list(text2id.keys())
60
+ text_embeds = wx_embedding().embed_documents(text_list)
61
+ sim = cosine_similarity(input_embed, text_embeds)
62
+
63
+ id2score = defaultdict(lambda: 0)
64
+ id2count = defaultdict(lambda: 0)
65
+ for text_idx, score in enumerate(sim[0]):
66
+ id = text2id[text_list[text_idx]]
67
+ id2score[id] += score
68
+ id2count[id] += 1
69
 
70
+ for i, (score, id) in enumerate(sorted([(score / id2count[id], id) for id, score in id2score.items()], reverse=True)):
71
+ yield score, id
 
 
 
 
 
 
 
 
72
  if i == 5: break
73
 
74
  # READ INPUT
 
79
  )
80
  input_embed = wx_embedding().embed_documents([txt])
81
  # FIND MATCHES
 
82
  table = []
83
+ for score, verse in top_wis(input_embed):
84
+ table.append([verse[1].replace(' ', ' ... '), f"{score * 100:.1f}%"])
85
  df = pd.DataFrame(table, columns=['البيت', 'التشابه'])
86
  st.table(df)
preproc.py ADDED
@@ -0,0 +1,39 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import ujson
2
+ from collections import defaultdict
3
+ from os import walk
4
+
5
+
6
+ with open('aldiwan.json', 'r', encoding='utf-8') as file:
7
+ all_poems = ujson.load(file)
8
+
9
+ SPLIT = " "
10
+ pid2verse = {}
11
+ for pt in all_poems:
12
+ for pm in pt['poems']:
13
+ verse_idx = 0
14
+ verse = ""
15
+ for h in pm['halves']:
16
+ verse = f"{verse}{SPLIT}{h}".strip()
17
+ if SPLIT in verse:
18
+ pid2verse[(pm['uid'], verse_idx)] = verse
19
+ verse_idx += 1
20
+ verse = ""
21
+
22
+
23
+ pid2wis = defaultdict(lambda: [])
24
+ for (dirpath, dirnames, filenames) in walk('wis_gemini'):
25
+ for pid in filenames:
26
+ with open(f"wis_gemini/{pid}", 'r', encoding='utf-8') as file:
27
+ for line_idx, line in enumerate(file):
28
+ pid2wis[(pid, line_idx)] = line.strip().split("=")
29
+
30
+
31
+ pid2all = {}
32
+ for (pid, line_idx), wis in pid2wis.items():
33
+ if pid != "M022549": continue
34
+ verse = pid2verse[(pid, line_idx)]
35
+ pid2all[(pid, line_idx)] = (verse, wis)
36
+
37
+ with open("app.json", "w", encoding="utf-8") as file:
38
+ ujson.dump(pid2all, file, indent=4, ensure_ascii=False)
39
+
{wis2lines → wis_gemini}/M022410 RENAMED
File without changes
{wis2lines → wis_gemini}/M022412 RENAMED
File without changes
{wis2lines → wis_gemini}/M022413 RENAMED
File without changes
{wis2lines → wis_gemini}/M022414 RENAMED
File without changes
{wis2lines → wis_gemini}/M022415 RENAMED
File without changes
{wis2lines → wis_gemini}/M022416 RENAMED
File without changes
{wis2lines → wis_gemini}/M022417 RENAMED
File without changes
{wis2lines → wis_gemini}/M022421 RENAMED
File without changes
{wis2lines → wis_gemini}/M022422 RENAMED
File without changes
{wis2lines → wis_gemini}/M022423 RENAMED
File without changes
{wis2lines → wis_gemini}/M022426 RENAMED
File without changes
{wis2lines → wis_gemini}/M022428 RENAMED
File without changes
{wis2lines → wis_gemini}/M022431 RENAMED
File without changes
{wis2lines → wis_gemini}/M022432 RENAMED
File without changes
{wis2lines → wis_gemini}/M022436 RENAMED
File without changes
{wis2lines → wis_gemini}/M022437 RENAMED
File without changes
{wis2lines → wis_gemini}/M022438 RENAMED
File without changes
{wis2lines → wis_gemini}/M022439 RENAMED
File without changes
{wis2lines → wis_gemini}/M022440 RENAMED
File without changes
{wis2lines → wis_gemini}/M022442 RENAMED
File without changes
{wis2lines → wis_gemini}/M022443 RENAMED
File without changes
{wis2lines → wis_gemini}/M022444 RENAMED
File without changes
{wis2lines → wis_gemini}/M022445 RENAMED
File without changes
{wis2lines → wis_gemini}/M022446 RENAMED
File without changes
{wis2lines → wis_gemini}/M022448 RENAMED
File without changes
{wis2lines → wis_gemini}/M022449 RENAMED
File without changes
{wis2lines → wis_gemini}/M022452 RENAMED
File without changes
{wis2lines → wis_gemini}/M022454 RENAMED
File without changes
{wis2lines → wis_gemini}/M022456 RENAMED
File without changes
{wis2lines → wis_gemini}/M022457 RENAMED
File without changes
{wis2lines → wis_gemini}/M022458 RENAMED
File without changes
{wis2lines → wis_gemini}/M022459 RENAMED
File without changes
{wis2lines → wis_gemini}/M022460 RENAMED
File without changes
{wis2lines → wis_gemini}/M022463 RENAMED
File without changes
{wis2lines → wis_gemini}/M022467 RENAMED
File without changes
{wis2lines → wis_gemini}/M022468 RENAMED
File without changes
{wis2lines → wis_gemini}/M022470 RENAMED
File without changes
{wis2lines → wis_gemini}/M022471 RENAMED
File without changes
{wis2lines → wis_gemini}/M022472 RENAMED
File without changes
{wis2lines → wis_gemini}/M022473 RENAMED
File without changes
{wis2lines → wis_gemini}/M022474 RENAMED
File without changes
{wis2lines → wis_gemini}/M022475 RENAMED
File without changes
{wis2lines → wis_gemini}/M022478 RENAMED
File without changes
{wis2lines → wis_gemini}/M022481 RENAMED
File without changes
{wis2lines → wis_gemini}/M022482 RENAMED
File without changes
{wis2lines → wis_gemini}/M022483 RENAMED
File without changes
{wis2lines → wis_gemini}/M022484 RENAMED
File without changes