• 0
RCdevil

أين وصل Natural Language Processing؟

سؤال

السلام عليكم يا شباب

اولا اشكركم على هذا المنتدى الرائع الذي يحتوي على العديد من الخبراء

سؤالي حول امكانية استخدام الكمبيوتر في معالجة نصوص يكتبها البشر

وحتى نبسط الامور لنفرض انها بالانجليزي

اين وصل العلم في هذا المجال؟ وماهي الطرق المتوفرة؟

الذي اريد الوصول إليه هو تصنيف الرسائل الكترونيا بواسطة معرفة محتوى الرسالة.

(يعني اذا الرسالة تحتوي على شكوى تذهب لقسم الشكاوي، واذا طلب منتج تذهب لقسم المبيعات...الخ)

شخصيا لا اعلم جامعة عربية تدرس في هذا المجال. هل يوجد لدينا هنا في هذا المنتدى اي خبير عن NLP ؟

2

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

41 إجابة على هذا السؤال .

  • 0

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

اذا كنت تريد تصنيف الرسائل الى أقسام ثابتة تعرفها مسبقاً فالمشكلة هي Classification ، أما اذا لا تعرف الأقسام وتريد أن يتم انشائها على حسب الحاجة فتسمى المشكلة Clustering .

هناك الكثير من خوارزميات الClassification لكن اعتقد أن أشهرها هي k-nearest neighbor algorithm وبشكل عام الخوارزميات هنا تحتاج منك أن تقدم مجموعه من الأمثلة وتقوم بتحديد المخرج لها حتى يتم التعلم بناء على هذه الأمثلة .

أما خوارزميات الClustering فلا تحتاج لأي أمثلة مسبقة، وأعتقد أن أشهر خوارزمية هي k-means clustering

كimplemention هناك الكثير من المكتبات (بالجافا) تسهل لك استخدام هذه الخوارزميات:

http://lucene.apache.org/mahout/

http://www.cs.waikato.ac.nz/ml/weka/

Java Open Source NLP and Text Mining tools

أيضا الروابط السابقة من الويكي تحتوي على تطبيق تلك الخوارزميات بلغات مختلفة .. ويمكنك البحث أكثر..

حالياً لم اقم بعمل تطبيق الى الآن يطبق هذه الخوارزميات، ولكن ان شاء الله سأضع فور ما انتهي من الدراسة.

والله الموفق،

تم تعديل بواسطه Wajdy Essam
3

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

لا اظن ان k-nn ستحل مشكلتي والمشكلة في رايي ان الclassification التي لا تعتمد على natural language processing مثل k-NN و naive bayes ممكن يتم خداعها وفيها نسبة خطأ غير ثابتة واحيانا تكون عالية

يعني مثلا، إذا قال لي شخص التالي:

i want to complain about a product

ونفرض ان كلمة complain تكررت كثيرا في رسائل الشكاوي في training data

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

لكن تصور أن احدهم كتب مثلا

i do NOT want to complain about a product

في هذه الحالة سيتم تصنيفها بالخطأ كرسالة شكاوي..... هنا المشكلة، وهنا الحاجة إلى NLP او ذكاء اصطناعي يقوم بمعرفة "المعنى"

اعلم ان تطبيق NLP مطلق (مطلق يعني يفهم كل شيء في عالمنا) صعب جدا بل مستحيل حتى الآن لان هناك احتمالات عديدة واحيانا نستخدم تشبيهات لغوية يضيع فيها الحاسب

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

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

ماهي فروع الـNLP ... فرع واحد منهم هو statistical NLP ماذا عن البقية؟

الذي اريد انشائه نظام نظيف دقيق مع نسبة خطأ ضئيلة جدا جدا.. احتمال حدوث الخطأ يجب ان تكون شبه معدومة

وجزيتم خير الجزاء على مجهودكم ووقتكم الذي تبذلوه لمساعدتي سلفا

1

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

السلام عليكم ...

لا أريد أن أفتي في موضوع لا أعرف عنه إلا النذر اليسير :)

