Форум программистов, компьютерный форум, киберфорум
C++ Builder
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.75/4: Рейтинг темы: голосов - 4, средняя оценка - 4.75
Arkonise

Классифицировать документы по узким кластерам

03.12.2012, 09:20. Показов 751. Ответов 2
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
здравствуйте, препод дал задание на билдере кластеризовать документы по узким кластерам..вариант выглядит так:
1 Классифицировать документы по узким кластерам
подскажите пожалуйста как это можно реализовать или при помощи чего, а то совсем не понимаю как это делается...
более того, даже не совсем точно понимаю что от меня требуется

Добавлено через 10 минут
дали еще какой то алгоритм софия
Шаг 1. Выявление узких контекстов.
Для каждого слова из словаря коллекции на основе анализа вероятностного распределения контекста слова вычисляется энтропия, которая тем больше, чем более общеупотребительным является слово. Выбирая слова с наименьшей энтропией, мы получаем наименее общеупотребительные, "тяжелые" слова, которые и задают узкие контексты. При выявления слов с узкими контекстами можно рассматривать всю коллекция документов или некоторую ее часть. Также можно выбросить из рассмотрения некоторое подмножество слов общего словаря коллекции. Найденные узкие контексты далее рассматриваются как подтемы, представленные в коллекции документов. Обычно для специализированных коллекций в несколько сот тысяч документов формируется 1000 и более таких подтем.
скорее всего делать нужно по ней...
и если да, то допустим загрузили 2 документа в 2 мемо..
но как или с помощью чего можно записать все схожие слова и их количество без понятия

Добавлено через 1 минуту
вот код поиска для мемо 1 и 2

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
86
87
//ïîèñê ñëîâ äëÿ Memo1
 int i, j, k, cc, n, num=0 ;
 bool k11;
    for ( i=0;i<Memo1->Lines->Count;i++)
     for ( j=1;j<Memo1->Lines->Strings[i].Length();j++)
      if ((n=Memo1->Lines->Strings[i].Pos(Edit1->Text))!=0)
      {
         cc=0;
         k11 = true;
         for ( k=1;k<n;k++)
           if(IsDelimiter(" ",Memo1->Lines->Strings[i],k))
             cc++ ;
         num=i;
         i=Memo1->Lines->Count; break;
      }
    Memo1->HideSelection = false;
    if ((n=Memo1->Text.AnsiPos(Edit1->Text))!=0) {
      Memo1->SelStart = n-num;
      Memo1->SelLength = Edit1->Text.Length();  }
 
         bool k12;
 
       for ( i=0;i<Memo1->Lines->Count;i++)
     for ( j=1;j<Memo1->Lines->Strings[i].Length();j++)
      if ((n=Memo1->Lines->Strings[i].Pos(Edit4->Text))!=0)
      {
         cc=0;
         k12 = true;
         for ( k=1;k<n;k++)
           if(IsDelimiter(" ",Memo1->Lines->Strings[i],k))
             cc++ ;
         num=i;
         i=Memo1->Lines->Count; break;
      }
    Memo1->HideSelection = false;
    if ((n=Memo1->Text.AnsiPos(Edit4->Text))!=0) {
      Memo1->SelStart = n-num;
      Memo1->SelLength = Edit4->Text.Length();  }
 
 
      //ïîèñê ñëîâ äëÿ Memo2
 int i1, j1, k1, cc1, n1, num1=0 ;
 bool k21;
    for ( i1=0;i1<Memo2->Lines->Count;i1++)
     for ( j1=1;j1<Memo2->Lines->Strings[i1].Length();j1++)
      if ((n1=Memo2->Lines->Strings[i1].Pos(Edit1->Text))!=0)
      {
         cc1=0;
         k21 = true;
         for ( k1=1;k1<n1;k1++)
           if(IsDelimiter(" ",Memo2->Lines->Strings[i1],k1))
             cc1++ ;
         num1=i1;
         i1=Memo2->Lines->Count; break;
      }
    Memo2->HideSelection = false;
    if ((n1=Memo2->Text.AnsiPos(Edit1->Text))!=0) {
      Memo2->SelStart = n1-num1;
      Memo2->SelLength = Edit1->Text.Length();  }
 
         bool k22;
 
       for ( i1=0;i1<Memo2->Lines->Count;i1++)
     for ( j1=1;j1<Memo2->Lines->Strings[i1].Length();j1++)
      if ((n1=Memo2->Lines->Strings[i1].Pos(Edit4->Text))!=0)
      {
         cc1=0;
         k22 = true;
         for ( k1=1;k1<n1;k1++)
           if(IsDelimiter(" ",Memo2->Lines->Strings[i1],k1))
             cc1++ ;
        // Edit2->Text = IntToStr(i+1);
         //Edit3->Text = IntToStr(cc+1);
         num1=i1;
         i1=Memo2->Lines->Count; break;
      }
    Memo2->HideSelection = false;
    if ((n1=Memo2->Text.AnsiPos(Edit1->Text))!=0) {
      Memo2->SelStart = n1-num1;
      Memo2->SelLength = Edit4->Text.Length();  }
      int kk=0;
      for(i=0;i>5;i++)
        {if(cc[i]==cc1[i])
         kk++ ;
         }
      Memo3->Lines->Add(Edit4->Text);
      Memo3->Lines->Add(kk);
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
03.12.2012, 09:20
Ответы с готовыми решениями:

