ما هي الطريقة الأكثر فعالية لمقارنة قطعتين من النص في لغة C++ لتحديد المشاعر العامة والنغمة العاطفية؟ على سبيل المثال، كيف يمكنني مقارنة العبارات "أشعر بالسعادة اليوم" و"هذا أسوأ يوم على الإطلاق" لتحديد قطبيتهما العاطفية؟ هل يمكنك تزويدي بنموذج كود C++ لتنفيذ هذه المهمة؟
[كود C++]
#تشمل <iostream>
#تشمل <سلسلة>
#تشمل <الخوارزمية>
#تشمل <ناقل>
#تشمل <fstream>
منطقي إيجابي (std::string str) {
    std::vector<std::string> كلمة إيجابية؛
    الأمراض المنقولة جنسيا::كلمة سلسلة؛
    std::ifstream infile("positive_words.txt"); // ملف يحتوي على قائمة الكلمات الإيجابية
    بينما (ملف >> كلمة) {
        positiveWords.push_back(word);
    }
    // تحويل السلسلة إلى أحرف صغيرة
    std::transform(str.begin(), str.end(), str.begin(), ::tolower);
    // إزالة علامات الترقيم
    str.erase(std::remove_if(str.begin(), str.end(), ::ispunct), str.end());
    // انقسم إلى كلمات
    std::istringstream iss(str);
    std::vector<std::string> الكلمات((std::istream_iterator<std::string>(iss)), std::istream_iterator<std::string>());
    // التحقق من الكلمات الإيجابية
    عدد صحيح = 0؛
    لـ (كلمة تلقائية: كلمات) {
        إذا (std::find(positiveWords.begin(),positiveWords.end(), word)!=positiveWords.end()) {
            العد++;
        }
    }
    // تحديد المشاعر العامة
    إذا (عدد > الكلمات. الحجم () / 2) {
        عودة صحيحة؛
    }
    آخر {
        عودة كاذبة؛
    }
}
انت مين() {
    std::string str1 = "أشعر بالسعادة اليوم";
    std::string str2 = "هذا أسوأ يوم على الإطلاق";
    إذا (إيجابي (str1)) {
        std::cout << "السلسلة الأولى لها نغمة عاطفية إيجابية." << ستد::endl;
    }
    آخر {
        std::cout << "السلسلة الأولى لها نغمة عاطفية سلبية." << ستد::endl;
    }
    إذا (إيجابي (str2)) {
        std::cout << "السلسلة الثانية لها نغمة عاطفية إيجابية." << ستد::endl;
    }
    آخر {
        std::cout << "السلسلة الثانية لها نغمة عاطفية سلبية." << ستد::endl;
    }
    العودة 0؛
}
{"evolved_from": null, "kind": "synthetic", "source": "evol_instruct"}