لماذا تعتقد أن naive bayes غير ناجحة في هذا الموضوع؟

مثلاً, FogBugz تستخدمها لتصنيف الرسائل الواردة إلى فريق التطوير تلقائياً. و هنا ورقة من نفس الشخص الذي قام بعمل Implementation لهذه الميزة فيه.

1

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

وعليكم السلام يا خالد.. افتي براحتك يا عم ربما تكشف الزنقة عى كيبوردك الكريم

naive bayes بسيط وسهل التطبيق (سبب انتشاره) لكن مشكلته ان جودة التصنيف غير ثابته. لانه يحتاج إلى training في البداية... واعتمادا على جودة training ستكون النتيجة النهائية

يعني في البداية سيكون التصنيف يدويا، وبعدها عندما يتعلم الجهاز يقوم بالتصنيف الصحيح

المشكلة ان التعلم اذا كان خطأ سيفسد التصنيف، والنتيجة رسائل مصنفة تصنيف خاطئ.. واذا تم تصنيف الرسائل بشكل خاطئ ربما يصرف معاشي في شكل خاطئ ايضا لان المدير ليس اذكى بكثير فمخه شغال naive bayes ايضا

المشكلة الأخرى انه حتى بعد تصحيح المشاكل والتصنيف اليدوي، التصنيف غير مستقبر... يعني التعلم سيحيد عن مساره شيئا فشيئا مع مرور الزمن... وبعد فترة سنحتاج إلى تصحيح الاخطاء يدويا من جديد

واذا حاد التعلم عن المسار سيكون معدل تسارع الخلل في التعلم اكبر كل مرة.. لذا التدخل البشري يجب ان يكون سريعا حتى تقل عدد الرسائل التي تحتاج تصنيف يدوي

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

اشكرك جزيلا على ردك السريع (نسبيا)... يبدو ان المنتدى نشيط...

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

قرات الورقة من fogbugz التي تعرض tournament bayes... لكن عيبها (الذي لم يذكره الكاتب) ان ترتيب تصفيات الـtournament سيؤثر في النتيجة

يعني التصنيف غير مستقر

يعني نفس قاعدة البيانات ونفس training سيؤدي إلى نتائج مختلفة باختلاف ترتيب الاقسام

مثلا spam / family / girlfriend سيكون مختلف مقارنة ب family / girlfriend / spam

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

المنتدى يبدو في سبات عميق (انخدعت في البداية).. كل مافي جعبة خبراء المنتدى هو knn و bayes فقط؟

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

المنتدى يبدو في سبات عميق (انخدعت في البداية).. كل مافي جعبة خبراء المنتدى هو knn و bayes فقط؟

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

ساضع مشاركتي في موضوعك لاحقا ان شاء الله ..

بالتوفيق .

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

سؤالي حول امكانية استخدام الكمبيوتر في معالجة نصوص يكتبها البشر

وحتى نبسط الامور لنفرض انها بالانجليزي

اين وصل العلم في هذا المجال؟ وماهي الطرق المتوفرة؟

هل تريد الاجابة قبل ان تطرح السؤال اما اثناء كتابتك للسؤال ام بعد طرح السؤال

العلم يتطور كل يوم والتطبيقات والافكار الابداعية كثيرة وتتطور بسرعة .... تحتاج لوقت طويل حتى تحصر ماتم انجازه

بمعنى ادق تحتاج ان تتخصص فى هذه النقطة من العلم بشكل يمكن ان تطلق عليه انك باحث فى هذا المجال

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

حين تعاملت مع هذا الموضوع من خلال مشروع ال Supernova

http://www.codeproject.com/KB/winsdk/supernova.aspx

وجدت ان المشكلة الكبيرة تكمن فى

1 - الاداء Performance

2 - التعارض فى تحديد المعنى Conflict

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

بالمثل تجد معالجة اللغات الطبيعية تمر بهذه الحالة حيث لايتم تحديد المعنى الا اجمالا وربط الامور ببعضها

