IPB
ЛогинПароль:

> Анализатор текстов, Частотный, семантический анализ текстов
ProtasSoft
сообщение 23.08.2005 16:27
Сообщение #1


Новичок
*

Группа: Пользователи
Сообщений: 33
Пол: Мужской

Репутация: -  0  +


Коллеги, есть ли какие-нибудь исходники по обработке текстовых файлов.
Обработка блоков тестков разделенных набором символов.
Поиск слов (словосочетаний) в этих блоках. Подсчет частоты встречаемости.
Работа с лексемами и т.д.
Жду Ваших предложений unsure.gif
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов
ProtasSoft
сообщение 27.08.2005 17:39
Сообщение #2


Новичок
*

Группа: Пользователи
Сообщений: 33
Пол: Мужской

Репутация: -  0  +


Спасибо за inc(j).
Вот, что у меня получилось:

program RFP;

const
source='data.txt';
file2='filt2.txt';
vocab='vocabul.txt';


var
symb1:char;



procedure file_preprocess(file1_,file2_:string);

var

sourf,res:text;
symb:char;


begin {0}

assign (sourf,file1_);
reset(sourf);

assign (res,file2_);
rewrite (res);

while not eof (sourf) do
begin {1}

while not eoln (sourf) do
begin {2}

read (sourf,symb);

if (ORD(symb)>=65) and (ORD(symb)<=90) OR
(ORD(symb)>=97) and (ORD(symb)<=122) then
begin {33}
if (ORD(symb)>=65) and (ORD(symb)<=90) then
write (res, chr(ord(symb)+32))
else write (res, symb);
end {33}
else
begin {11}
if (ORD(symb)=38) then write (res, symb)
else
begin {22}
writeln (res);
{writeln (res, symb);}
end; {22}

end; {11}


end; {2}
readln (sourf);
writeln(res);
end; {1}
close (sourf);
close (res);
end; {0}

{===========================================================}
{ Выделение всех уникальных элементов в массиве }
{ (создание частотного словаря текста) }
{===========================================================}

procedure create_vocabulary (file1_:string);


var
bufer: array[1..7000] of string [30]; {Здесь у меня ПРОБЛЕМА.
ЧТО можно сделать чтобы можно было поставить, например, 100 000???}

str1,stroka: string;
f,voc: text;
schetchik,i,j,k:integer;

begin



i:=0;

assign (f,file1_);
reset(f);



while not eof (f) do
begin {1}

readln (f,stroka);

if stroka<>'' then
begin
inc(i);
bufer[i]:=stroka
end;
end; {1}

close (f);


assign (voc,vocab);
rewrite(voc);

j:=1;

while j<=i do
begin {2}
if bufer[j]<>'' then
begin {3}
stroka:=bufer[j];
schetchik:=0;
for k:=1 to i do
begin {4}
if stroka=bufer[k] then
begin

bufer[k]:='';
inc(schetchik);

end;

end; {4}

str(schetchik,str1);
stroka:=concat(stroka,' ............... ',str1);
writeln (voc,stroka);

end; {3}
inc(j);
end; {2}




close (voc);

end;


begin
file_preprocess(source,file2);
create_vocabulary (file2);
end.


Теперь у меня проблема с размерностью массива.
Не могу его увеличить даже до 8000 - при таком размере комп не выдает результатов. HELP unsure.gif


Прикрепленные файлы
Прикрепленный файл  data.txt ( 1.49 килобайт ) Кол-во скачиваний: 255
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

Сообщений в этой теме
ProtasSoft   Анализатор текстов   23.08.2005 16:27
volvo   Здесь посмотри, кое-что было: Частотный словарь Ес...   23.08.2005 16:37
ProtasSoft   Есть текстовый файл с текстом, состоящием из отдел...   23.08.2005 16:58
ProtasSoft   Можно ли скопировать один текстовый файл в другой ...   26.08.2005 13:27
volvo   Нет. Читай здесь: FAQ: Файлы - Копирование файлов   26.08.2005 14:39
ProtasSoft   все компилируется, но результата нет. подскажите г...   26.08.2005 18:02
volvo   Я не знаю, что именно ты задумывал в этой программ...   26.08.2005 18:31
ProtasSoft   После внесения исправлений результирущих файлов по...   27.08.2005 9:38
volvo   Ну, так что, мы по прежнему должны ДОГАДЫВАТЬСЯ, ч...   27.08.2005 11:28
ProtasSoft   В качестве содержимого data.txt может быть любой т...   27.08.2005 13:34
volvo   И ты хочешь сказать, что при запуске программы с м...   27.08.2005 15:01
ProtasSoft   Спасибо за inc(j). Вот, что у меня получилось: pr...   27.08.2005 17:39
volvo   Я еще в посте №7 сказал, что это надо было сделать...   27.08.2005 18:23
ProtasSoft   :flowers: Огромное спасибо за помощь. Следуя Ваши...   30.08.2005 11:15


 Ответить  Открыть новую тему 
2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0

 



- Текстовая версия 9.09.2025 4:12
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"