Размещение файлов по кластерам
Какие библиотеки под linux позволяют получать размещение файлов по кластерам? Знаю, что в Windows...

Поясните по отказоустойчивым кластерам
Слышал про существование машин, которые при падении переключаются на следующий сервер с переносом...

Запись файла по указанным кластерам
Исходная задача восстановить удаленный файл в файловой системе ntfs. Я из $mft получил список...

2
Эксперт С++
 Аватар для Avazart
8488 / 6155 / 615
Регистрация: 10.12.2010
Сообщений: 28,683
Записей в блоге: 30
04.12.2012, 04:26
Честно говоря не особо понял ( про контексты )

Ну я б смотрел как приспособить std::map ( /multimap ) и наверное подобие слов как-то надо через boost/regex определить
1
Arkonise
04.12.2012, 19:38
Спасибо)))
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
04.12.2012, 19:38
Помогаю со студенческими работами здесь

Классифицировать дифференциальные уравнения
Не могу классифицировать, помогите пожалуйста. 1) y'+2y(y-x)=1 2) y=xy'+y'/sqrt(1+(y')^2)

Окно меню "Пуск" стало узким. Как вернуть стандартное?
Всем привет. После установки ОС, столкнулся с не понятной проблемой. В Windows 10 пуск стал...

Получить размещение файла по кластерам (номера кластеров, занятых файлом)
Нужно получить размещение файла по кластерам(номера кластеров, занятых файлом). Как я понял, нужно...

Найти и классифицировать стационарные точки
функция x в 4 степени + х в квадрате +1 = 0. Первая производная 4х в кубе + 2х =0, выносим х за...

Классифицировать статьи: ИИ или перебор ?
Задача классифицировать записи по принадлежности к темам, основываясь на тексте полей и сочетаниях...


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
Установка Emscripten SDK (emsdk) и CMake на Windows для сборки C и C++ приложений в WebAssembly (Wasm)
8Observer8 30.01.2026
Чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. Система контроля версиями Git. . .
Подключение Box2D v3 к SDL3 для Android: физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL3_image
8Observer8 27.01.2026
Содержание блога SDL3_image - это библиотека для загрузки и работы с изображениями. Эта пошаговая инструкция покажет, как загрузить и вывести на экран смартфона картинку с альфа-каналом, то есть с. . .
Влияние грибов на сукцессию
anaschu 26.01.2026
Бифуркационные изменения массы гриба происходят тогда, когда мы уменьшаем массу компоста в 10 раз, а скорость прироста биомассы уменьшаем в три раза. Скорость прироста биомассы может уменьшаться за. . .
Воспроизведение звукового файла с помощью SDL3_mixer при касании экрана Android
8Observer8 26.01.2026
Содержание блога SDL3_mixer - это библиотека я для воспроизведения аудио. В отличие от инструкции по добавлению текста код по проигрыванию звука уже содержится в шаблоне примера. Нужно только. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru