الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

C# Or Prolog?

مغلق
بدأه Lindsay في 21 نوفمبر 2007 · 7 رد · 2,066 مشاهدة · في Microsoft Visual C#.NET
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

بسم الله الرحمن الرحيم

السلام عليكم ورحمه الله وبركاته

اتمنى مساعدتي هل احتاج لتعلم واستخدام لغه البرولوج في مشروعي

انا اعمل حاليا على مشروع Translation Machine

ولله الحمد استطعت البدأ في المشروع بلغه السي شارب ولكن توقف معي المشروع في جزئيه

احتجت فيها لتحديد نوع كل كلمه هل هي

(Noun,Verb,Adj,Adv,Prep....)

بحيث انه يحدد بدون الرجوع للقاعده البيانات لانه سوف يحدد اولا ثم يذهب للقاعده

ففكرت كثيرا وسمعت ان لغه الذكاء الاصطناعي افضل لعمل هذه الجزئيه

فسؤالي هو هل ممكن عمل خوارزم وتطبيقه بلغه البرولوج بحيث يكتشف الكمبيوتر اجزاء الجمله دون الرجوع الى قاعده البيانات

وهل امكانيات برنامج البرولوج افضل في هذه الحاله من السي شارب

وارجوا اذا كان اي احد لديه افكار كيف ممكن اكتشف اجزاء الجمله مساعدتي لاني حائرة كثييييييرا وموعد تسليم مشروعي يقترب :(

((ملاحظه : ارجوا ان لايعتبر سؤالي في غير محله لاني بحثت في المنتدى عن قسم للغات الذكاء الاصطناعي ولم اجد وبما ان سؤالي يتعلق بسي شارب كتبت سؤالي في هذا القسم لذ ارجوا المعذرة :lol: ))

تم تعديل هذه المشاركة بواسطة Lindsay في 21 نوفمبر 2007 في 18:21

#2

بالنسبة لل Prolog انا درستها في الكلية

بس استخدام النوع ده من لغات البرمجة ( Logic Programming ) قليل في السوق العربي

اقترح انك تستخدم السي شارب

انا شخصيا عملت نفس المشروع ده ال MT باستخدام ال C# و استخدمت الملفات و ليس قاعدة بيانات

و كان الموضوع سهل الي حد ما

علي العموم كنت بخزن نص الكلمة و معاناها و نوعها في الملف

و أنشأت Word Class لتكوين Object يحتوي علي خصائص الكلمة بعد البحث عنها بالنص

و كان تطبيق قواعد اللغة ( Syntax Rules ) ميسر باستخدام السي شارب

بالتوفيق إن شاء الله

#3
أحمد طاهر الباز كتب:
بالنسبة لل Prolog انا درستها في الكلية

بس استخدام النوع ده من لغات البرمجة ( Logic Programming ) قليل في السوق العربي

اقترح انك تستخدم السي شارب

انا شخصيا عملت نفس المشروع ده ال MT باستخدام ال C# و استخدمت الملفات و ليس قاعدة بيانات

و كان الموضوع سهل الي حد ما

علي العموم كنت بخزن نص الكلمة و معاناها و نوعها في الملف

و أنشأت Word Class لتكوين Object يحتوي علي خصائص الكلمة بعد البحث عنها بالنص

و كان تطبيق قواعد اللغة ( Syntax Rules ) ميسر باستخدام السي شارب

بالتوفيق إن شاء الله

السلام عليكم

أخي أحمد طاهر هل بإمكانك أن توضح أكثر أو تضع أمثلة ربما يكون ذلك مفيد أكثر لصاحب الموضوع و للبقية؟

تم تعديل هذه المشاركة بواسطة بن العيد في 21 نوفمبر 2007 في 23:33

#4
اقتباس

أخي أحمد طاهر هل بإمكانك أن توضح أكثر أو تضع أمثلة ربما يكون ذلك مفيد أكثر لصاحب الموضوع و للبقية؟

الاخ بن العيد

اشكرك كثيرا على طلب توضيح الفكرة

الاخ أحمد طاهر الباز

اشكرك كثيرا لانك وفرت على اضاعه كثييير من الوقت في تعلم لغه Prolog

جزاك الله خير

ما تتصور قدايش فرحت لما قرأت ردك ,,كثير جدا حطموا معنوياتي وقالوا ان المشروع كبير جدا ومستحيل علي بما اني طالبه

ولم اصادف اشخاص عملواالبرنامج يخبروني برأهم فيه ,,,,وبما انك عملت البرنامج ارجوا انك تفيدني بخبرتك

اقتباس
انا شخصيا عملت نفس المشروع ده ال MT باستخدام ال C# و استخدمت الملفات و ليس قاعدة بيانات

و كان الموضوع سهل الي حد ما

علي العموم كنت بخزن نص الكلمة و معاناها و نوعها في الملف

و أنشأت Word Class لتكوين Object يحتوي علي خصائص الكلمة بعد البحث عنها بالنص

و كان تطبيق قواعد اللغة ( Syntax Rules ) ميسر باستخدام السي شارب

هل يختلف اذا خزنت في قاعده بيانات اوفي ملف .. ماهو الفرق ؟؟؟

انا قمت بعمل عده جداول

(Noun Table-Verb Table-Adj Table.......)

ولكن المشكله ليست في تحديد النوع بل هناك مشكله اخرى فانا اجعل البرنامج يبحث في كل الجداول وهناك كلمات

لها اكثر من معنى وموجوده في اكثر من

جدول مثلا (Fast) ممكن لها معنى يصوم -فعل :سريع-ظرف:الصيام-اسم

ومن المنطق ان لايبحث في كل الجداول بل يبحث فقط في الجدول واحد

الذي سوف يحدده من موقع الكلمه في الجمله لانه لو بحث في كل الجداول سوف يكون وقت التنفيذ كبير جدا

وبالتالي براي احتاج لجعل البرنامج يحدد نوع كل كلمه (اسم او فعل اوصفه ...الخ) قبل البحث في قاعده البيانات

فكيف استطعت التغلب على هذه المشكله في برنامجك ؟؟؟

ولدي سؤال ثاني ماهو المرجع الذي رجعت اليه للحصول على جميع Syntax Rules

لاني ابحث عن مرجع يكون فيه كل الرولز ولكن مراجع الترجمه الاليه تكون ناقصه

ومراجع الترجمه (البشريه) تكون معقده وغير مرتبه؟؟؟

وكل Syntax Rule اذامثالناها في Parse tree هناك ParseTree

مقابله لها عند الترجمه من عربي للانجليزي

مثل الصوره التي ارفقتها

مثل هذه القواعد ايضا ما هو المرجع الذي رجعت اليه???

ارجوا المعذرة على اسئلتى الكثيره التي حيرتني كثيرا و اتمنى ان اجد لها جوابا

Syntactic_Transfer.bmp

تم تعديل هذه المشاركة بواسطة Lindsay في 22 نوفمبر 2007 في 06:28

#5

استخدام الملفات ليس إلا لتبسيط ال final package للبرنامج فقط

و لكن لا يوجد مشكلة من استخدام قاعدة بيانات بسيطة مثل Access

في حالة استخدام قاعدة بيانات

من المفترض ان الكلمات كلها في جدول واحد

و نستخدم حقل يبين نوع الكلمة مثلا WordType

لاننا بنبحث بالنص و ليس النوع

بنستخدم النوع للتأكد من صحة اتباع الجملة لقواعد اللغة فقط

في البداية قبل تطبيق قواعد اللغة

اقوم بالبحث عن كل كلمات الجملة و استرجاعها ان وجدت

و الا فأخبر المستخدم بأن الكلمة كذا ليست موجودة في القاموس تريد إضافتا طبعا ببيانتها

و انشأت كلاس Word يعبر عن كل كلمة و بيانتها

و بالنسبة للقواعد استخدمت الدوال

كل قاعدة عبارة عن دالة بداخلها اثبات قواعد اخري أصغر منها عبارة عن دوال أيضا

مثلا لاثبات NP --> Det + Adj + N

يوجد دالة اسمها IsNP أمرر لها الجملة و تعود ب bool

و بداخلها

 // assume that there is  Word Class
	public bool IsNP(string stmt)
	{

		if (IsDet(someWordObject) && IsAdj(someWordObject) && IsNoun(someWordObject))
		{
			return true;
		}
		return false;
	}

طبعا الموضوع أكبر كده بس ده مجرد توضيح فقط

علي العموم

أنا أعتذر عن عدم موافتك بالتفاصيل لأن المشروع من سنتين

و كمان انا في الجيش مش هقدر أرسلك المشروع

بالتوفيق

#6

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

<dictionary>
<word>
<V>ذاكر</v>
<type>فعل</type>
</word>
*****************
<word>
<V>studied</v>
<type>verb</type>
</word>

</dictionary>

هذا سيكون المرجع لك

طيب لكى تقرأه ؟...هناك طريقتان لقراءة ملفات ال xml ال dom و ال SAX

نركز على ال DOM فهى تقرأ تاج تاج يعنى تاح <word> ثم <v>ثم <type>

طيب كيف استفيد من هذا

هذا مثال بيسط سنبرمجه بالسى شارب

افتح مشروع جديد ثم اسحب على الفورم زر و listBox

لكن اولا ادخل ملف ال xml داخل مرجع مشروعك واكتب فيه ماسبق ثم قم بحفظه فى مكان تعرفه

الكود التالى داخل الحدث click

Button_Click(......){
XmlDocument doc = new Xmldocument();
OpenFiledialog d =new Openfiledialog();
d.filter ="Xml files |*.xml";
if (d.showDialog()==DialogResult.Ok)
{
doc.load(d.filename);
show_node(doc);
}
\\ make this method
void show_node(XmlNode n)
{
\\ make switch case for parsing for attributes of the tags you want ...it's simple way of searching and finding your words 
switch(n.NodeType)
{
case XmlNodeType.Document :
ListBox1.Items.add"doc :" +n.Name+(/t val"+n.Value)
break
/************************************/
case XmlNodeType.Attribute:
ListBox1.Items.add"doc :" +n.Name+(/t val"+n.Value)
break;
/******************************************/
case XmlNodeType.Text:
ListBox1.Items.add"doc :" +n.Name+(/t val"+n.Value)
break;

}
if(n.Attribute !=null)
{
foreach(XmlAttribute a in n.Attribute)
show_node(a);

}
foreach(XmlNode m in n.ChildNodes)
show_node(m);

}

}

جرب هذه الاكواد وستفهم اكثر مما انا كاتب ان شاء الله ولو فى مشاكل انا معك

#8
اقتباس
طبعا الموضوع أكبر كده بس ده مجرد توضيح فقط

أنا أعتذر عن عدم موافتك بالتفاصيل لأن المشروع من سنتين

و كمان انا في الجيش مش هقدر أرسلك المشروع

بالتوفيق

مشكووور اخوي أحمد الباز واتمنالك التوفيق إن شاء الله

اقتباس
جرب هذه الاكواد وستفهم اكثر مما انا كاتب ان شاء الله ولو فى مشاكل انا معك

مشكوراخوي admin_cs على المثال والشرح جزالك الله خير

انا الحمد لله استطعت امس الوصول لحل و التغلب على المشكله التي كانت تواجهنى وكنت احتاج استخدم XML

في مشروعي و الاكواد التي كتبتها سوف تساعدني بكل تأكيد

هذا الموضوع مغلق.

مواضيع مشابهة