كمان ان فضاء الكلمات كبير جدا مما يجعل الاداء تحدى كبير بالنسبة لك

لكن من حسن الحظ يمكن ان تحقق تقدم وانجاز كبير اذا حدد الغرض المطلوب بالتحديد وركزت عليه

بمعنى تستخدم معالجة اللغات الطبيعية لغرض محدد يقلل من التعارضات ومن فضاء الكلمات.

هذه قائمة بمشاريع الذكاء الصناعى فى موقع sourceforge.net

http://sourceforge.net/softwaremap/?&fq%5B%5D=trove%3A133

ان شاء الله رب العالمين تكون مفيدة

والله الموفق

1

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

اخى الكريم

يمكنك ايضا متابعة هذا الموضوع

http://www.arabteam2000-forum.com/index.php?showtopic=216924

اذا تابعته حتى النهاية ستجد شرح عملى عن استخدام Rule based Expert System

من اجل معالجة الكلمات وتحديد المعنى

والله الموفق

تم تعديل بواسطه PWCT Maker
0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

PWCT Maker

كيف بنيت الـparse tree او part of speech tagger؟ اول هل بنيته بالاساس؟

مشروع الsupernova ليس natural language processing

الsyntax قريبة من لغة البشر.. لكنها ليست لغة البشر لانك مازلت مجبر انك تتبع syntax معينة

ربما تكون فيها مرونة لحد بسيط وتسمع بعدة طرق.. لكن هذا لا يعني تسميته natural lang processing

عندما تستخدم natural language processing المفروض ان اللغة تضع من نفسها tagging، والتي من خلالها يوضح لنا اين هو الاسم والفاعل والمفعول والوصف...الخ

ومن خلال معرفة هذه الامور بالاضافة الى خواص الاشياء، يمكنها تحديد طرق التعامل مع بعضها البعض

هل جربت stanford POS tagger؟

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

كيف بنيت الـparse tree او part of speech tagger؟ اول هل بنيته بالاساس؟

مشروع الsupernova ليس natural language processing

الsyntax قريبة من لغة البشر.. لكنها ليست لغة البشر لانك مازلت مجبر انك تتبع syntax معينة

ربما تكون فيها مرونة لحد بسيط وتسمع بعدة طرق.. لكن هذا لا يعني تسميته natural lang processing

عندما تستخدم natural language processing المفروض ان اللغة تضع من نفسها tagging، والتي من خلالها يوضح لنا اين هو الاسم والفاعل والمفعول والوصف...الخ

ومن خلال معرفة هذه الامور بالاضافة الى خواص الاشياء، يمكنها تحديد طرق التعامل مع بعضها البعض

لاداعى لان تتسرع اخى الكريم

ال grammer الخاص بالسوبرنوفا مبنى على Context sensitive يعنى يتم تحليل الجملة بناءا على السياق

مثلا


i want window and the window title is i want window.

امر مقبول من اللغة ينشى نافذة تحمل العنوان i want window ولاحظ ان عنوان النافذة هو نفسه الامر المستخدم لانشائها

هذا مثال بسيط ليس اكثر لتوضيح طريقة العمل داخل اللغة

يمكنك اخى الكريم الاطلاع على هذا الكتاب

http://www.kutub.info/library/book/6346

فقد شرحت فى الباب الاول طريقة العمل كيف تتم

حيث تجد ان

المبدا واحد..... حيث يمكن ان تتوسع به كما تريد ليناسب التطبيق الذى تريد ان تقوم به

انا كنت متقيد ب Syntax معين لانى لا اقوم بعمل برنامج chat مع الحاسب

لان الغرض من السوبرنوفا Supernova هو البرمجة وكتابة برنامج وليس ال Chat

هل جربت stanford POS tagger؟

لقد بنيت السوبرنوفا من الصفر باستخدام تقنية البرمجة بدون كود

http://doublesvsoop.sourceforge.net

واستخدمت من اساليب الذكاء الاصطناعى ال Rule Based Expert System

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

فى صورة قابلة للتنفيذ.

