Программа частотного словаря сочетаний слов
Курсовой проект - Компьютеры, программирование
Другие курсовые по предмету Компьютеры, программирование
er;: array of string;: array of char;, s1: string;: string;:boolean;
. Clear; (slova, 0); // обнуление словаря
setlength (razd, 0); // обнуления списка разделителей
i:=0;:=0;:=1;
//////////////////////////// :=memo3. Lines[0]; // j<= length(s) do // //
setLength (razd, p+1); //
razd[p]:=s[j]; // // создание массива с разделителями
p:=p+1; // :=j+2; // ; //
/////////////////////////// (razd, length(razd)+1);[length(razd) - 1]:= #13;(razd, length(razd)+1);[length(razd) - 1]:= #9;
:= 0;
j:= 1;
i:= 0;
t:=GetTickCount(); // начало замера времени
whilei<>memo1. Lines. Count do:= memo1. Lines[i]; // просмотрi-й строки
( , s)=1 do delete (s, 1,1); // удаляемотступы
{Чтобы символ - не определялся как слово}
h:= 1;h<=length(s) - 2 dop1:= 0 to length(razd) - 1 dos[h]=- then if s [h+1]=razd[p1] then(s, h, 1);:= h+1;;
whilelength (s)>0 do // если конец строки, то переход на следующую
begin
k:= 0;
e:= -1;
{Проверка строки на наличие разделителя}
while k<= length(razd) - 1 do(s[j]= razd[k]) then e:= 1;:= k+1
end;
ife>0 then // если проверяемый символ оказался разделителем
begin
// Заносим слово в массив slova
////////////////////////////////////////////////////////////////////////// // s[j]=. then s1:= copy (s, 1, j) else if s[j]=! // s1:= copy (s, 1, j) else if s[j]=? then s1:= copy (s, 1, j) // s1:= copy (s, 1, j-1); // 1:= AnsiUpperCase(s1); // перевод всех букв в слове в верхний регистр //
if (length (s1)=0) or (s1=-) then begin j:= j+1; delete (s, 1,1); end // begin // (slova, p+1); // [p]:=s1; // := p+1; // (s, 1, j); // :=1; end; end; end // j:= j+1; // ; //
i:= i+1; //
end; //
//////////////////////////////////////////////////////////////////////////
{Очистка слов от оставшихся разделителей}
For i:=0 to length(slova) - 1 dok:=0 to length(razd) - 1 do(razd[k], slova[i])>0 do delete (slova[i], pos (razd[k], slova[i]), 1);
{Составляем фразы из полученных слов}
p:= 0; i:= 0; then(frazi, p+1);[p]:=slova[i]+ +slova [i+1];:= p+1;;:= i+1;;
{Удаление оставшихся знаков препинания}
fori:= 0 toLength(frazi) - 1 do
begin:= frazi[i];:= length (s);s[j]=. then delete (s, j, 1) else if s[j]=!delete (s, j, 1) else if s[j]=? then delete (s, j, 1); [i]:= s;
end;
{Подсчет и удаление одинаковых фраз}
h:= High(frazi);:= 0;p then[i]:= IntToStr(e) + …….. + Sbegin x:= i+1;;(i);;(frazi, h + 1);
{Чистка словаря отсловосочетаний с пустыми строками вместо слов}
k:=0;k <= length(frazi) - 1 do:= length (frazi[k]);( , frazi[k])=p then begin for i:=K+1 to Length(frazi) - 1 do[i-1]:= frazi[i];(frazi, Length(frazi) - 1); end; inc(k);
;
t:=GetTickCount() - t; // конец замера времени
{Сортировка фраз по алфавиту}
repeat
priz:=false;
fori:= 0 to length(frazi) - 2 do:= pos (., frazi[i])+8;:= pos (., frazi [i+1])+8;:= copy (frazi[i], p, length (frazi[i]));:= copy (frazi [i+1], p1, length (frazi[i+1]));(s>s1) then:= frazi[i];[i]:= frazi [i+1];[i+1]:=buf;:=true;;;=false;
{Вывод словаря в мемо}
Memo2. Clear;
fori:= 0 to length(frazi) - 1 do. Lines. Add ( );. Lines[i]:=frazi[i];;. Caption:= Времяработы t=+inttostr(t);;
TForm1. Button4Click (Sender: TObject); // Сохранить:TSaveDialog;:= TSaveDialog. Create(self);. InitialDir:= GetCurrentDir;
// Разрешаемсохранятьфайлытипа.txt и.rtf. Filter:= Text Files|*.txt|Text Files|*.rtf;
// Отображение диалог сохранения файла
ifsaveDialog. Execute:=saveDialog. FileName;. Lines. SaveToFile(Slvr);;;
TForm1. Button5Click (Sender: TObject); // Сортировка, p, p1: integer;, s, s1: string;:boolean;
{Сортировкапоалфавиту}RadioGroup1. ItemIndex=0 then begin:=false;:= 0 to length(frazi) - 2 do:= pos (., frazi[i])+8;:= pos (., frazi [i+1])+8;:= copy (frazi[i], p, length (frazi[i]));:= copy (frazi [i+1], p1, length (frazi[i+1]));(s>s1) then:= frazi[i];[i]:= frazi [i+1];[i+1]:=buf;:=true;;;=false;
{Вывод в мемо}. Clear;:= 0 to length(frazi) - 1 do. Lines. Add ( );. Lines[i]:=frazi[i];;
begin
{Сортировкапочастоте}:=false;:= 0 to length(frazi) - 2 do:= pos (., frazi[i]);:= pos (., frazi [i+1]);
:= copy (frazi[i], 1, p-1);:= copy (frazi [i+1], 1, p-1);p<p1 then begin
:= frazi[i];[i]:= frazi [i+1];[i+1]:=buf;:=true;;(s<s1) and (p=p1) then:= frazi[i];[i]:= frazi [i+1];[i+1]:=buf;:=true;;;=false;
{Вывод в мемо}. Clear;:= 0 to length(frazi) - 1 do. Lines. Add ( );.lines[i]:= frazi[i];; end;;
TForm1. Button6Click (Sender: TObject); // Поиск:string;, k, j, p, p1:integer;, s1, buf: string;:boolean;. Caption:=;:=false;:= 0 to length(frazi) - 2 do:= pos (., frazi[i])+8;:= pos (., frazi [i+1])+8;:= copy (frazi[i], p, length (frazi[i]));:= copy (frazi [i+1], p1, length (frazi[i+1]));(s>s1) then:= frazi[i];[i]:= frazi [i+1];[i+1]:=buf;:=true;;;=false;:=AnsiUpperCase (edit1. Text);:=0; j:=length(frazi) - 1;:=0; s then:= k + 1if obr< s then:= k - 1;;
s= obr then1. Caption:=Словосочетание +s+ встречается в тексте +s1+ раз(-а)
elseLabel1. Caption:=Словосочетание не найдено;
if Edit1. Text= then label1. Caption:=;;
procedure TForm1. Edit1KeyPress (Sender: TObject; var Key: Char);Key = #13 then Button6Click(Button6);;.