Þarf að finna tíðni orða í Notepad++

Skjámynd

Höfundur
Heliowin
FanBoy
Póstar: 706
Skráði sig: Fös 11. Nóv 2005 11:33
Reputation: 2
Staðsetning: Reykjavík
Staða: Ótengdur

Þarf að finna tíðni orða í Notepad++

Pósturaf Heliowin » Sun 25. Nóv 2012 13:35

Er að nota Notepad++ og þarf að finna tíðni orða í texta skjali, það er að segja að sjá þau orð sem koma fyrir oftast og fá þá listun yfir það.

Getið þið sagt mér hvernig hægt er að gera þetta í Notepad++ eða öðru forriti?



Skjámynd

ZiRiuS
Of mikill frítími
Póstar: 1798
Skráði sig: Þri 08. Nóv 2005 15:19
Reputation: 387
Staðsetning: Við tölvuna
Staða: Ótengdur

Re: Þarf að finna tíðni orða í Notepad++

Pósturaf ZiRiuS » Sun 25. Nóv 2012 13:58

Eina sem ég finn er "Search > Find" og þar er takki sem segir "Count". Þar finnurðu allavega fjölda orða sem þú skrifar inn en ég veit því miður ekki hvernig þú finnur þau orð sem koma oftast fyrir.

Búinn að athuga með Word, hlýtur að vera hægt að gera þetta þar.



Turn: Cooler Master Mastercase H500M Móðurborð: Asus ROG Maximus XI Hero
CPU: Intel Core i9-9900K 3.6GHz (Coffee Lake) GPU: EVGA GeForce RTX 2080 Super FTW3 Ultra Gaming
RAM: Corsair Vengeance LPX 32GB (4x8GB) DDR4 PC4-28800C18 3600MHz Quad Channel Kit
PSU: Corsair AX850 Titanium 80 Plus Titanium Modular SSD: Samsung 970 PRO 512GB M.2 2280 PCI-e 3.0 x4 NVMe


Garri
1+1=10
Póstar: 1109
Skráði sig: Lau 31. Okt 2009 21:34
Reputation: 3
Staðsetning: Akureyri
Hafðu samband:
Staða: Ótengdur

Re: Þarf að finna tíðni orða í Notepad++

Pósturaf Garri » Sun 25. Nóv 2012 14:35

Get smíðað svona forrit fyrir þig á sirka fimm mínútum.. eða látið þig fá pseude kódann ef þú getur sjálfur skrifað.




Garri
1+1=10
Póstar: 1109
Skráði sig: Lau 31. Okt 2009 21:34
Reputation: 3
Staðsetning: Akureyri
Hafðu samband:
Staða: Ótengdur

Re: Þarf að finna tíðni orða í Notepad++

Pósturaf Garri » Sun 25. Nóv 2012 15:03

Rauk í þetta.. meðan ég hlustað á Tubalar Bells með Mike nokkrum Oldfield!

Svona vinnur forritið:
Mynd

Texta skráin

Kóði: Velja allt

halló test bull þetta er hitt
bara þið eruð kannski er þetta líka bull eða hvað

er ekki kominn tími á að hætta þessu bulli og fara að sofa

Er ég nú orðinn fúll eða hvað


Kóði: Velja allt

unit UMain;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls;

type
  Typ_RecListi =
  RECORD
    Str_Ord           : STRING;
    I_Tidni           : INTEGER;
  END;

  TForm1 =
  class(TForm)
    Edit1: TEdit;
    Button1: TButton;
    Memo1: TMemo;
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
    Arr_Listi     : ARRAY OF Typ_RecListi;
    PROCEDURE Rada_Lista;
    procedure Update_List (Str_Ord : SHORTSTRING);
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation


{$R *.dfm}

PROCEDURE TForm1.Rada_Lista;

{--------------------------------------------------------------------------}
  PROCEDURE Swap (W_Indx : BYTE);
    VAR
      Tmp : Typ_RecListi;
  BEGIN
    Tmp := Arr_listi[W_Indx];
    Arr_listi[W_Indx] := Arr_listi[W_Indx-1];
    Arr_listi[W_Indx-1] := Tmp;
  END;

  VAR
    W_Fjoldi,
    W_Indx, W_Indx2 : WORD;
    Bo_Swap         : BOOLEAN;
    Str_Fyrra,
    Str_Seinna      : SHORTSTRING;
BEGIN
  W_Indx   := 0;
  Bo_Swap  := TRUE;
  W_Fjoldi     := Length(Arr_listi) - 1;

  WHILE (W_Indx < W_Fjoldi) AND (Bo_Swap) DO
  BEGIN
    W_Indx2 := W_Fjoldi;
    Bo_Swap := FALSE;
    WHILE W_Indx2 > W_Indx DO
    BEGIN
      IF (Arr_listi[W_Indx2].I_Tidni > Arr_listi [W_Indx2-1].I_Tidni) THEN
      BEGIN
        Bo_Swap := TRUE;
        Swap (W_Indx2);
      END;
      Dec (W_Indx2);
    END;
    Inc (W_Indx);
  END;