والله الموفق

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

الذي اريد الوصول إليه هو تصنيف الرسائل الكترونيا بواسطة معرفة محتوى الرسالة.

(يعني اذا الرسالة تحتوي على شكوى تذهب لقسم الشكاوي، واذا طلب منتج تذهب لقسم المبيعات...الخ)

ممكن كحل مؤقت لحين ان تطبق اساليب الذكاء الصناعى ان تكتب فى موقع الشركة

(عزيزى المستخدم يرجى تحديد نوع الرسالة والا لن يتم الالتفات لها وستهمل من قبل النظام)

نوع الرسالة : شكوى .... طلب منتج ..... إلخ

يختار النوع من Combobox

سؤالي حول امكانية استخدام الكمبيوتر في معالجة نصوص يكتبها البشر

وحتى نبسط الامور لنفرض انها بالانجليزي

اللغة لم تعد مشكلة فهناك اساليب رائعة يمكن استخدامها

يعنى تكون الرسالة باى لغة مش مشكلة

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

وبالتالى يكون النظام قادر على التعامل مع اى لغة

ومش تنسى تشكر شركة جوجل الرائعة :)

بس طبعا هيكون الانترنت شرط اساس فى عمل التطبيق

ممكن كحل مؤقت لحين ان تطبق اساليب الذكاء الصناعى ان تكتب فى موقع الشركة

(عزيزى المستخدم يرجى تحديد نوع الرسالة والا لن يتم الالتفات لها وستهمل من قبل النظام)

نوع الرسالة : شكوى .... طلب منتج ..... إلخ

يختار النوع من Combobox

ملاحظة :-

حتى لو هتستخدم الذكاء الصناعى

يفضل ايضا ان تضع هذا ال Combobox

لكى لايتدخل الذكاء الصناعى الا فى الضرورة فقط

لان هناك اساليب فى الذكاء الصناعى دقتها ليست 100% حتى تعطى اداء معقول نسبيا

وبالتالى لاتلجا لشىء غير دقيق 100% الا عند الضرورة فقط

والله الموفق

تم تعديل بواسطه PWCT Maker
0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

اين وصل العلم في هذا المجال؟ وماهي الطرق المتوفرة؟

معالجة اللغات الطبيعية تحدى لم ينتهى بعد ومازالت هناك ابحاث كثيرة للتقدم فى هذا المجال

والمشاكل التى تواجه الباحثين مثل

1 - الاداء Performance

2 - التعقيد Complexity

بالاضافة الى الدقة فى النتائج

اما بخصوص الطرق المتوفرة فيمكنك الرجوع للمراجع وهناك الكثير من الكتب فى هذا التخصص

وايضا يمكنك الاطلاع على ال Wikipedia فهناك مقالات عن هذا التخصص

http://en.wikipedia.org/wiki/Natural_language_processing

والله الموفق

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

شكرا للرد لكن مثال supernova لا يفيدني في natural language processing لان الsyntax الخاصة به ليست natural بل محددة.

الفرق بين supernova و C هو فقط الاختلاف في الsyntax. وكلاهم ملزم باتباع syntax غير طبيعية اجباريا.

وكذلك C تعتبرcontext sensitive لكن الفرق هو في الكيفية. وcontext sensitivity في جميع الاحوال ليست حدا فاصلا بين NLP وغيره.

طبعا لا اريد C او supernova ان تكون natural language وقصدي هو فقط حتى اوضح ماذا اعني ب natural language. كما ذكرت supernova ليس برنامج chat. ولهذا السبب اكرر واقول أن supernova ليس علاقة بسؤالي.

ستكون NLP عندما تكون الsyntax طبيعية او natural كالتالي:

I want a window to be created with "foo" as its title

Create a window that is titled foo

...etc

لاحظ ان الsyntax غير الزامية والهدف هو المعنى الطبيعي، وهذه تسمى natural language.

ملاحظة :-

حتى لو هتستخدم الذكاء الصناعى

يفضل ايضا ان تضع هذا ال Combobox

