Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

как создать частотный словарь на кириллице, который считывает корни слов? - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Шаблонный класс бинарного дерева http://www.cyberforum.ru/cpp-beginners/thread605895.html
всем привет, возник такой вопрос вот есть шаблонный класс бинарного дерева поиска, задается тип ключа и тип данных. есть метод, который по идее ищет узел с заданным ключом, и возвращает данные. но...
C++ Найти максимум среди сумм элементов диагоналей Для заданной целочисленной матрицы nXn (где n - константа) найти максимум среди сумм элементов диагоналей, параллельных главной диагонали матрицы. Ребят, помогите пожалуйста!!! Моя программа ищет... http://www.cyberforum.ru/cpp-beginners/thread605875.html
C++ переопределение
Необходимо реализовать класс Stack, соответствующий стеку чисел. Для хранения стека внутри класса используется массив. Размер массива передается в качестве аргумента конструктора. Конструктор должен...
Блок-схема для части программмы C++
Вот вся программа http://pastebin.com/ii0n08BE. Вроде рабочая;) Мне нужно для void poisk 2 составить блок-схему. http://pastebin.com/ygFKyPgH - вот сам void poisk 2.
C++ Интерполяционный поиск http://www.cyberforum.ru/cpp-beginners/thread605813.html
Напишите плиз реализацию данного поискать. Сорри если что за повтор темы
C++ Определите, есть ли в данной строке указанное слово(код написан) подскажите, что не хватает в программе? очень надо, исправьте кому несложно. #include <iostream> #include <algorithm> #include <string> int main() { std::string s = "Определите есть... подробнее

Показать сообщение отдельно
Zhanik
0 / 0 / 0
Регистрация: 14.06.2012
Сообщений: 12

как создать частотный словарь на кириллице, который считывает корни слов? - C++

14.06.2012, 21:12. Просмотров 659. Ответов 0
Метки (Все метки)

Помогите плс! Я смог создать словарь, но он не считывает корни, а слово целиком. И если в тексте встречаются числа то выводится ошибка
Есть база корней и суффиксов.
Вот мой код:
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
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
#include <fstream>
#include <iostream>
#include <sstream>
#include <string>
#include <map>
 
using namespace std;
string toFormat(string);
map<string, int> dic;
int main()
{
 
ifstream db("data_base.txt");
 
string temp;
int cnt;
while (db >> temp >> cnt) {
temp = toFormat(temp);
dic[temp] = cnt;
}
db.close();
string text;
 
map<string, int>::iterator it;
 
ifstream in ("input.txt");
for(int i=0; i<3; i++)
{
char temp;
in >> temp;
}
while (in >> text){
text = toFormat(text);
 
dic[text]++;
 
 
}
in.close();
ofstream out("data_base.txt");
for (it = dic.begin(); it!=dic.end(); it++)
{
out <<(*it).first <<" " <<(*it).second <<endl;
return 0;
}
}
string toFormat(string w){  
    string word = "";
    for (int i = 0; i < w.length(); i++)
    {
        if ((int)w[i] > 0)
            continue;
        else
            word += w[i];
    }
 
    for (int i = 0;i < word.length() - 1; i+=2)
    {
        
        // ? ? ? ? ? ? ? ?
        if (((int)word[i] == -45 || (int)word[i] == -46) && ((int)word[i+1] % 2 == 0))
            word[i+1] = word[i+1] + 1;
        
        // А Б В Г Д Е Ж З И Й К Л М Н О П
        if (((int)word[i] == -48) && ((int)word[i+1] >= -112 && (int)word[i+1] <= -97))
            word[i+1] = word[i+1] + 32;
 
        //  Ф Х Ц Ш Щ Ч Ь Ъ Э Ю Я Р С Т У
        if (((int)word[i] == -48) && ((int)word[i+1] >= -96 && (int)word[i+1] <= -81))
        {       
            word[i] = word[i] + 1;
            word[i+1] = word[i+1] - 32;
        }
 
        //  ? and Ё 
        if ((int)word[i] == -48 && ((int)word[i+1] == -127 || (int)word[i+1] == -122))
        {
            word[i] = word[i] + 1;
            word[i+1] = word[i+1] + 16;
        }
 
    }
 
    return word;
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru