تحليل المشاعر دقيق بشكل مدهش ويمكنك إنشاء تطبيق Tkinter البسيط هذا لتجربته.

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

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

وحدة Tkinter و vaderSentiment

يسمح لك Tkinter بإنشاء تطبيقات سطح المكتب. يقدم مجموعة متنوعة من الأدوات مثل الأزرار والتسميات ومربعات النص التي تسهل تطوير التطبيقات. يمكنك استخدام Tkinter ل إنشاء تطبيق قاموس بلغة Python أو ل قم بإنشاء تطبيق الأخبار الخاص بك الذي يقوم بتحديث القصص عبر واجهة برمجة التطبيقات.

لتثبيت Tkinter ، افتح Terminal وقم بتشغيل:

نقطة تثبيت tkinter

VADER (Valence Aware Dictionary and sEntiment Reasoner) عبارة عن معجم وأداة لتحليل المشاعر قائمة على القواعد. إنه مبني مسبقًا ويستخدم على نطاق واسع في

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

لتثبيت حزمة vaderSentiment في Python ، قم بتشغيل هذا الأمر الطرفي:

نقطة تثبيت vaderSentiment

كيفية الكشف عن المشاعر باستخدام بايثون

يمكنك العثور على الكود المصدري لهذا البرنامج النموذجي في ملف مستودع جيثب.

ابدأ باستيراد وحدات VADER و tkinter المطلوبة:

من vaderSentiment.vaderSentiment يستورد الشعور بكثافة محلل
من tkinter يستورد *

ثم حدد وظيفة ، امسح الكل(). والغرض منه هو مسح حقول الإدخال ، وهو ما يمكنك القيام به باستخدام ملف يمسح() طريقة من فهرس البداية 0 إلى الفهرس النهائي ، نهاية.

defامسح الكل():
سلبيةField.delete (0، نهاية)
الحذف المحايد (0، نهاية)
إيجابي فيلد. حذف (0، نهاية)
totalField.delete (0، نهاية)
textArea.delete (1.0، نهاية)

تحديد وظيفة ، Discover_sentiment (). استخدم طريقة get لجلب الكلمة التي تم إدخالها في ملف textArea القطعة وإنشاء كائن من الشعور بكثافة محلل فصل. استخدم ال قطبية على النص الذي جلبته وتطبيق خوارزمية تحليل المشاعر VADER.

defكشف المشاعر():
الجملة = textArea.get ("1.0", "نهاية")
sentiment_obj = محلل المشاعر ()
sentiment_dict = sentiment_obj.polarity_scores (جملة)

استخراج درجة المشاعر السلبية ("نيج") وتحويله إلى نسبة مئوية. أدخل القيمة التي تم الحصول عليها في المجال السلبي بدءًا من الموضع 10. كرر نفس العملية لدرجة الشعور المحايد ("جديد") ودرجة المشاعر الإيجابية ('نقاط البيع').

 string = str (sentiment_dict ["نيج"] * 100)
NegativeField.insert (10، خيط)

string = str (sentiment_dict ["جديد"] * 100)
إدراج حقل محايد (10، خيط)

string = str (sentiment_dict ['نقاط البيع'] * 100)
إيجابيةField.insert (10، خيط)

استخرج قيمة المفتاح المركب الذي يحتوي على المشاعر العامة للجملة. إذا كانت القيمة أكبر من أو تساوي 0.05 ، تكون الجملة موجبة. إذا كانت القيمة أقل من أو تساوي -0.05 ، تكون الجملة سالبة. للقيم بين -0.05 و 0.05 ، يكون بيانًا محايدًا.

لو العاطفة ['مُجَمَّع'] >= 0.05:
سلسلة = "إيجابي"
أليف العاطفة ['مُجَمَّع'] <= - 0.05:
سلسلة = "سلبي"
آخر:
سلسلة = "حيادي"

أدخل النتيجة في ملف بشكل عام من المركز العاشر:

 totalField.insert (10، خيط)

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

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

لو __name__ == "__رئيسي__":
واجهة المستخدم الرسومية = Tk ()
gui.config (الخلفية ="# A020f0")
عنوان واجهة المستخدم الرسومية ("محلل المشاعر VADER")
علم الهندسة ("400 × 700")
enterText = التسمية (واجهة المستخدم الرسومية ، النص ="أدخل الجملة الخاصة بك:"، الخط ="arial 15 bold"، bg ="# A020f0")
سلبي = تسمية (واجهة المستخدم الرسومية ، نص ="النسبة المئوية السلبية:"، الخط ="arial 15"، bg ="# A020f0")
محايد = تسمية (واجهة المستخدم الرسومية ، نص ="نسبة Nuetral:"، الخط ="arial 15"، bg ="# A020f0")
إيجابي = تسمية (واجهة المستخدم الرسومية ، نص ="النسبة المئوية الإيجابية:"، الخط ="arial 15"، bg ="# A020f0")
بشكل عام = التسمية (واجهة المستخدم الرسومية ، النص ="الجملة الإجمالية هي:"، الخط ="arial 15"، bg ="# A020f0")
textArea = النص (واجهة المستخدم الرسومية ، الارتفاع =5العرض =25، الخط ="arial 15"، bg ="# cf9fff")
تحقق = زر (واجهة المستخدم الرسومية ، نص ="التحقق من الشعور"، bg ="# e7305b"، الخط = ("أريال", 12, "عريض") ، الأمر = detect_sentiment)
واضح = زر (واجهة المستخدم الرسومية ، نص ="واضح"، bg ="# e7305b"، الخط = ("أريال", 12, "عريض") ، الأمر = clearAll)
خروج = زر (واجهة المستخدم الرسومية ، النص ="مخرج"، bg ="# e7305b"، الخط = ("أريال", 12, "عريض") ، الأمر = الخروج)

حدد أربعة حقول إدخال لمختلف المشاعر وقم بتعيين النافذة الأصلية وأنماط الخطوط.

 سلبيةField = إدخال (واجهة المستخدم الرسومية ، الخط ="arial 15")
المحايد = إدخال (واجهة المستخدم الرسومية ، الخط ="arial 15")
PositiveField = الإدخال (واجهة المستخدم الرسومية ، الخط ="arial 15")
totalField = دخول (واجهة المستخدم الرسومية ، الخط ="arial 15")

استخدم شبكة تتكون من 13 صفًا وثلاثة أعمدة للتخطيط العام. ضع العناصر المختلفة مثل التسميات وحقول إدخال النص والأزرار في صفوف وأعمدة مختلفة كما هو موضح. أضف الحشو اللازم عند الحاجة. تعيين لزج الخيار ل "W" إلى اليسار محاذاة النصوص داخل خليته.

 enterText.grid (row =0، العمود =2، pady =15)
textArea.grid (row =1، العمود =2، بادكس =60، pady =10، لزجة = W)
check.grid (row =2، العمود =2، pady =10)
شبكة سالبة (صف =3، العمود =2، pady =10)
شبكة محايدة (صف =5، العمود =2، pady =10)
شبكة موجبة (صف =7، العمود =2، pady =10)
total.grid (row =9، العمود =2، pady =5)
NegativeField.grid (row =4، العمود =2)
محايد Field.grid (صف =6، العمود =2)
إيجابية حقل.شبكة (صف =8، العمود =2)
totalField.grid (row =10، العمود =2، pady =10)
clear.grid (row =11، العمود =2، pady =10)
Exit.grid (row =12، العمود =2، pady =10)

ال mainloop () تخبر الوظيفة Python بتشغيل حلقة حدث Tkinter والاستماع إلى الأحداث حتى تغلق النافذة.

 gui.mainloop ()

ضع كل الكود معًا ويمكنك استخدام البرنامج القصير الناتج لاكتشاف المشاعر.

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

عند تشغيل هذا البرنامج ، تظهر نافذة محلل المشاعر VADER. عندما اختبرنا البرنامج على جملة إيجابية ، اكتشفه بدقة 79٪. عند تجربة بيان محايد وسلبي ، تمكن البرنامج من الكشف بدقة 100٪ و 64.3٪ على التوالي.

بدائل لتحليل المشاعر باستخدام بايثون

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

يعد IBM Watson NLU أحد أكثر الأدوات شيوعًا. إنه مستند إلى السحابة ، ويدعم عدة لغات ، ويحتوي على ميزات مثل التعرف على الكيانات واستخراج المفاتيح. مع إدخال GPT ، يمكنك استخدام OpenAI API ودمجها في تطبيقاتك للحصول على آراء العملاء الدقيقة والموثوقة في الوقت الفعلي.