لكى لايتدخل الذكاء الصناعى الا فى الضرورة فقط

هذا الكلام غير صحيح. المستخدمون كثيرا مايختارون combobox خاطئة. والمنتديات خير مثال (لاحظ الاعضاء الذين يكتبون مواضيع في اقسام خاطئة)

للعلم combobox موجودة لكن الزبائن يختارون اقسام خاطئة. لذا نريد تحويله الى تصنيف تلقائي.

1

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

عودة إلى قلب الموضوع (اتمنى ان يساعدني من هو ملم بNatural Language Processing )

القضية ان هناك رسائل بريدية تصل وتصنيفها يدويا مكلف وغير دقليل لذا اردت تطبيق NLP ضيق في عالم صغير مع احتمالات قليلة للتبسيط.

عندما يصل الايميل، اقوم بإرساله إلى Part of Speech Tagger، وهذا يقوم بتحويل نص مثل:

I saw the saw

إلى هذا بعد اضافة الترميزات:

I_PRP saw_VBD the_DT saw_NN

لاحظ فأنا أعلم الآن أن كلمة saw الاولى فعل ماضي (VBD)، وكلمة saw الاخيرة اسم (معناه منشار NN) هذا POS ترميز Penn Treebank tagset

مثال أقرب للواقع:

My laptop is dead

سيكون ناتج الترميز كالتالي:

My_PRP$ laptop_NN is_VBZ dead_JJ

الآن عندما أقوم بإنشاء برنامج المطلوب مني هو الاستفادة من هذه الرموز او الـtags ليتصرف البرنامج كالمطلوب.

مثلا.. طريقة من الطرق الي بفكر فيها هي أن كل adjective (اي _JJ) ستصف آخر noun (اي _NN).. وهكذا سيتمكن البرنامج بمعرفة أن الرسالة تصف laptop بـdead لأن laptop آخر NN وردت قبل JJ.

وبما ان العالم صغير ومبسط، ممكن ابني قاعدة بيانات تحتوي على جميع حالات laptop مثل functional, disabled, down, broken الخ

السؤال اريد معرفة ماهي أحدث الطرق المتعارف عليها حديثا للتعامل مع هذه الحالة

تم تعديل بواسطه RCdevil
0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

السؤال اريد معرفة ماهي أحدث الطرق المتعارف عليها حديثا للتعامل مع هذه الحالة

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

لكن لامانع ان اوضح لك الطريقة بشكل عملى

انت يمكن ان تستخدم من اساليب الذكاء الصناعى Rule Based Expert System

يعنى تقوم بعمل نظام خبير ستكون مهمة قراءة الكلمات وتقسيمها الى جمل وربطها معا والحكم عليها

الوحدة الاساسية فى هذا النظام هى القاعدة Rule

ويتم العمل على المراحل التالية

1 - قراءة الكلمة ثم تصنيفها الى فئة معينة Classifiation

2 - ربط الكلمات بعد تصنيفها مع مراعاة السياق Context لتحديد جملة معينة Sentence

3 - اثناء عملية التصنيف والتحويل الى جمل يمكن التدخل فى الحالات الخاصة والتصرف بالشكل المطلوب تبعا لقواعد يتم اضافتها

وبهذا تتحكم فى كل شىء وتحصل على النتيجة المطلوبة

لوسمحت ركز معايا شوية

جملة مثل


i want window and the window title is i want window

يقوم محرك السوبرنوفا بتصنيف كل كلمة الى مجال معين Class او فئة معينة اولا

post-167987-021389600 1284973424_thumb.j

لاحظ فى الصورة السابقة يتم تصنيف الكلمات وحين يحين تطبيق قاعدة معينة يتم الربط بين الكلمات بعد تصنيفها

القواعد كلها معا تمثل ال KB او ال Knowledge base التى يعتمد عليها النظام

كلما كان هذه القواعد اكبر حجما ودقة كلما كان النظام اذكى فى التصرف

post-167987-033802500 1284973435_thumb.j

