Einzelnen Beitrag anzeigen

nahpets
(Gast)

n/a Beiträge
 
#12

AW: Wörter zählen

  Alt 2. Mär 2017, 15:19
Mit dieser Routine komme ich bei oben angehängtem Text auf 612 Wörter.
Delphi-Quellcode:
function WortCount(s : String): Integer;
var
         i : Integer;
         bInWort : Boolean;
begin
  Result := 0;
  bInWort := False;
  for i := 1 to Length(s) do begin
    case s[i] of
      // Wenn Ziffern auch als Zeichen für Wörter gelten sollen,
      // oder Zahlen als Wort zu zählen sind:
      // '0'..'9',
      // Wer weitere Zeichen berücksichtigen will, darf hier gerne erweitern:
      'A'..'Z',
      'Á','É','Í','Ó','Ú',
      'À','È','Ì','Ò','Ù',
      'Ä','Ö','Ü',
      'a'..'z',
      'á','é','í','ó','ú',
      'à','è','ì','ò','ù',
      'ä','ö','ü','ß' : if not bInWort then begin
                          Result := Result + 1;
                          bInWort := True;
                        end;
      else
        bInWort := False;
    end;
  end;
end;

var
        sl : TStringList;
begin
  sl := TStringList.Create;
  sl.LoadFromFile('c:\temp\Von 14 auf 20 Millionen.txt');
  ShowMessage(IntToStr(WortCount(sl.Text)));
  sl.Free;
end;
Text aufbröseln und "von Hand" nachzählen ergab ebenfalls 612 Wörter.

Frage: ist das ein Wort? Welt-Krebs-Bericht
Oder sind das drei Wörter?

Wird mit obiger Routine als drei gezählt.

Word zählt auch die Zahlen oder ein Datum ... als einzelne Wörter.

Wenn man's genau haben will, muss man erstmal definieren, was genau ist
Und dann wird es schnell beliebig komplex.
  Mit Zitat antworten Zitat