END;
{--------------------------------------------------------------------------}
procedure TForm1.Update_List (Str_Ord : SHORTSTRING);
  var
    Bo_Fann, Bo_Buid  : BOOLEAN;
    i                 : INTEGER;
BEGIN
  Bo_Fann         := FALSE;
  Bo_Buid         := FALSE;
  i               := 0;

  IF (Length(Arr_Listi) > 0) THEN
  REPEAT
    Bo_Fann    := Str_Ord = Arr_listi[i].Str_Ord;
    IF NOT(Bo_Fann) THEN
    BEGIN
      Inc (i);
      IF i = Length(Arr_Listi) THEN
        Bo_Buid := TRUE;
    END
  UNTIL (Bo_Fann) OR (Bo_Buid);

  IF (Bo_Fann) THEN
    Inc (Arr_Listi [i].I_Tidni)
  ELSE
  BEGIN
    SetLength(Arr_Listi, Length(Arr_Listi) + 1);
    Arr_Listi[Length(Arr_Listi)-1].Str_Ord   := Str_Ord;
    Arr_Listi[Length(Arr_Listi)-1].I_Tidni   := 1;
  END;
END;
{--------------------------------------------------------------------------}
procedure TForm1.Button1Click(Sender: TObject);
  var
    Str_List     : TSTRINGLIST;
    i            : INTEGER;
    W_Pos        : WORD;
    Str_Ord      : SHORTSTRING;
    Str_Lina     : SHORTSTRING;
begin
  IF (FileExists (Edit1.Text)) THEN
  BEGIN
    Str_List   := TSTRINGLIST.Create;
    Str_List.LoadFromFile(Edit1.text);

    FOR i := 0 TO Str_List.Count - 1 DO
    BEGIN
      Str_Lina := Str_List[i];
      W_Pos    := Pos (' ', Str_Lina);
      WHILE (W_Pos <> 0) DO
      BEGIN
        Str_Ord  := Copy (Str_Lina, 1, W_Pos - 1);
        Delete (Str_Lina, 1, W_Pos);
        Update_List (Str_Ord);
        IF (Str_Lina <> '') THEN
          W_Pos    := Pos (' ', Str_Lina);
      END;
      IF (Str_Lina <> '') THEN
        Update_List (Str_Lina);
    END;
    Str_List.Free;

    Rada_Lista;

    Memo1.Lines.Clear;
    FOR i := 0 TO Length(Arr_Listi) - 1 DO
      Memo1.Lines.Add(IntToStr(Arr_Listi[i].I_Tidni)+'  '+ Arr_Listi[i].Str_Ord)
  END
  ELSE
    ShowMessage ('Skjal finnst ekki.. ');
end;

end.



Skjámynd

zedro
Stjórnandi
Póstar: 2770
Skráði sig: Fös 29. Okt 2004 21:29
Reputation: 124
Staðsetning: FL410
Hafðu samband:
Staða: Ótengdur

Re: Þarf að finna tíðni orða í Notepad++

Pósturaf zedro » Sun 25. Nóv 2012 16:13

Garri skrifaði:Rauk í þetta.. meðan ég hlustað á Tubalar Bells með Mike nokkrum Oldfield!

=D> Flottur!


Kísildalur.is þar sem nördin versla

Skjámynd

gardar
Besserwisser
Póstar: 3111
Skráði sig: Mán 11. Ágú 2008 02:49
Reputation: 12
Staðsetning: ::1
Staða: Ótengdur

Re: Þarf að finna tíðni orða í Notepad++

Pósturaf gardar » Sun 25. Nóv 2012 17:21




Skjámynd

Höfundur
Heliowin
FanBoy
Póstar: 706
Skráði sig: Fös 11. Nóv 2005 11:33
Reputation: 2
Staðsetning: Reykjavík
Staða: Ótengdur

Re: Þarf að finna tíðni orða í Notepad++

Pósturaf Heliowin » Sun 25. Nóv 2012 21:37

ZiRiuS skrifaði:Eina sem ég finn er "Search > Find" og þar er takki sem segir "Count". Þar finnurðu allavega fjölda orða sem þú skrifar inn en ég veit því miður ekki hvernig þú finnur þau orð sem koma oftast fyrir.

Búinn að athuga með Word, hlýtur að vera hægt að gera þetta þar.


Athugaði með LibreOffice Writer, en fann ekkert, né extension.


Garri skrifaði:Rauk í þetta.. meðan ég hlustað á Tubalar Bells með Mike nokkrum Oldfield!


Flott og takk fyrir.

gardar skrifaði:http://vim.wikia.com/wiki/Word_frequency_statistics_for_a_file


Vim er fínn, takk fyrir.


Ég fann reyndar út að þetta virðist ekki vera rétta leiðin fyrir mig það sem ég var að spyrja um þar sem ég er með dálítið stóra skrá eða nokkra tugi þúsunda orða en er að leita að færri en hundrað orðum sem ég þekki ekki öll áður en ég byrja.

Það sem ég geri þá er að taka út réttu línurnar af nokkrum þúsunda í Notepad++ þar sem orðin koma fyrir og vinna með í LibreOffice Calc.