Anonymní profil Petr – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Anonymní profil Petr – Programujte.comAnonymní profil Petr – Programujte.com

 

Příspěvky odeslané z IP adresy 2001:718:1a01:211:1c3e:64...–

Petr
Java › Analýza textu
3. 5. 2016   #210388

Zdravím, 

na netu jsem našel tento kód a chtěl bych si ho vyzkoušet, ale bohužel mi nejde vložit textový soubor k analýze, mohl by mi někdo poradit jak na to? Moc děkuji, za rady. 

Přeji hezký den Petr  


package analyzetext;

import java.nio.charset.Charset;
import java.nio.file.Files;
import java.nio.file.Paths;
import java.util.Collections;
import java.util.List;
import java.util.Scanner;

/**
 *
 * @author On
 */
public class AnalyzeText {

    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in, "UTF-8");
        String adresaSouboru;
        System.out.println("Zadej cestu souboru k analýze!");
        adresaSouboru = sc.nextLine();
        try{
            List<String> textZeSouboru = Files.readAllLines(Paths.get(adresaSouboru), Charset.forName("UTF-8"));
            System.out.println("Text jak byl zadán:");
            System.out.println("=========================================");
            textZeSouboru.removeAll(Collections.singleton(null));
            for(String jedenRadek:textZeSouboru){
                System.out.println(jedenRadek);
            }
            System.out.println("-----------------------------------------");
            String textSeZavorkami = textZeSouboru.toString();
            String textBezZavorek=textZeSouboru.toString().substring(1,textSeZavorkami.length()-1);
            Analyza(textBezZavorek,textZeSouboru.size());
        }
        catch(Exception e){
        System.out.println("Chyba při čtení ze souboru \n"+e.toString());
        }
    }
    public static void Analyza(String celyText, int pocetOdstavcu){
        String cislice="0123456789";
        String samohlasky = "aeiouyáéěíóúůý";
        String souhlasky = "bcčdďfghjklmnpqrřsštťvwxzž";
        String[] slova = celyText.split(" ");
        String[] vety = celyText.split("[.!?]");
        int pocetSamohlasek = 0;
        int pocetSouhlasek = 0;
        int pocetCislic = 0;
        int pocetSlabik = 0;
        int pocetSlov = slova.length;
        int pocetVet = vety.length;
        int kolikataSouhlaska = 0;
        Boolean spravnaSouhlaska = false;
        celyText=celyText.toLowerCase();
        for (char aktualniZnak : celyText.toCharArray())
        {
            if (samohlasky.contains(String.valueOf(aktualniZnak))){
                    pocetSamohlasek++;
            }
            else if (souhlasky.contains(String.valueOf(aktualniZnak))){
                    pocetSouhlasek++;
            }
            else if (cislice.contains(String.valueOf(aktualniZnak))){
                    pocetCislic++;
            }
        }
        for(String slovo:slova){
            for (char aktualniZnak : slovo.toCharArray())
            {
                if (samohlasky.contains(String.valueOf(aktualniZnak))){
                        pocetSlabik++;
                }
                if (souhlasky.contains(String.valueOf(aktualniZnak))){
                        kolikataSouhlaska++;
                        if ("r".contains(String.valueOf(aktualniZnak))||"l".contains(String.valueOf(aktualniZnak))){
                            spravnaSouhlaska=true;
                        }
                }
                else{
                     kolikataSouhlaska=0;
                     spravnaSouhlaska=false;
                }
                if(kolikataSouhlaska>=3&&spravnaSouhlaska){
                    kolikataSouhlaska = 0;
                    spravnaSouhlaska = false;
                    pocetSlabik++;
                }
            }
            int indexOU = 0;
            while( ( indexOU = slovo.indexOf("ou", indexOU+1) ) >= 0 ) {
                if(indexOU!=2)pocetSlabik--;
            }
            int indexAU = 0;
            while( ( indexAU = slovo.indexOf("au", indexAU+1) ) >= 0 ) {
                if(indexAU!=2)pocetSlabik--;
            }
            if (slovo.substring(slovo.length()-1,slovo.length()).equals("l")&&souhlasky.contains(String.valueOf(slovo.substring(slovo.length()-2,slovo.length()-1)))){
                    pocetSlabik++;
            }
            
        }
        System.out.println("Text: (zfromátovaný do jednoho řádku)");
        System.out.println("=========================================");
        System.out.println(celyText);
        System.out.println("-----------------------------------------");
        System.out.println("Počet:");
        System.out.println("=========================================");
        System.out.printf("Samohlásek: %d\n", pocetSamohlasek);
        System.out.printf("Souhlásek: %d\n", pocetSouhlasek);
        System.out.printf("Číslic: %d\n", pocetCislic);
        System.out.printf("Ostaních znaků: %d\n", celyText.length()+1 - (pocetSamohlasek + pocetSouhlasek + pocetCislic)-2*pocetOdstavcu);
        System.out.printf("Všech znaků: %d\n", celyText.length()+1-2*pocetOdstavcu);
        System.out.printf("Slabik: %d\n", pocetSlabik);
        System.out.printf("Slov: %d\n", pocetSlov);
        System.out.printf("Vět: %d\n", pocetVet);
        System.out.printf("Odstavců: %d\n", pocetOdstavcu);
        System.out.println("-----------------------------------------");
        System.out.println("Průměrný počet:");
        System.out.println("=========================================");
        if(pocetSlov!=0){
        System.out.printf("Slabik ve slově: %f\n", (float)pocetSlabik/pocetSlov); 
        }
        else{System.out.printf("Slabik ve slově: %d\n", 0); }
        if(pocetVet!=0){
        System.out.printf("Slov ve větě: %f\n", (float)pocetSlov/pocetVet); 
        }
        else{System.out.printf("Slov ve větě: %d\n", 0); }
        if(pocetOdstavcu!=0){
        System.out.printf("Vět v odstavci: %f\n", (float)pocetVet/pocetOdstavcu);
        }
        else{System.out.printf("Vět v odstavci: %d\n", 0); }
        System.out.println("-----------------------------------------");
        }
    }

 

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032024 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý