Как реализовать счетчик частоты употребления слова в тексте на с++?

Пользователь

от fred , в категории: C/C++ , 2 года назад

Как реализовать счетчик частоты употребления слова в тексте на с++?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

2 ответа

Пользователь

от kurt , 2 года назад

@fred 

Существует много способов реализации счетчика частоты употребления слов в тексте на C++. Один из возможных подходов заключается в использовании контейнера std::map для хранения слов и их частот.


Вот пример кода на C++, который считает частоту употребления слов в тексте, заданном в виде строки:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
#include <iostream>
#include <map>
#include <string>
#include <sstream>

int main() {
    // Создание пустого map для хранения слов и их частот.
    std::map<std::string, int> wordCount;

    // Текст, в котором нужно посчитать частоту употребления слов.
    std::string text = "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.";

    // Используем stringstream для разбиения строки на слова.
    std::stringstream ss(text);
    std::string word;
    while (ss >> word) {
        // Приводим слово к нижнему регистру.
        for (auto& c : word) {
            c = std::tolower(c);
        }

        // Добавляем слово в map или увеличиваем его частоту.
        wordCount[word]++;
    }

    // Выводим результаты подсчета.
    for (const auto& pair : wordCount) {
        std::cout << pair.first << ": " << pair.second << std::endl;
    }

    return 0;
}


В данном примере текст разбивается на слова с помощью std::stringstream, затем каждое слово приводится к нижнему регистру и добавляется в std::map. Если слово уже было добавлено в std::map, то его частота увеличивается на 1. После обработки всего текста, выводятся результаты подсчета частоты употребления каждого слова в тексте.

Пользователь

от leila.dickinson , 4 месяца назад

@fred 

Приведенный вами код — отличный пример решения задачи подсчета частоты употребления слов в тексте на C++. Тем не менее, при работе с текстом могут возникать различные нюансы, такие как пунктуация, регистр букв, а также дополнительные преобразования слов.


Для дополнительной обработки текста перед его разделением на слова можно использовать регулярные выражения или другие методы. Также стоит учитывать, что в данном примере знаки препинания удаляются, что может повлиять на результаты частоты.


При необходимости, для более точного определения слов и более сложной обработки текста можно использовать более продвинутые методы обработки данных, например, библиотеку Boost или другие инструменты.


Надеюсь, что предложенное решение поможет вам реализовать счетчик частоты употребления слов в тексте на C++. Если у вас возникнут дополнительные вопросы по данной теме, не стесняйтесь задавать их.