|
2 weeks ago | |
---|---|---|
.. | ||
solution | 3 weeks ago | |
README.md | 2 weeks ago | |
assignment.md | 3 weeks ago |
README.md
الترجمة وتحليل المشاعر باستخدام التعلم الآلي
في الدروس السابقة، تعلمت كيفية بناء روبوت أساسي باستخدام TextBlob
، وهي مكتبة تحتوي على تقنيات تعلم آلي خلف الكواليس لأداء مهام معالجة اللغة الطبيعية الأساسية مثل استخراج العبارات الاسمية. أحد التحديات المهمة في اللغويات الحاسوبية هو الترجمة الدقيقة لجملة من لغة منطوقة أو مكتوبة إلى أخرى.
اختبار ما قبل المحاضرة
الترجمة مشكلة صعبة للغاية بسبب وجود آلاف اللغات، ولكل منها قواعد نحوية مختلفة تمامًا. إحدى الطرق هي تحويل القواعد النحوية الرسمية للغة واحدة، مثل الإنجليزية، إلى هيكل غير معتمد على اللغة، ثم ترجمتها عن طريق تحويلها مرة أخرى إلى لغة أخرى. هذه الطريقة تتطلب الخطوات التالية:
- التحديد. تحديد أو تصنيف الكلمات في اللغة المدخلة إلى أسماء، أفعال، إلخ.
- إنشاء الترجمة. إنتاج ترجمة مباشرة لكل كلمة بتنسيق اللغة المستهدفة.
مثال على جملة، من الإنجليزية إلى الأيرلندية
في اللغة "الإنجليزية"، الجملة I feel happy تتكون من ثلاث كلمات بالترتيب:
- الموضوع (I)
- الفعل (feel)
- الصفة (happy)
ومع ذلك، في اللغة "الأيرلندية"، نفس الجملة لها هيكل نحوي مختلف تمامًا - يتم التعبير عن المشاعر مثل "happy" أو "sad" على أنها موجودة عليك.
العبارة الإنجليزية I feel happy
في الأيرلندية ستكون Tá athas orm
. الترجمة الحرفية ستكون Happy is upon me
.
المتحدث الأيرلندي الذي يترجم إلى الإنجليزية سيقول I feel happy
وليس Happy is upon me
، لأنه يفهم معنى الجملة، حتى لو كانت الكلمات وهيكل الجملة مختلفين.
الترتيب الرسمي للجملة في الأيرلندية هو:
- الفعل (Tá أو is)
- الصفة (athas، أو happy)
- الموضوع (orm، أو upon me)
الترجمة
برنامج ترجمة بسيط قد يترجم الكلمات فقط، متجاهلاً هيكل الجملة.
✅ إذا كنت قد تعلمت لغة ثانية (أو ثالثة أو أكثر) كشخص بالغ، ربما بدأت بالتفكير بلغتك الأم، وترجمة المفهوم كلمة بكلمة في ذهنك إلى اللغة الثانية، ثم التحدث بترجمتك. هذا مشابه لما تفعله برامج الترجمة البسيطة. من المهم تجاوز هذه المرحلة لتحقيق الطلاقة!
الترجمة البسيطة تؤدي إلى ترجمات سيئة (وأحيانًا مضحكة): I feel happy
تُترجم حرفيًا إلى Mise bhraitheann athas
في الأيرلندية. هذا يعني (حرفيًا) me feel happy
وهي ليست جملة أيرلندية صحيحة. على الرغم من أن الإنجليزية والأيرلندية هما لغتان يتم التحدث بهما في جزيرتين متجاورتين، إلا أنهما لغتان مختلفتان تمامًا مع هياكل نحوية مختلفة.
يمكنك مشاهدة بعض الفيديوهات حول التقاليد اللغوية الأيرلندية مثل هذا الفيديو
طرق التعلم الآلي
حتى الآن، تعلمت عن نهج القواعد الرسمية لمعالجة اللغة الطبيعية. نهج آخر هو تجاهل معنى الكلمات، و_بدلاً من ذلك استخدام التعلم الآلي لاكتشاف الأنماط_. يمكن أن يعمل هذا في الترجمة إذا كان لديك الكثير من النصوص (مجموعة نصوص) أو نصوص (مجموعات نصوص) في كل من اللغة الأصلية واللغة المستهدفة.
على سبيل المثال، ضع في اعتبارك حالة Pride and Prejudice، وهي رواية إنجليزية معروفة كتبتها جين أوستن في عام 1813. إذا قمت بمراجعة الكتاب باللغة الإنجليزية وترجمة بشرية للكتاب باللغة الفرنسية، يمكنك اكتشاف عبارات في أحدهما تُترجم بشكل اصطلاحي إلى الآخر. ستقوم بذلك بعد قليل.
على سبيل المثال، عندما تُترجم عبارة إنجليزية مثل I have no money
حرفيًا إلى الفرنسية، قد تصبح Je n'ai pas de monnaie
. "Monnaie" هي كلمة فرنسية خادعة، حيث أن 'money' و 'monnaie' ليسا مترادفين. ترجمة أفضل قد يقوم بها إنسان ستكون Je n'ai pas d'argent
، لأنها تنقل المعنى بشكل أفضل بأنك لا تملك المال (بدلاً من 'الفكة' التي هي معنى 'monnaie').
الصورة بواسطة Jen Looper
إذا كان لدى نموذج التعلم الآلي ما يكفي من الترجمات البشرية لبناء نموذج عليها، يمكنه تحسين دقة الترجمات من خلال تحديد الأنماط الشائعة في النصوص التي تم ترجمتها سابقًا بواسطة متحدثين بشريين خبراء في كلا اللغتين.
تمرين - الترجمة
يمكنك استخدام TextBlob
لترجمة الجمل. جرب الجملة الشهيرة الأولى من Pride and Prejudice:
from textblob import TextBlob
blob = TextBlob(
"It is a truth universally acknowledged, that a single man in possession of a good fortune, must be in want of a wife!"
)
print(blob.translate(to="fr"))
يقوم TextBlob
بعمل جيد جدًا في الترجمة: "C'est une vérité universellement reconnue, qu'un homme célibataire en possession d'une bonne fortune doit avoir besoin d'une femme!".
يمكن القول إن ترجمة TextBlob أكثر دقة، في الواقع، من الترجمة الفرنسية لعام 1932 للكتاب بواسطة V. Leconte و Ch. Pressoir:
"C'est une vérité universelle qu'un célibataire pourvu d'une belle fortune doit avoir envie de se marier, et, si peu que l'on sache de son sentiment à cet egard, lorsqu'il arrive dans une nouvelle résidence, cette idée est si bien fixée dans l'esprit de ses voisins qu'ils le considèrent sur-le-champ comme la propriété légitime de l'une ou l'autre de leurs filles."
في هذه الحالة، الترجمة المستندة إلى التعلم الآلي تقوم بعمل أفضل من المترجم البشري الذي يضيف كلمات غير ضرورية إلى النص الأصلي لتوضيح المعنى.
ما الذي يحدث هنا؟ ولماذا TextBlob جيد جدًا في الترجمة؟ حسنًا، خلف الكواليس، يستخدم Google Translate، وهو ذكاء اصطناعي متقدم قادر على تحليل ملايين العبارات للتنبؤ بأفضل النصوص للمهمة المطلوبة. لا يوجد شيء يدوي يحدث هنا وتحتاج إلى اتصال بالإنترنت لاستخدام
blob.translate
.
✅ جرب بعض الجمل الأخرى. أيهما أفضل، الترجمة باستخدام التعلم الآلي أم الترجمة البشرية؟ وفي أي الحالات؟
تحليل المشاعر
مجال آخر يمكن أن يعمل فيه التعلم الآلي بشكل جيد جدًا هو تحليل المشاعر. النهج غير المستند إلى التعلم الآلي لتحليل المشاعر هو تحديد الكلمات والعبارات التي تكون 'إيجابية' و'سلبية'. ثم، عند إعطاء نص جديد، يتم حساب القيمة الإجمالية للكلمات الإيجابية والسلبية والمحايدة لتحديد المشاعر العامة.
هذا النهج يمكن خداعه بسهولة كما قد رأيت في مهمة Marvin - الجملة Great, that was a wonderful waste of time, I'm glad we are lost on this dark road
هي جملة ساخرة ذات مشاعر سلبية، لكن الخوارزمية البسيطة تكتشف 'great'، 'wonderful'، 'glad' كإيجابية و'waste'، 'lost' و'dark' ككلمات سلبية. المشاعر العامة تتأثر بهذه الكلمات المتضاربة.
✅ توقف لحظة وفكر في كيفية تعبيرنا عن السخرية كمتحدثين بشريين. يلعب نبرة الصوت دورًا كبيرًا. حاول قول العبارة "Well, that film was awesome" بطرق مختلفة لاكتشاف كيف تنقل نبرة صوتك المعنى.
طرق التعلم الآلي
النهج المستند إلى التعلم الآلي سيكون جمع نصوص سلبية وإيجابية يدويًا - تغريدات، أو مراجعات أفلام، أو أي شيء حيث أعطى الإنسان تقييمًا ورأيًا مكتوبًا. ثم يمكن تطبيق تقنيات معالجة اللغة الطبيعية على الآراء والتقييمات، بحيث تظهر الأنماط (على سبيل المثال، مراجعات الأفلام الإيجابية تميل إلى احتواء عبارة 'Oscar worthy' أكثر من مراجعات الأفلام السلبية، أو مراجعات المطاعم الإيجابية تقول 'gourmet' أكثر بكثير من 'disgusting').
⚖️ مثال: إذا كنت تعمل في مكتب سياسي وكان هناك قانون جديد قيد المناقشة، قد يكتب الناخبون إلى المكتب برسائل دعم أو رسائل ضد القانون الجديد. لنفترض أنك مكلف بقراءة الرسائل وفرزها في مجموعتين، مع و ضد. إذا كانت هناك الكثير من الرسائل، قد تشعر بالإرهاق عند محاولة قراءتها جميعًا. ألن يكون من الجيد إذا كان بإمكان روبوت قراءة جميع الرسائل نيابة عنك، وفهمها وإخبارك بأي مجموعة تنتمي كل رسالة؟
إحدى الطرق لتحقيق ذلك هي استخدام التعلم الآلي. ستقوم بتدريب النموذج بجزء من الرسائل ضد وجزء من الرسائل مع. النموذج سيميل إلى ربط العبارات والكلمات بالجانب ضد والجانب مع، ولكنه لن يفهم أيًا من المحتوى، فقط أن كلمات وأنماط معينة من المرجح أن تظهر في رسالة ضد أو رسالة مع. يمكنك اختباره ببعض الرسائل التي لم تستخدمها لتدريب النموذج، ومعرفة ما إذا كان يصل إلى نفس النتيجة التي وصلت إليها. ثم، بمجرد أن تكون راضيًا عن دقة النموذج، يمكنك معالجة الرسائل المستقبلية دون الحاجة إلى قراءة كل واحدة.
✅ هل يبدو هذا العملية مشابهة للعمليات التي استخدمتها في الدروس السابقة؟
تمرين - جمل عاطفية
يتم قياس المشاعر باستخدام القطبية من -1 إلى 1، مما يعني أن -1 هي المشاعر الأكثر سلبية، و1 هي المشاعر الأكثر إيجابية. يتم قياس المشاعر أيضًا بدرجة من 0 إلى 1 للموضوعية (0) والذاتية (1).
ألقِ نظرة أخرى على Pride and Prejudice لجين أوستن. النص متاح هنا في Project Gutenberg. المثال أدناه يظهر برنامجًا قصيرًا يحلل المشاعر للجمل الأولى والأخيرة من الكتاب ويعرض قطبية المشاعر ودرجة الموضوعية/الذاتية.
يجب عليك استخدام مكتبة TextBlob
(الموصوفة أعلاه) لتحديد sentiment
(لا تحتاج إلى كتابة حاسبة مشاعر خاصة بك) في المهمة التالية.
from textblob import TextBlob
quote1 = """It is a truth universally acknowledged, that a single man in possession of a good fortune, must be in want of a wife."""
quote2 = """Darcy, as well as Elizabeth, really loved them; and they were both ever sensible of the warmest gratitude towards the persons who, by bringing her into Derbyshire, had been the means of uniting them."""
sentiment1 = TextBlob(quote1).sentiment
sentiment2 = TextBlob(quote2).sentiment
print(quote1 + " has a sentiment of " + str(sentiment1))
print(quote2 + " has a sentiment of " + str(sentiment2))
سترى الناتج التالي:
It is a truth universally acknowledged, that a single man in possession of a good fortune, must be in want # of a wife. has a sentiment of Sentiment(polarity=0.20952380952380953, subjectivity=0.27142857142857146)
Darcy, as well as Elizabeth, really loved them; and they were
both ever sensible of the warmest gratitude towards the persons
who, by bringing her into Derbyshire, had been the means of
uniting them. has a sentiment of Sentiment(polarity=0.7, subjectivity=0.8)
التحدي - تحقق من قطبية المشاعر
مهمتك هي تحديد، باستخدام قطبية المشاعر، ما إذا كان Pride and Prejudice يحتوي على جمل إيجابية تمامًا أكثر من الجمل السلبية تمامًا. لهذه المهمة، يمكنك افتراض أن درجة القطبية 1 أو -1 هي إيجابية أو سلبية تمامًا على التوالي.
الخطوات:
- قم بتنزيل نسخة من Pride and Prejudice من Project Gutenberg كملف .txt. قم بإزالة البيانات الوصفية في بداية ونهاية الملف، تاركًا النص الأصلي فقط
- افتح الملف في Python واستخرج المحتويات كسلسلة نصية
- أنشئ TextBlob باستخدام سلسلة الكتاب
- قم بتحليل كل جملة في الكتاب في حلقة
- إذا كانت القطبية 1 أو -1، قم بتخزين الجملة في مصفوفة أو قائمة للرسائل الإيجابية أو السلبية
- في النهاية، اطبع جميع الجمل الإيجابية والجمل السلبية (بشكل منفصل) وعدد كل منها.
إليك حل نموذجي.
✅ تحقق من المعرفة
- المشاعر تعتمد على الكلمات المستخدمة في الجملة، ولكن هل يفهم الكود الكلمات؟
- هل تعتقد أن قطبية المشاعر دقيقة، أو بمعنى آخر، هل تتفق مع الدرجات؟
- على وجه الخصوص، هل تتفق أو تختلف مع القطبية الإيجابية المطلقة للجمل التالية؟
- “What an excellent father you have, girls!” said she, when the door was shut.
- “Your examination of Mr. Darcy is over, I presume,” said Miss Bingley; “and pray what is the result?” “I am perfectly convinced by it that Mr. Darcy has no defect.
- How wonderfully these sort of things occur!
- I have the greatest dislike in the world to that sort of thing.
- Charlotte is an excellent manager, I dare say.
- “This is delightful indeed!
- I am so happy!
- Your idea of the ponies is delightful.
- الجمل الثلاث التالية تم تصنيفها بقطبية إيجابية مطلقة، ولكن عند القراءة الدقيقة، فهي ليست جمل إيجابية. لماذا اعتقد تحليل المشاعر أنها جمل إيجابية؟
- Happy shall I be, when his stay at Netherfield is over!” “I wish I could say anything to comfort you,” replied Elizabeth; “but it is wholly out of my power.
- If I could but see you as happy!
- Our distress, my dear Lizzy, is very great.
- هل تتفق أو تختلف مع القطبية السلبية المطلقة للجمل التالية؟
- Everybody is disgusted with his pride.
- “I should like to know how he behaves among strangers.” “You shall hear then—but prepare yourself for something very dreadful.
- The pause was to Elizabeth’s feelings dreadful.
- It would be dreadful!
- على وجه الخصوص، هل تتفق أو تختلف مع القطبية الإيجابية المطلقة للجمل التالية؟
✅ أي شخص متمرس في أعمال جين أوستن سيفهم أنها غالبًا ما تستخدم كتبها لانتقاد الجوانب الأكثر سخافة في مجتمع العصر الريجنسي الإنجليزي. إليزابيث بينيت، الشخصية الرئيسية في Pride and Prejudice، هي مراقبة اجتماعية بارعة (مثل المؤلفة) ولغتها غالبًا ما تكون مليئة بالتلميحات. حتى السيد دارسي (الحبيب في القصة) يلاحظ استخدام إليزابيث المرح والماكر للغة: "لقد تعرفت عليك بما يكفي لأعرف أنك تجد متعة كبيرة في التعبير عن آراء ليست في الواقع آرائك."
🚀التحدي
هل يمكنك تحسين Marvin أكثر عن طريق استخراج ميزات أخرى من مدخلات المستخدم؟
اختبار ما بعد المحاضرة
المراجعة والدراسة الذاتية
هناك العديد من الطرق لاستخراج المشاعر من النصوص. فكر في التطبيقات التجارية التي قد تستفيد من هذه التقنية. فكر في كيفية حدوث الأخطاء. اقرأ المزيد عن الأنظمة المتقدمة الجاهزة للمؤسسات التي تحلل المشاعر مثل Azure Text Analysis. جرب بعض الجمل من رواية "كبرياء وتحامل" المذكورة أعلاه، وانظر إذا كان بإمكانها اكتشاف الفروق الدقيقة.
المهمة
إخلاء المسؤولية:
تمت ترجمة هذا المستند باستخدام خدمة الترجمة الآلية Co-op Translator. بينما نسعى لتحقيق الدقة، يرجى العلم أن الترجمات الآلية قد تحتوي على أخطاء أو معلومات غير دقيقة. يجب اعتبار المستند الأصلي بلغته الأصلية هو المصدر الموثوق. للحصول على معلومات حساسة أو هامة، يُوصى بالاستعانة بترجمة بشرية احترافية. نحن غير مسؤولين عن أي سوء فهم أو تفسيرات خاطئة تنشأ عن استخدام هذه الترجمة.