wort- und zeichenanzahl in txt-Dateien bestimmen

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • wort- und zeichenanzahl in txt-Dateien bestimmen

    hallo,
    habe ein problem beim herausfinden der wort- bzw. der zeichenanzahl in txt-dateien. mein skript spuckt immer falsche werte aus, obwohl ich vorher mit trim() alle überflüssigen zeichen und mit strip_tags() alle html-tags rausschmeiße. wie bekomme ich alle irrelevanten zeichen raus?

    hier ein ausschnitt des skripts:
    PHP-Code:
    $anz_worte=0;
    $anz_char=0;
    $anz_worte2=0;
    $anz_char2=0;

    //html-tags in String entfernen
    $temp=strip_tags($temp);
    //String in Wörter aufteilen
    $tok=strtok($temp," ");

    //terme und stammformen in Array schreiben
    $result mysql_query("SELECT * FROM reduktionstabelle");

    while (
    $tok) {
      
    $anz_worte2++;
      while(
    $row mysql_fetch_array($result)) {
        
    //Leerzeichen entfernen
        
    $help=trim($row[term]);
        if (
    $tok==$help) {
          
    $tok=$row[stammform];
          break;
        } 
    //if
      
    //while
      
    $tok=trim($tok);
      
    $anz_char2+=strlen($tok);
      
    $korpus_reduziert.=$tok." ";
      
    $tok=strtok(" ");
    //while

    //html-tags in String entfernen
    $temp=strip_tags($korpus);
    //String2 in Wörter aufteilen
    $tok=strtok($korpus," ");

    while (
    $tok) {
      
    //Leerzeichen entfernen
      
    $tok=trim($tok);  
      
    $anz_char+=strlen($tok);
      
    $anz_worte++;
      
    $tok=strtok(" ");
    //while

    //Ausgabe Korpus
    echo "<br><b>Korpus:</b><br>".$korpus;

    //Ausgabe reduzierter Korpus
    echo "<br><b>Korpus ohne Stoppwörter und mit Stammformen:</b><br>".$korpus_reduziert;

    //Ausgabe der Wortanzahl
    echo "<br><br><b>Anzahl der Worte im ursprünglichen Korpus: <b>".$anz_worte."</b><br>";
    echo 
    "<br>Anzahl der Worte im reduzierten Korpus: <b>".$anz_worte2."</b><br>";
    $sub=$anz_worte-$anz_worte2;
    $prozent=100-(bcdiv($anz_worte2,$anz_worte,2)*100);
    echo 
    "<br><b>Reduktion des Korpus' um ".$sub." Stoppworte (".$prozent."%)";
    //Ausgabe der Zeichenanzahl
    echo "<br><br><b>Anzahl der Zeichen im ursprünglichen Korpus (ohne Leerzeichen): <b>".$anz_char."</b><br>";
    echo 
    "<br>Anzahl der Zeichen im reduzierten Korpus: <b>".$anz_char2."</b><br>";
    $sub=$anz_char-$anz_char2;
    $prozent=100-(bcdiv($anz_char2,$anz_char,2)*100);
    echo 
    "<br><b>Reduktion des Korpus' um ".$sub." Zeichen (".$prozent."%)"
    besten dank schonmal.
    schöne grüße,
    thorsten.

  • #2
    naja, leerzeichen sind auch zeichen, werden also gezählt.

    Kommentar


    • #3
      hmm,

      dein script hab ich nur überflogen ...

      - entferne alle nicht-buchstaben(eventuell zahlen behalten?) aus dem text, ersetze punkt, etc. durch space
      - explode am leerzeichen
      - sizeof sollte anzahl der wörter liefern
      - entferne alle leerzeichen
      - strlen sollte anzahl der buchstaben liefern

      nur ne fixe idee, ungetestet.
      Die Zeit hat ihre Kinder längst gefressen

      Kommentar

      Lädt...
      X