لاحظ فى الصورة السابقة يتم تحديد السياق Context الذى يمكن ان ياتى به تصنيف بعد تصنيف اخر

وبالتالى تتحكم فى تريتب الكلمات وما يمكن ان يوثر ذلك على المعنى

فنفس الكلمة يمكن ان تاتى باكثر من معنى اذا تغير السياق

post-167987-092090000 1284973445_thumb.j

فى هذه الصورة اوضح انه يمكن ان تستخدم شىء مثل مفاتيح التحكم Switches

تحدد فيها السياق الذى يمكن ان تسمح به الكلمة التالية

مثل i want تجعلك تتوقع ان الكلمة القادمة ستكون مصنفة ك Object مثل window او button وهكذا

post-167987-036501400 1284973457_thumb.j

الصورة السابقة توضح انه يمكن ان تحول حالة النظام (تصنيفه لكلمات الى نوع محدد)

الى حالة اخرى (تصنيف اخر) يغير فى طريقة التعامل مع الجملة

اى مرونة كاملة فى المعالجة تتيح لك ان تتحكم فى كل شىء

ماذا تريد اكثر من ذلك حتى تعالج الحمل ؟

فقط كل ماعليك ان تقوم بعمل نظام خبير Expert System

والله الموفق

تم تعديل بواسطه PWCT Maker
0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

الأخ RCdevil :

يرجى تحديد اللغة التي تريد التعامل معها ؟ الإنجليزية ام العربية ؟

بالنسبة للـ POS tagger فهناك الكثير للغة الإنجليزية وأعتقد أنك تعرفها اكثر منا حيث أنك تبحث في هذا الموضوع ..

منها ما ذكرته Stanford POS tagger وهو متوفر لأكثر من لغة منها الإنجليزية والعربية والصينية و ..

لكنه ليس جيداً بما فيه الكفاية للعربية (على الأقل هذا من تجربتي ).

بالنسبة للعربية هناك AMIRA 2.0 لـ Mona Diab وهو رائع

وهناك MADA-TOKAN للمتميز Nizar Habash

وبالنسبة لـ rule based approach يمكنك إستخدام XLE والجزء الخاص باللغة العربية من Mohammed Attia

كلها تحتاج إلى license . إن كنت تقوم ببحث في جامعة أو معهد أو مركز أبحاث فسيسهل عليك الحصول عليها أما بالنسبة للأغراض التجارية فربما تصبح الأمور معقدة نوعاً ما ..

طبعا هذا بالنسبة لـ POS tagger فقط

ما تريده في ردك الأخير شئ له علاقة بالـ dependency structure يمكن الحصول عليه من XLE ...

راجع الرابط هنا وطبق بعض الأمثلة

http://decentius.aksis.uib.no/logon/xle.xml

مثلا.. طريقة من الطرق الي بفكر فيها هي أن كل adjective (اي _JJ) ستصف آخر noun (اي _NN).. وهكذا سيتمكن البرنامج بمعرفة أن الرسالة تصف laptop بـdead لأن laptop آخر NN وردت قبل JJ.

سأخبرك بشئ لا أعلم قد يفيدك أو لا ... أنا ابحث في الـ ontology learning وجملة كتلك نقوم بتحويلها إلى SubjToClass_PredToSlot_DObjToRange وبذا نحصل على Class, Slot, Range في حالتك تريد Class & range أي العلاقة بين Subject & Direct Object .

كنت شاهدت فيديو لباحث أسباني بتحدث عن Text Categorization بالاعتماد على NLP ساحاول البحث عنه مرة أخرى ..

هناك أبحاث أخرى عن Arabic POS Tagger منها من استخدم HMM وكانت النتائج جيدة لكن لن تستطيع الحصول على Demo أو الكود الخاص بها. بل إن البعض سيخبرك أن أبحاثه مر عليها زمن ولم تعد لديه المعلومات الخاصة بها ...

lممكن أيضاً تجرب حظك مع maltparser فعلى ما يبدو جيد للـ Dependency Structure ..

حاول تبحث عن Text Classification , Text Categorization وغيرها ستجد الكثير من الأبحاث في هذا المجال ...

ما الذي يجعلك تجزم أن الطرق التي ذكرها الأخوة لن تفيدك كثيراً . هل قمت بتجربتها وأعطت نتائج سيئة؟

بالنسبة للغة الإنجليزية فالأبحاث أكثر وأفضل ..

شئ أخر :لا تنتظر من الآخرين أن يقدموا لك كل شئ على طبق من ذهب.

تم تعديل بواسطه YaSeenTA
1

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

PWCT Maker النوفا الخارق لا يتطرق للnatural language اطلاقا وخارج الموضوع.

عندما تقول expert-system فهو في منظور natural language processing لا يعني سوى if-else-system.

الفكرة تقليدية ولا تحل المشكلة بسهولة.

اذا اردت تطبيق rule-based system فستكون الاحتمالات كثيرة جدا وهذا مافعله البعض 1980s وكان معقدا. ولا يصح باي شكل من الاشكال ان تقول انه نمط حديث.

لكن بعدها اتجه الناس إلى طرق احصائية لتجنب خلق rules البغيضة، وهذا 1990s اذا دماغي شغال كويس. ومنها tagging يدوي على مجموعة نصوص وثم ارساله الى machine learning ليتعلم احتمال حدوث Noun في وضعية معينة واحتمالية حدوث Adjective في وضعية اخرى...الخ.

YaSeenTA

شكرا على ردك. كلامك يمشي في الموضوع.

اللغة هي الانجليزية كما ذكرت في اول الموضوع.

بالنسبة للـPOS Tagger و HMM، هل تقصد استخدام HMM في تكوين POS Tagger؟ اذا كان هذا قصدك فهذه ليست مشكلتي لانني سعيد جدا مع Stanford POS Tagger ولا انوي انشاء tagger بديل حتى استخدم HMM او غيره.

مشكلتي هي أنني لدي نص، وهذا النص تم تحويله إلى tagged text بفضل stanford pos tagger. والآن أريد من برنامجي أن يدرس الtagged text ويستخلص المعنى.

على سبيل المثال لو اردنا استخدام rule-based system فستكون العملية معقدة جدا لانني ساحتاج لوضع قوانين كثيرة جدا. مثلا:

if Noun is "computer" and the closest adjective is "broke/dead" then send to IT department

if the phrase is "WP" and has a noun equal to "price" or "product" then send to Sales department

...ألخ

طبعا هذه قوانين ناقصة جدا وحتى يعمل النظام بشكل نظيف يجب علي يدويا دراسة الرسائل القادمة بشكل جيد، وثم اكتب القوانين واجربها، والمجهود سيكون جبار..

لذا هل توجد حلول أخرى بديلة لاستخلاص معنى الرسالة... طرق مبنية على الاحصاء مع NLP في نفس الوقت، أو اي نصيحة أخرى..

يعني عوضا من انشاء Naive Bayes filter، ممكن نقوم بانشاء Smart Bayes filter (ان صح التعبير) بحيث يربط بين الكلمات ومعناها في الجملة (لان naive bayes يقوم بالتعامل مع كل كلمة على انها مجردة وهذا غير صحيح لغويا).

ما الذي يجعلك تجزم أن الطرق التي ذكرها الأخوة لن تفيدك كثيراً . هل قمت بتجربتها وأعطت نتائج سيئة؟
لانني اعلم ما تحدثوا عنه وذكرت السبب وراء ضعفها
0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

نسيت اضيف:

YaSeenTA

سأخبرك بشئ لا أعلم قد يفيدك أو لا ... أنا ابحث في الـ ontology learning وجملة كتلك نقوم بتحويلها إلى SubjToClass_PredToSlot_DObjToRange وبذا نحصل على Class, Slot, Range في حالتك تريد Class & range أي العلاقة بين Subject & Direct Object .

ممكن تقول لي ما اسم هذا الشيء لاقرا المزيد عنه.. ماذا يعني SubjToClass_PredToSlot_DObjToRange

