Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2008.10.05;
Скачать: CL | DM;

Вниз

посчитать слова   Найти похожие ветки 

 
aaaaa   (2008-08-25 14:52) [0]

Добрый день всем.
Есть большой кусок текста(точнее, большие куски в БД, записей много).
Нужно подсчитать какие слова, сколько раз в нем(ней) встречаются. Словоформы не учитываются.


 
Игорь Шевченко ©   (2008-08-25 14:55) [1]


> Нужно подсчитать


Считай. Разрешение получено


 
MBo ©   (2008-08-25 14:56) [2]

По ходу чтения слов заносить их в некий словарь - например, префиксное дерево. Если слово уже есть - увеличивать счетчик.


 
aaaaa   (2008-08-25 14:57) [3]


> Игорь Шевченко ©   (25.08.08 14:55) [1]

Понедельник? :)

Скажи, как бы ты сделал - как сделать с черепашьей скоростью я знаю.


 
aaaaa   (2008-08-25 14:57) [4]


> MBo ©   (25.08.08 14:56) [2]

кто такой "префиксное дерево"?


 
aaaaa   (2008-08-25 15:00) [5]


> aaaaa   (25.08.08 14:57) [4]

а, нашел.
Щас попробую, спасибо.


 
aaaaa   (2008-08-25 15:28) [6]


> aaaaa   (25.08.08 15:00) [5]
>
> > aaaaa   (25.08.08 14:57) [4]
>
> а, нашел.
> Щас попробую, спасибо.

ну я быстер!

есть стал быть класс:

TMyAssTree = class
  Nodes: TMyAssNodes;
public
 procedure AddNode(st: string);
 procedure DelNode(Index: Integer);
...

что-то там еще будет. Не знаю как сделать метод AddNode, если я правильно понимаю, то корень дерева равен nil, далее идут ветки с ключами а, б, в..., потом у а есть дети аа, аб, ав... Не пойму, как мне их добавлять? Как сказать-то? Э-э-э.... ну попалось первое слово: "арбуз", потом "артиллерия", что делать? Предположим, построил дерево так:

а-
  ар - и здесь они покоятся

а следующее слово "артишок"! Че мне делать?
а-
 ар - тут остался арбуз
     -арти - сюда кабачки и артиллерию?

т.е. "метать" словея туды-сюды? Гемморой, как мне кажется - каждый раз проверять все ключи и слова.

Как это положено делать?


 
MBo ©   (2008-08-25 15:29) [7]

>кто такой "префиксное дерево"?
это лишь один из вариантов.
Возможно, подойдет и просто сортированный TStringList


 
aaaaa   (2008-08-25 15:33) [8]


> MBo ©   (25.08.08 15:29) [7]


> Возможно, подойдет и просто сортированный TStringList

само-собой, но есть время - хочу заморочиться


 
MBo ©   (2008-08-25 15:42) [9]


а
  р
    б
       у
          з - 1
    т
       и
           ш
               о
                   к -1
           л
             лерия также


 
aaaaa   (2008-08-25 15:46) [10]


> MBo ©   (25.08.08 15:42) [9]

Клево, забодай меня комар!
Спасибо большое.


 
aaaaa   (2008-08-25 18:13) [11]

е-мае, а как мне узнать где "конец"?
напр:
а
 р
   б
     у
       з - 10
         ы - 2
словоформы-то я не учитываю:(


 
JanMihail   (2008-08-25 21:35) [12]

слишком много вопросов. Сядь и соберись с мыслями. Все получится!


 
MBo ©   (2008-08-26 05:17) [13]

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


 
aaaaa   (2008-08-26 12:09) [14]


> MBo ©   (26.08.08 05:17) [13]

ага, да. Спасибки.


> JanMihail   (25.08.08 21:35) [12]

Спасибо, товарисч, так и сделаю! ЗЫ. JanMihail - это мужское имя - стиль поста какой-то экзальтированный?


 
Труп Васи Доброго(заб. пароль)   (2008-08-27 11:07) [15]

А кой, извиняюсь за выражение, хрен тебе мешает сначала засунуть все слова в лист, отсортировать их там по алфавиту, а потом уже дерево строить?


 
oldman ©   (2008-08-27 11:12) [16]


> Словоформы не учитываются.


Как бы это компьютеру объяснить?

"друг", "подруга" и "дружеский" - словоформы?


 
ЛшдлуттнСфе   (2008-08-27 16:11) [17]


> MBo ©  

а можно это дерево и в начале разветвить? дабы приставки учесть.


 
MBo ©   (2008-08-27 16:18) [18]

>дабы приставки учесть.
автоматически без анализа нельзя определить - приставка в начале слова или нет - например, примус.


 
ЛшдлуттнСфе   (2008-08-27 20:15) [19]

В общем, в итоге сведется к формированию статичного словаря...


 
aaaaa   (2008-08-28 14:42) [20]


> Труп Васи Доброго(заб. пароль)   (27.08.08 11:07) [15]

мешало наличие свободного времени :)



Страницы: 1 вся ветка

Текущий архив: 2008.10.05;
Скачать: CL | DM;

Наверх




Память: 0.51 MB
Время: 0.014 c
2-1219495715
Vayrus
2008-08-23 16:48
2008.10.05
Как преобразовать "таблицу" из буфера обмена в HTML документ


15-1218172225
Vlad Oshin
2008-08-08 09:10
2008.10.05
Голосовали? За кого? :)


15-1218629279
Вася111
2008-08-13 16:07
2008.10.05
Защита от "пиратирования" проги


15-1219030948
Slider007
2008-08-18 07:42
2008.10.05
С днем рождения ! 17 августа 2008 воскресенье


2-1219387610
kate158
2008-08-22 10:46
2008.10.05
как можно добавить вычисляемое поле в grid?