ما هو رمز C++ لسرد الكلمات العشرة الأكثر شيوعًا في مستند نصي، باستثناء كلمات التوقف الشائعة؟ فيما يلي نموذج التعليمات البرمجية الذي يمكن أن يساعدك في تحقيق ذلك:
// قم بتحميل المستند النصي
نص السلسلة = "نص عينة"؛
// تحويل النص إلى أحرف صغيرة
تحويل (text.begin ()، text.end ()، text.begin ()، :: tolower)؛
// إزالة علامات الترقيم والأرقام
text = regex_replace(text, regex("[^a-zA-Z\\s]+"), "");
// تقسيم النص إلى كلمات فردية
ناقلات <سلسلة> الكلمات؛
isstringstream(نص);
ل(كلمة سلسلة؛ iss >> كلمة؛){
    word.push_back(word);
}
// أنشئ قاموسًا لعدد الكلمات، باستثناء كلمات التوقف الشائعة
unordered_map<string, int> wordCount;
unordered_set<string> stopWords = {"the"، "and"، "a"}؛ // أضف المزيد من كلمات التوقف إذا لزم الأمر
لـ (كلمة سلسلة: كلمات)
{
    إذا (stopWords.find(word) == stopWords.end()){
        إذا (wordCount.find(word) != wordCount.end())
            wordCount[word]++;
        آخر
            wordCount[word] = 1;
    }
}
// فرز القاموس بترتيب تنازلي
Vector<pair<string, int>>sortedWords(wordCount.begin(), wordCount.end());
فرز(sortedWords.begin(),sortedWords.end(), [](زوج ثابت<string, int>& a, زوج ثابت<string, int>& b){
    إرجاع أ. ثانية > ب. ثانية؛
});
// احصل على الكلمات العشرة الأكثر تكرارًا
Vector<pair<string, int>> topWords(sortedWords.begin(),sortedWords.begin() + 10);
// اطبع النتيجة
لـ (الكلمة التلقائية: الكلمات الرئيسية)
{
    cout << word.first << ": " << word. Second << endl;
}
كيف يمكنني تعديل هذا الرمز لاستبعاد كلمات التوقف الإضافية؟
{"source": "evol_instruct", "kind": "synthetic", "evolved_from": null}