تم تعديل بواسطه RCdevil
0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

PWCT Maker النوفا الخارق لا يتطرق للnatural language اطلاقا وخارج الموضوع.

عفوا اخى الكريم

.... المقولة غير صحيحة.... والعلاقة بين النظم الخبيرة ومعالجة اللغات الطبيعية علاقة قوية جدا وتحقق نتائج رائعة

اذا كنت تعرف ماذا تفعل وتمتلك الخبرة العلمية لتطبيق مفاهيم هذا التخصص بشكل سليم

ولكن ربما انك تريد شىء جاهز ....

عامة ان معالجة اللغات الطبيعية نقطة بحث مازالت تحتاج الكثير من الابحاث

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

والله الموفق

تم تعديل بواسطه PWCT Maker
0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

لدى مجموعة من الكتب فى هذا التخصص

سوف اشاركها فى الموضوع وان شاء الله تفيدك

تم تعديل بواسطه PWCT Maker
0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

الكتاب الاول

post-167987-014614000 1285082807_thumb.p

لتحميل الكتاب

Book1_NLP.zip

والله الموفق

تم تعديل بواسطه PWCT Maker
0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

في ردي فقط وددت أن أذكر لك ما صار معي بالنسبة للغة العربية. وحيث أنك تعاملك مع اللغة الإنجليزية فالأبحاث بالأطنان - أقصد كثيرة- .

بالنسبة لـ Stanford POS Tagger فهو جيد للغة الإنجليزية و هناك غيره الكثير

إستخدام rule-based approach ليس بذلك السوء , هو فعلاً كان منتشر أكثر في فترة الثمانينات لكن ما زال هناك من يبحث فيه إلى الآن ..

لا أعلم مدى كونrule-based approach نافع لحالتك . بالطبع هو مكلف ويحتاج وقت , لكن قد تحتاج لذلك أحيانا . نفس الشئ حين تحتاج لعمل training set و testing set كافية للحصول على نتائج مرضية ...

SubjToClass_PredToSlot_DObjToRange

هذه إحدى الـ mapping rules التي يستخدمها أحد الـ ontology learning tool وهي تقوم بعملية map لـ Subject , Predicate, Direct Object إلى Class, Slot, Range على التوالي . والأخيرة تستخدم في عالم الـ ontology.

في الـ ontology learning from text أول خطوة Term extraction تعتمد على

Linguistic processing وهذه تختص بـ NLP preprocessing

و statistical processing : وهنا يمكن إستخدام TFIDF أو chi-square أو Mutual Information ..

في حالتك الـ NLP preprocessing هو ذات الشئ . لكن كيفية الإستفادة منه هي مربط الفرس كما أشرت -أنت- .

أعتقد هناك بعض البحوث تطرقت لإستخدام NLP في عملية الـ Text classificationوعلى الأغلب أنك قرأتها وبقي عليك كيفية الإستفادة منها.

البحث عن شئ جاهز وكامل للموضوع غير مجدي لباحث.

على الأقل هناك جزئية في الموضوع هي ما ستقوم -أنت- به إعتماداً على جزئيات أخرى موجودة من أبحاث سابقة ..

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

YaSeenTA أخ

لا أريد كما قال الأستاذ خالد أن أفتي فيما لا أعلم لكن مجرد رأي : إحنا حسب ما درسنا في الأنتولوجي يتم تكوينها لمجال محدد ولكن محتوى الرسائل مختلف جدا وبالتالي المفاهيم المستخرجة من النص تكون كثيرة وغير مترابطة.فعلى أي أنتولوجي تعتمد في تحديد نوعية الرسالة ؟

تم تعديل بواسطه نينا
0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

من فضلك سجل دخول لتتمكن من التعليق

ستتمكن من اضافه تعليقات بعد التسجيل



سجل دخولك الان

  • يستعرض القسم حالياً   0 members

    لا يوجد أعضاء مسجلين يشاهدون هذه الصفحة .