0 / 0 / 1
Регистрация: 20.11.2017
Сообщений: 7
1

Составить частотный словарь слов

30.03.2018, 23:41. Показов 8238. Ответов 2
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Дано предложение, состоящее из слов, разделенных запятой или пробелами. Составить частотный словарь слов, указав, сколько раз данное слово встретилось в предложении. При этом изменить предложение: - удалив повторные вхождения слов и вставив перед первым вхождением слова подстроку вида: (Число), где - Число – определяет количество таких слов в предложении.
Помогите пожалуйста!
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
30.03.2018, 23:41
Ответы с готовыми решениями:

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

Создать частотный словарь слов текста из файла
Вывести алфавитный список всех слов заданного текста с указанием количества вхождений слова в...

Составить частотный словарь вводимого текста
14. Составить частотный словарь вводимого текста. Распечатать его по алфавиту, а справа от каждого...

Составить частотный словарь вводимого текста
Составить частотный словарь вводимого текста (несколько строк) тоесть распечатать строку следующим...

2
7780 / 6550 / 2981
Регистрация: 14.04.2014
Сообщений: 28,610
31.03.2018, 11:35 2
Лучший ответ Сообщение было отмечено Alamart как решение

Решение

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
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
#include <iostream>
#include <string>
#include <vector>
#include <map>
#include <regex>
 
int main()
{
  typedef std::map<std::string, std::vector<int>>::iterator words_it;
  std::map<std::string, std::vector<int>> words;
    
  std::string s ("three one two three two three");
  std::regex e ("\\w+");
 
  std::regex_iterator<std::string::iterator> rit ( s.begin(), s.end(), e );
  std::regex_iterator<std::string::iterator> rend;
 
  while (rit != rend)
  {
    words[rit->str()].push_back(rit->position(0));
    ++rit;
  }
  
  for (auto &w : words)
  {
    std::cout << w.first << ' ' << w.second.size() << std::endl;
  }
  
  for (words_it i = words.begin(); i != words.end(); ++i)
  {
    if (i->second.size() > 1)
    {
      
      std::string n = "(" + std::to_string(i->second.size()) + ")";
      s.insert(i->second[0], n);
      for (words_it j = i; j != words.end(); ++j)
        for (auto &p : j->second)
          if (p > i->second[0]) p += n.size();
 
      int ws = i->first.size();
      for (int ii = i->second.size() - 1; ii > 0; --ii)
      {
        s.erase(i->second[ii], ws);
        words_it j = i;
        for (++j; j != words.end(); ++j)
          for (auto &p : j->second)
            if (p > i->second[ii]) p -= ws;
      }
      
    }
  }
  
  std::cout << std::endl << s << std::endl;
  
  return 0;
}
1
Модератор
Эксперт С++
13491 / 10747 / 6405
Регистрация: 18.12.2011
Сообщений: 28,681
31.03.2018, 11:59 3
См. ссылки внизу страницы
0
31.03.2018, 11:59
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
31.03.2018, 11:59
Помогаю со студенческими работами здесь

Частотный словарь из слов текстового файла в виде дерева двоичного поиска
Задача: Построить частотный словарь из слов текстового файла в виде дерева двоичного поиска....

Частотный словарь.
здравствуйте помогите плиз решить последнюю задачу для зачета.вот условие: дан текст.получить...

Алфавитно-частотный словарь
Напишите программу, которая строит алфавитно-частотный словарь для файла input.txt , в котором в...

Частотный словарь приставок
Помогите пожалуйста, нужно составить частотный словарь приставок, имеющегося текстового файла. Я...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru