Example usage for weka.associations Apriori Apriori

List of usage examples for weka.associations Apriori Apriori

Introduction

In this page you can find the example usage for weka.associations Apriori Apriori.

Prototype

public Apriori() 

Source Link

Document

Constructor that allows to sets default values for the minimum confidence and the maximum number of rules the minimum confidence.

Usage

From source file:ap.mavenproject1.HelloWeka.java

public static void main(String args[]) {
    Instances data = null;//from  w  w  w . j  a va 2 s.c o m
    ArffLoader loader = new ArffLoader();
    try {

        loader.setFile(new File("C:\\Users\\USER\\Desktop\\data.arff"));

        data = loader.getDataSet();
        data.setClassIndex(data.numAttributes() - 1);

    } catch (IOException ex) {
        Logger.getLogger(HelloWeka.class.getName()).log(Level.SEVERE, null, ex);
    }

    Apriori apriori = new Apriori();
    try {
        NumericToNominal numericToNominal = new NumericToNominal();
        numericToNominal.setInputFormat(data);

        Instances nominalData = Filter.useFilter(data, numericToNominal);
        apriori.buildAssociations(nominalData);
        FastVector[] allTheRules;
        allTheRules = apriori.getAllTheRules();
        for (int i = 0; i < allTheRules.length; i++) {
            System.out.println(allTheRules[i]);
        }
        //             BufferedWriter writer = new BufferedWriter(new FileWriter("./output.arff"));
        //                writer.write(nominalData.toString());
        //                writer.flush();
        //                writer.close();

    } catch (Exception ex) {
        Logger.getLogger(HelloWeka.class.getName()).log(Level.SEVERE, null, ex);
    }

}

From source file:Controller.CtlDataMining.java

public String apriori(Instances data) {
    try {/*  ww  w  .  j  av  a  2  s .c  om*/
        //Creamos un objeto de asosiacion por apriori
        Apriori aso = new Apriori();

        //creamos el descriptivo apriori con los datos
        aso.buildAssociations(data);

        /*Se cargan los resultados de loa asociacion apriori*/
        String resApriori = "<br><b><center>Resultados Asociacion "
                + "Apriori</center><br>========<br>El modelo de asociacion "
                + "generado indica los siguientes resultados:" + "<br>========<br></b>";

        //Obtenemos resultados
        for (int i = 0; i < aso.getAssociationRules().getRules().size(); i++) {
            resApriori = resApriori + "<b>" + (i + 1) + ". Si</b> "
                    + aso.getAssociationRules().getRules().get(i).getPremise().toString();
            resApriori = resApriori + " <b>Entonces</b> "
                    + aso.getAssociationRules().getRules().get(i).getConsequence().toString();
            resApriori = resApriori + " <b>Con un</b> "
                    + (int) (aso.getAssociationRules().getRules().get(i).getPrimaryMetricValue() * 100)
                    + "% de probabilidad<br>";
        }

        return resApriori;

    } catch (Exception e) {
        return "El error es" + e.getMessage();
    }
}

From source file:Dao.NCFAS.PruebaWekaDao.java

public List<reglasEncontradas> retornarReglas() throws DAOException, IOException, Exception {

    actualizarItemsGenerales();/*from   ww  w . j a v a  2 s .  com*/
    ServletContext servletContext = (ServletContext) FacesContext.getCurrentInstance().getExternalContext()
            .getContext();

    //Ruta de nuestros archivos
    String pathArchivos = (String) servletContext.getRealPath("/") + "archivosVarios/"; // Sustituye "/" por el directorio ej: "/upload"

    //CREO FICHEROS PARA  LUEGO GUARDAR LOS RESULTADOS DE WEKA  
    FileWriter fichero = null;
    FileWriter fichero2 = null;
    PrintWriter pw = null;

    //CREO UN FICHERO PARA LUEGO GUARDAR LOS RESULTADOS FILTRADOS DE MINERIA   
    //FileWriter ficheroMin = null; 
    // PrintWriter pwMin = null; 

    //   FileWriter ficheroMin = null;
    // PrintWriter pwMin = null;

    //LEO DATASET .ARFF
    //String dataset=pathArchivos+"DataSetPuro.arff";

    String dataset = pathArchivos + "DataSetSimulado.arff";
    //String datasettxt=pathArchivos+"datasettxt.txt";

    //File fichero2 = new File(dataset);
    try {
        BufferedReader fich = new BufferedReader(new FileReader(dataset));
        //Usamos la clase BufferReadeader para tener acceso a un metodo propio (readLine()) y asi mediante un contador contar las lineas.
        int contadorL = 0;
        String linea;
        try {
            //En este caso la condicion final del while corresponde a null, para indicar el final de linea
            while ((linea = fich.readLine()) != null) {
                contadorL++;
            }
            contadorL = contadorL - 13;
            total = contadorL;
            System.out.println("El nmero de lneas :" + contadorL);
        } catch (IOException e) {
            // TODO Bloque catch generado automticamente
            e.printStackTrace();
        }
    } catch (FileNotFoundException e) {
        e.printStackTrace();
    }

    int retorno = 0;
    List<String> almacenaRetorno = null;
    almacenaRetorno = new ArrayList<String>();

    List<String> numVeces = null;
    numVeces = new ArrayList<String>();

    List<reglasEncontradas> reglas = null;
    reglas = new ArrayList<reglasEncontradas>();

    for (int i = 1; i <= 10; i++) {
        numVeces.add("0");
    }

    final String nomFich = pathArchivos + "Resultado.txt";
    Scanner in = null;
    Scanner in2 = null;

    // ficheroMin = new FileWriter(pathArchivos+"reporteMineria.txt");
    //pwMin = new PrintWriter(ficheroMin);

    int band = 0;
    DataSource source = new DataSource(dataset);
    Apriori model = new Apriori();

    try {

        //REALIZAMOS MINER?A DE DATOS CON WEKA
        Instances data = source.getDataSet();
        model.buildAssociations(data);

        //PREPARAR PARA ESCRIBIR LO GENERADO POR WEKA EN UN ARCHIVO RESULTADO.TXT
        fichero = new FileWriter(pathArchivos + "Resultado.txt", true);
        pw = new PrintWriter(fichero);
        pw.println(model);

        //SE MUESTRA LOS RESULTADOS OBTENIDOS POR APRIORI
        //System.out.println("LOS RESULTADOS DE APRIORI A DataSetSimulado.arff son:");
        //System.out.println(model);
        //borra el archivo
        BufferedWriter bw = new BufferedWriter(new FileWriter(pathArchivos + "Resultado.txt"));
        bw.write("");
        fichero.close();

        //System.out.println("Ahora vamos a leer los resultados obtenidos por apriori");
        //BufferedReader bf = new BufferedReader(new FileReader("Resultado.txt"));
        // abre el fichero
        in = new Scanner(new FileReader(nomFich));

        // lee el fichero palabra a palabra
        while (in.hasNext()) {

            // lee primera palabra
            String palabra0 = in.next();
            int numRegla = 0;
            float porcentaje;
            float porcentaje2;
            List<String> almacenaAnterior = null;
            almacenaAnterior = new ArrayList<String>();
            String palabra1;
            String palabra2;
            String palabra3;
            String palabra4;
            String palabra5;
            String palabra6;
            String palabra7;

            String frase1;
            String frase2;
            String frase3;

            Pattern pat = Pattern.compile("DIM2.*");
            Pattern pat2 = Pattern.compile("==>");
            Pattern pat3 = Pattern.compile("^\\d.^");
            Pattern pat4 = Pattern.compile("DIM.*");

            String num1 = ("1.");
            String num2 = ("2.");
            String num3 = ("3.");
            String num4 = ("4.");
            String num5 = ("5.");
            String num6 = ("6.");
            String num7 = ("7.");
            String num8 = ("8.");
            String num9 = ("9.");
            String num10 = ("10.");

            List<String> dimInvolucradas = null;
            dimInvolucradas = new ArrayList<String>();

            Matcher mat;
            //PRIMERA RELGA DE ASOCIACIN
            //BLOQUE 1
            //COMPROBAR SI EST? DIM2 INVOLUCRADA
            mat = pat3.matcher(palabra0);
            //
            if (num1.equals(palabra0)) {
                if (in.hasNext()) {
                    palabra1 = in.next(); // SEGUNDA PALABRA             
                    //GUARDO LO LEIDO
                    almacenaAnterior.add(palabra0);
                    almacenaAnterior.add(palabra1);
                    mat = pat.matcher(palabra1);
                    //PALABRA 1 ES DIMENSION 2?
                    if (mat.matches()) {

                        dimInvolucradas.add(palabra1);
                        String valorDim2 = consultaValor(palabra1);
                        //REVISAMOS LO QUE VIENE DESPUES DE DIM2=
                        if (in.hasNext()) {
                            palabra2 = in.next(); //PALABRA 3 EN EL CAMINO FELIZ
                            if (in.hasNext()) {
                                palabra3 = in.next(); //PALABRA 4 EN EL CAMINO FELIZ                    
                                almacenaAnterior.add(palabra2);
                                almacenaAnterior.add(palabra3);
                                mat = pat2.matcher(palabra3);
                                //SI ES UNA ==> ENTONCES
                                if (mat.matches()) {
                                    if (in.hasNext()) {
                                        palabra4 = in.next(); //PALABRA 5 CAMINO FELIZ
                                        dimInvolucradas.add(palabra4);
                                        palabra4 = consultaPalabra(palabra4);
                                        palabra5 = in.next(); //VALOR DE VECES DESPUES DE =>
                                        palabra6 = in.next();
                                        numXregla1 = Integer.parseInt((palabra2));
                                        numYregla1 = Integer.parseInt((palabra5));
                                        conf1 = consultaConfianza(palabra6);
                                        porcentaje = (numXregla1 * 100) / total;
                                        porcentaje2 = (numYregla1 * 100) / total;
                                        frase1 = ("De un total de " + total
                                                + " NCFAS, se cumple que la dimension Competencias Parentales adquiere un valor igual a "
                                                + valorDim2 + " una cantidad de " + numXregla1 + " veces ("
                                                + porcentaje + "%)(X). Esto afecta a la dimensin " + palabra4
                                                + ", una cantidad de " + palabra5 + " vececs (" + porcentaje2
                                                + "%)(Y). \n Es decir esta regla se cumple el " + conf1
                                                + "% de las veces. \n");
                                        almacenaRetorno.add(frase1);

                                        numVeces.add(1, palabra2 + " " + palabra5);

                                        reglasEncontradas regla1 = new reglasEncontradas();
                                        regla1.setContenido(frase1);
                                        regla1.setValorX(numXregla1);
                                        regla1.setValorY(numYregla1);
                                        regla1.setNumRegla(1);
                                        reglas.add(regla1);
                                        System.out.println("ENTRAMOS AC?");
                                        // band=1;

                                    }
                                }

                                // LA REGLA TIENE MAS DE UNA DIMENSIN INVOLUCRADA ANTES DE ==>
                                else {
                                    if (in.hasNext()) {
                                        palabra4 = in.next(); // DEBER?A SER FLECHA 
                                        //COMPROBAMOS SI LA ==> EST? EN LA cuarta POSICIN
                                        mat = pat2.matcher(palabra4);
                                        if (mat.matches()) {
                                            if (in.hasNext()) {
                                                palabra5 = in.next();
                                                dimInvolucradas.add(almacenaAnterior.get(2));
                                                String dimension = consultaPalabra(almacenaAnterior.get(2));
                                                dimInvolucradas.add(palabra5);

                                                palabra5 = consultaPalabra(palabra5);
                                                palabra6 = in.next();
                                                palabra7 = in.next();
                                                numXregla1 = Integer.parseInt((almacenaAnterior.get(3)));
                                                numYregla1 = Integer.parseInt((palabra6));
                                                porcentaje = (numXregla1 * 100) / total;
                                                porcentaje2 = (numYregla1 * 100) / total;
                                                conf1 = consultaConfianza(palabra7);

                                                frase1 = ("De un total de " + total
                                                        + " NCFAS, se cumple que la dimensin Competencias Parentales adquiere un valor igual a "
                                                        + valorDim2 + "  junto con la dimensin " + dimension
                                                        + ", esto ocurre una cantidad de " + numXregla1
                                                        + " veces (" + porcentaje
                                                        + "%)(X). Esto afecta a la dimensin " + palabra5
                                                        + " una cantidad de " + palabra6 + " veces ("
                                                        + porcentaje2
                                                        + "%)(Y). \n Es decir esta regla se cumple el " + conf1
                                                        + "% de las veces.\n");
                                                almacenaRetorno.add(frase1);
                                                numVeces.add(1, almacenaAnterior.get(3) + " " + palabra6);

                                                System.out.println("LOS VALORES DE LA REGLA 1 SON: "
                                                        + numXregla1 + numYregla1);

                                                reglasEncontradas regla1 = new reglasEncontradas();
                                                regla1.setContenido(frase1);
                                                regla1.setValorX(numXregla1);
                                                regla1.setValorY(numYregla1);
                                                regla1.setNumRegla(1);
                                                reglas.add(regla1);

                                            }
                                        }
                                    }
                                }
                            }
                        }
                    }

                    //BLOQUE 2
                    //AC? SE COMPRUEBA SI SE ENCUENTRA LA DIMENSIN 2 EN SEGUNDA POSICIN           
                    if (in.hasNext()) {
                        palabra2 = in.next(); // 
                        if (in.hasNext()) {
                            palabra3 = in.next(); //               
                            //GUARDAMOS LO LE?DO
                            almacenaAnterior.add(palabra2);
                            almacenaAnterior.add(palabra3);
                            mat = pat2.matcher(palabra3);
                            // SI LA PALABRA 3 ES UNA FLECHA, ENTONCES HAY SOLO UNA DIMENSIN INVOLUCRADA
                            if (mat.matches()) {
                                if (in.hasNext()) {
                                    palabra4 = in.next();

                                    // DESPUES DE LA ==> EST? INVOLUCRADA LA DIM2 ?
                                    mat = pat.matcher(palabra4);
                                    if (mat.matches()) {

                                        palabra5 = in.next();
                                        palabra6 = in.next();
                                        String valorDim2 = consultaValor(palabra4);
                                        String dimension = consultaPalabra(almacenaAnterior.get(1));
                                        numXregla1 = Integer.parseInt((palabra5));
                                        numYregla1 = Integer.parseInt((almacenaAnterior.get(2)));
                                        porcentaje = (numXregla1 * 100) / total;
                                        porcentaje2 = (numYregla1 * 100) / total;
                                        conf1 = consultaConfianza(palabra6);
                                        frase1 = ("De un total de " + total
                                                + " NCFAS, se cumple que la dimensin " + dimension
                                                + ", junto con la dimensin " + palabra5 + ", una cantidad de "
                                                + numXregla1 + " veces (" + porcentaje
                                                + "%) (X). Esto afecta a la dimensin Competencias Parentales adquiere un valor igual a "
                                                + valorDim2 + ", una cantidad de " + numYregla1 + " veces ("
                                                + porcentaje2 + "%)(Y). \n Es decir esta regla se cumple el "
                                                + conf1 + "% de las veces.\n");
                                        almacenaRetorno.add(frase1); // CAMINO FELIZ DIM2 EN POSICIN 2 
                                        //System.out.println(frase1); 
                                        almacenaRetorno.add(frase1); // CAMINO FELIZ DIM2 EN POSICIN 2  
                                        //  band=1;
                                        numVeces.add(1, palabra5 + " " + almacenaAnterior.get(2));

                                        System.out.println("ENTRAMOS AC?" + numXregla2 + numYregla2);
                                        reglasEncontradas regla1 = new reglasEncontradas();
                                        regla1.setContenido(frase1);
                                        regla1.setValorX(numXregla1);
                                        regla1.setValorY(numYregla1);
                                        regla1.setNumRegla(1);
                                        reglas.add(regla1);

                                    }
                                }
                            } else {
                                mat = pat.matcher(palabra2);
                                if (mat.matches()) {
                                    String valorDim2 = consultaValor(palabra2);
                                    if (in.hasNext()) {
                                        palabra4 = in.next();
                                        if (in.hasNext()) {
                                            palabra5 = in.next();
                                            if (in.hasNext()) {
                                                String dimension = consultaPalabra(almacenaAnterior.get(1));
                                                palabra5 = consultaPalabra(palabra5);
                                                palabra6 = in.next();
                                                palabra7 = in.next();
                                                numXregla1 = Integer.parseInt((palabra3));
                                                numYregla1 = Integer.parseInt((palabra6));
                                                conf1 = consultaConfianza(palabra7);

                                                porcentaje = (numXregla1 * 100) / total;
                                                porcentaje2 = (numYregla1 * 100) / total;

                                                frase1 = ("De un total de " + total
                                                        + " NCFAS, se cumple que la dimensin  Competencias Parentales adquiere un valor igual a "
                                                        + valorDim2 + " junto con la dimensin " + dimension
                                                        + ", una cantidad de " + numXregla1 + " veces ("
                                                        + porcentaje + "%) (X). Esto afecta a la dimensin "
                                                        + palabra5 + " , una cantidad de " + palabra6
                                                        + " veces (" + porcentaje2
                                                        + "%)(Y).\n Es decir esta regla se cumple el " + conf1
                                                        + "% de las veces.\n");

                                                numVeces.add(1, palabra3 + " " + palabra6);
                                                reglasEncontradas regla1 = new reglasEncontradas();
                                                regla1.setContenido(frase1);
                                                regla1.setValorX(numXregla1);
                                                regla1.setValorY(numYregla1);
                                                regla1.setNumRegla(1);
                                                reglas.add(regla1);

                                                almacenaRetorno.add(frase1);
                                                ;
                                                //  band=1;
                                            }
                                        }
                                    }
                                }
                                //NO HAY DIMENSIN 2 NI EN LA PRIMERA NI EN LA SEGUNDA POSICIN 
                                else {
                                    if (in.hasNext()) {
                                        palabra4 = in.next();
                                        if (in.hasNext()) {
                                            palabra5 = in.next();

                                            if (in.hasNext()) {
                                                mat = pat.matcher(palabra5);
                                                if (mat.matches()) {
                                                    palabra6 = in.next();
                                                    palabra7 = in.next();
                                                    String valorDim2 = consultaValor(palabra5);
                                                    String dimension = consultaPalabra(almacenaAnterior.get(1));
                                                    String dimension2 = consultaPalabra(
                                                            almacenaAnterior.get(2));

                                                    numXregla1 = Integer.parseInt((almacenaAnterior.get(3)));
                                                    numYregla1 = Integer.parseInt((palabra6));
                                                    conf1 = consultaConfianza(palabra7);
                                                    porcentaje = (numXregla1 * 100) / total;
                                                    porcentaje2 = (numYregla1 * 100) / total;

                                                    frase1 = ("De un total de " + total
                                                            + " NCFAS, se cumple que la dimensin " + dimension
                                                            + " junto con la dimensin " + dimension2
                                                            + " , una cantidad de " + numXregla1 + " veces ("
                                                            + porcentaje
                                                            + "%) (X). Esto afecta a la dimensin Competencias Parentales la cual adquiere un valor igual a "
                                                            + valorDim2 + " , una cantidad de " + palabra6
                                                            + " veces (" + porcentaje2
                                                            + "%)(Y).\n Es decir esta regla se cumple el "
                                                            + conf1 + "% de las veces.\n");
                                                    numVeces.add(1, almacenaAnterior.get(3) + " " + palabra6);

                                                    reglasEncontradas regla1 = new reglasEncontradas();
                                                    regla1.setContenido(frase1);
                                                    regla1.setValorX(numXregla1);
                                                    regla1.setValorY(numYregla1);
                                                    regla1.setNumRegla(1);
                                                    reglas.add(regla1);

                                                    almacenaRetorno.add(frase1);
                                                    //band=1;
                                                }
                                            }
                                        }
                                    }
                                }
                            }
                        }
                    }
                }
            }

            //SEGUNDA RELGA DE ASOCIACIN
            //BLOQUE 1
            //COMPROBAR SI EST? DIM2 INVOLUCRADA
            mat = pat3.matcher(palabra0);
            //
            if (num2.equals(palabra0)) {
                if (in.hasNext()) {
                    palabra1 = in.next(); // SEGUNDA PALABRA             
                    //GUARDO LO LEIDO
                    almacenaAnterior.add(palabra0);
                    almacenaAnterior.add(palabra1);
                    mat = pat.matcher(palabra1);
                    //PALABRA 1 ES DIMENSION 2?
                    if (mat.matches()) {

                        dimInvolucradas.add(palabra1);
                        String valorDim2 = consultaValor(palabra1);
                        //REVISAMOS LO QUE VIENE DESPUES DE DIM2=
                        if (in.hasNext()) {
                            palabra2 = in.next(); //PALABRA 3 EN EL CAMINO FELIZ
                            if (in.hasNext()) {
                                palabra3 = in.next(); //PALABRA 4 EN EL CAMINO FELIZ                    
                                almacenaAnterior.add(palabra2);
                                almacenaAnterior.add(palabra3);
                                mat = pat2.matcher(palabra3);
                                //SI ES UNA ==> ENTONCES
                                if (mat.matches()) {
                                    if (in.hasNext()) {
                                        palabra4 = in.next(); //PALABRA 5 CAMINO FELIZ
                                        dimInvolucradas.add(palabra4);
                                        palabra4 = consultaPalabra(palabra4);
                                        palabra5 = in.next(); //VALOR DE VECES DESPUES DE =>
                                        palabra6 = in.next();
                                        numXregla2 = Integer.parseInt((palabra2));
                                        numYregla2 = Integer.parseInt((palabra5));
                                        conf2 = consultaConfianza(palabra6);
                                        porcentaje = (numXregla2 * 100) / total;
                                        porcentaje2 = (numYregla2 * 100) / total;
                                        frase1 = ("De un total de " + total
                                                + " NCFAS, se cumple que la dimension Competencias Parentales adquiere un valor igual a "
                                                + valorDim2 + " una cantidad de " + numXregla2 + " veces ("
                                                + porcentaje + "%) (X). Esto afecta a la dimensin " + palabra4
                                                + ", una cantidad de " + palabra5 + " vececs (" + porcentaje2
                                                + "%) (Y). \n Es decir esta regla se cumple el " + conf2
                                                + "% de las veces. \n");
                                        almacenaRetorno.add(frase1);

                                        numVeces.add(1, palabra2 + " " + palabra5);

                                        reglasEncontradas regla2 = new reglasEncontradas();
                                        regla2.setContenido(frase1);
                                        regla2.setValorX(numXregla2);
                                        regla2.setValorY(numYregla2);
                                        regla2.setNumRegla(2);
                                        reglas.add(regla2);
                                        System.out.println("ENTRAMOS AC?");
                                        // band=1;

                                    }
                                }

                                // LA REGLA TIENE MAS DE UNA DIMENSIN INVOLUCRADA ANTES DE ==>
                                else {
                                    if (in.hasNext()) {
                                        palabra4 = in.next(); // DEBER?A SER FLECHA 
                                        //COMPROBAMOS SI LA ==> EST? EN LA cuarta POSICIN
                                        mat = pat2.matcher(palabra4);
                                        if (mat.matches()) {
                                            if (in.hasNext()) {
                                                palabra5 = in.next();
                                                dimInvolucradas.add(almacenaAnterior.get(2));
                                                String dimension = consultaPalabra(almacenaAnterior.get(2));
                                                dimInvolucradas.add(palabra5);

                                                palabra5 = consultaPalabra(palabra5);
                                                palabra6 = in.next();
                                                palabra7 = in.next();
                                                numXregla2 = Integer.parseInt((almacenaAnterior.get(3)));
                                                numYregla2 = Integer.parseInt((palabra6));
                                                porcentaje = (numXregla2 * 100) / total;
                                                porcentaje2 = (numYregla2 * 100) / total;
                                                conf2 = consultaConfianza(palabra7);

                                                frase1 = ("De un total de " + total
                                                        + " NCFAS, se cumple que la dimensin Competencias Parentales adquiere un valor igual a "
                                                        + valorDim2 + "  junto con la dimensin " + dimension
                                                        + ", esto ocurre una cantidad de " + numXregla2
                                                        + " veces (" + porcentaje
                                                        + "%) (X). Esto afecta a la dimensin " + palabra5
                                                        + " una cantidad de " + palabra6 + " veces ("
                                                        + porcentaje2
                                                        + "%)(Y). \n Es decir esta regla se cumple el " + conf2
                                                        + "% de las veces.\n");
                                                almacenaRetorno.add(frase1);
                                                numVeces.add(1, almacenaAnterior.get(3) + " " + palabra6);

                                                System.out.println("LOS VALORES DE LA REGLA 1 SON: "
                                                        + numXregla2 + numYregla2);

                                                reglasEncontradas regla2 = new reglasEncontradas();
                                                regla2.setContenido(frase1);
                                                regla2.setValorX(numXregla2);
                                                regla2.setValorY(numYregla2);
                                                regla2.setNumRegla(2);
                                                reglas.add(regla2);

                                            }
                                        }
                                    }
                                }
                            }
                        }
                    }

                    //BLOQUE 2
                    //AC? SE COMPRUEBA SI SE ENCUENTRA LA DIMENSIN 2 EN SEGUNDA POSICIN           
                    if (in.hasNext()) {
                        palabra2 = in.next(); // 
                        if (in.hasNext()) {
                            palabra3 = in.next(); //               
                            //GUARDAMOS LO LE?DO
                            almacenaAnterior.add(palabra2);
                            almacenaAnterior.add(palabra3);
                            mat = pat2.matcher(palabra3);
                            // SI LA PALABRA 3 ES UNA FLECHA, ENTONCES HAY SOLO UNA DIMENSIN INVOLUCRADA
                            if (mat.matches()) {
                                if (in.hasNext()) {
                                    palabra4 = in.next();

                                    // DESPUES DE LA ==> EST? INVOLUCRADA LA DIM2 ?
                                    mat = pat.matcher(palabra4);
                                    if (mat.matches()) {

                                        palabra5 = in.next();
                                        palabra6 = in.next();
                                        String valorDim2 = consultaValor(palabra4);
                                        String dimension = consultaPalabra(almacenaAnterior.get(1));
                                        numXregla2 = Integer.parseInt((palabra5));
                                        numYregla2 = Integer.parseInt((almacenaAnterior.get(2)));
                                        porcentaje = (numXregla2 * 100) / total;
                                        porcentaje2 = (numYregla2 * 100) / total;
                                        conf2 = consultaConfianza(palabra6);
                                        frase1 = ("De un total de " + total
                                                + " NCFAS, se cumple que la dimensin " + dimension
                                                + ", junto con la dimensin " + palabra5 + ", una cantidad de "
                                                + numXregla2 + " veces (" + porcentaje
                                                + "%) (X). Esto afecta a la dimensin Competencias Parentales adquiere un valor igual a "
                                                + valorDim2 + ", una cantidad de " + numYregla2 + " veces ("
                                                + porcentaje2 + "%)(Y). \n Es decir esta regla se cumple el "
                                                + conf2 + "% de las veces.\n");
                                        almacenaRetorno.add(frase1); // CAMINO FELIZ DIM2 EN POSICIN 2 
                                        //System.out.println(frase1); 
                                        almacenaRetorno.add(frase1); // CAMINO FELIZ DIM2 EN POSICIN 2  
                                        //  band=1;
                                        numVeces.add(1, palabra5 + " " + almacenaAnterior.get(2));

                                        System.out.println("ENTRAMOS AC?" + numXregla2 + numYregla2);
                                        reglasEncontradas regla2 = new reglasEncontradas();
                                        regla2.setContenido(frase1);
                                        regla2.setValorX(numXregla2);
                                        regla2.setValorY(numYregla2);
                                        regla2.setNumRegla(2);
                                        reglas.add(regla2);

                                    }
                                }
                            } else {
                                mat = pat.matcher(palabra2);
                                if (mat.matches()) {
                                    String valorDim2 = consultaValor(palabra2);
                                    if (in.hasNext()) {
                                        palabra4 = in.next();
                                        if (in.hasNext()) {
                                            palabra5 = in.next();
                                            if (in.hasNext()) {
                                                String dimension = consultaPalabra(almacenaAnterior.get(1));
                                                palabra5 = consultaPalabra(palabra5);
                                                palabra6 = in.next();
                                                palabra7 = in.next();
                                                numXregla2 = Integer.parseInt((palabra3));
                                                numYregla2 = Integer.parseInt((palabra6));
                                                conf2 = consultaConfianza(palabra7);

                                                porcentaje = (numXregla2 * 100) / total;
                                                porcentaje2 = (numYregla2 * 100) / total;

                                                frase1 = ("De un total de " + total
                                                        + " NCFAS, se cumple que la dimensin  Competencias Parentales adquiere un valor igual a "
                                                        + valorDim2 + " junto con la dimensin " + dimension
                                                        + ", una cantidad de " + numXregla2 + " veces ("
                                                        + porcentaje + "%) (X). Esto afecta a la dimensin "
                                                        + palabra5 + " , una cantidad de " + palabra6
                                                        + " veces (" + porcentaje2
                                                        + "%)(Y).\n Es decir esta regla se cumple el " + conf2
                                                        + "% de las veces.\n");

                                                numVeces.add(1, palabra3 + " " + palabra6);
                                                reglasEncontradas regla2 = new reglasEncontradas();
                                                regla2.setContenido(frase1);
                                                regla2.setValorX(numXregla2);
                                                regla2.setValorY(numYregla2);
                                                regla2.setNumRegla(2);
                                                reglas.add(regla2);

                                                almacenaRetorno.add(frase1);
                                                ;
                                                //  band=1;
                                            }
                                        }
                                    }
                                }
                                //NO HAY DIMENSIN 2 NI EN LA PRIMERA NI EN LA SEGUNDA POSICIN 
                                else {
                                    if (in.hasNext()) {
                                        palabra4 = in.next();
                                        if (in.hasNext()) {
                                            palabra5 = in.next();

                                            if (in.hasNext()) {
                                                mat = pat.matcher(palabra5);
                                                if (mat.matches()) {
                                                    palabra6 = in.next();
                                                    palabra7 = in.next();
                                                    String valorDim2 = consultaValor(palabra5);
                                                    String dimension = consultaPalabra(almacenaAnterior.get(1));
                                                    String dimension2 = consultaPalabra(
                                                            almacenaAnterior.get(2));

                                                    numXregla2 = Integer.parseInt((almacenaAnterior.get(3)));
                                                    numYregla2 = Integer.parseInt((palabra6));
                                                    conf2 = consultaConfianza(palabra7);
                                                    porcentaje = (numXregla2 * 100) / total;
                                                    porcentaje2 = (numYregla2 * 100) / total;

                                                    frase1 = ("De un total de " + total
                                                            + " NCFAS, se cumple que la dimensin " + dimension
                                                            + " junto con la dimensin " + dimension2
                                                            + " , una cantidad de " + numXregla2 + " veces ("
                                                            + porcentaje
                                                            + "%) (X). Esto afecta a la dimensin Competencias Parentales la cual adquiere un valor igual a "
                                                            + valorDim2 + " , una cantidad de " + palabra6
                                                            + " veces (" + porcentaje2
                                                            + "%)(Y).\n Es decir esta regla se cumple el "
                                                            + conf2 + "% de las veces.\n");
                                                    numVeces.add(1, almacenaAnterior.get(3) + " " + palabra6);

                                                    reglasEncontradas regla2 = new reglasEncontradas();
                                                    regla2.setContenido(frase1);
                                                    regla2.setValorX(numXregla2);
                                                    regla2.setValorY(numYregla2);
                                                    regla2.setNumRegla(2);
                                                    reglas.add(regla2);

                                                    almacenaRetorno.add(frase1);
                                                    //band=1;
                                                }
                                            }
                                        }
                                    }
                                }
                            }
                        }
                    }
                }
            }

            //ERCERA RELGA DE ASOCIACIN
            //BLOQUE 1
            //COMPROBAR SI EST? DIM2 INVOLUCRADA
            mat = pat3.matcher(palabra0);
            //
            if (num3.equals(palabra0)) {
                if (in.hasNext()) {
                    palabra1 = in.next(); // SEGUNDA PALABRA             
                    //GUARDO LO LEIDO
                    almacenaAnterior.add(palabra0);
                    almacenaAnterior.add(palabra1);
                    mat = pat.matcher(palabra1);
                    //PALABRA 1 ES DIMENSION 2?
                    if (mat.matches()) {

                        dimInvolucradas.add(palabra1);
                        String valorDim2 = consultaValor(palabra1);
                        //REVISAMOS LO QUE VIENE DESPUES DE DIM2=
                        if (in.hasNext()) {
                            palabra2 = in.next(); //PALABRA 3 EN EL CAMINO FELIZ
                            if (in.hasNext()) {
                                palabra3 = in.next(); //PALABRA 4 EN EL CAMINO FELIZ                    
                                almacenaAnterior.add(palabra2);
                                almacenaAnterior.add(palabra3);
                                mat = pat2.matcher(palabra3);
                                //SI ES UNA ==> ENTONCES
                                if (mat.matches()) {
                                    if (in.hasNext()) {
                                        palabra4 = in.next(); //PALABRA 5 CAMINO FELIZ
                                        dimInvolucradas.add(palabra4);
                                        palabra4 = consultaPalabra(palabra4);
                                        palabra5 = in.next(); //VALOR DE VECES DESPUES DE =>
                                        palabra6 = in.next();
                                        numXregla3 = Integer.parseInt((palabra2));
                                        numYregla3 = Integer.parseInt((palabra5));
                                        conf3 = consultaConfianza(palabra6);
                                        porcentaje = (numXregla3 * 100) / total;
                                        porcentaje2 = (numYregla3 * 100) / total;
                                        frase1 = ("De un total de " + total
                                                + " NCFAS, se cumple que la dimension Competencias Parentales adquiere un valor igual a "
                                                + valorDim2 + " una cantidad de " + numXregla3 + " veces ("
                                                + porcentaje + "%) (X). Esto afecta a la dimensin " + palabra4
                                                + ", una cantidad de " + palabra5 + " vececs (" + porcentaje2
                                                + "%) (Y). \n Es decir esta regla se cumple el " + conf3
                                                + "% de las veces. \n");
                                        almacenaRetorno.add(frase1);

                                        numVeces.add(1, palabra2 + " " + palabra5);

                                        reglasEncontradas regla3 = new reglasEncontradas();
                                        regla3.setContenido(frase1);
                                        regla3.setValorX(numXregla3);
                                        regla3.setValorY(numYregla3);
                                        regla3.setNumRegla(3);
                                        reglas.add(regla3);
                                        System.out.println("ENTRAMOS AC?");
                                        // band=1;

                                    }
                                }

                                // LA REGLA TIENE MAS DE UNA DIMENSIN INVOLUCRADA ANTES DE ==>
                                else {
                                    if (in.hasNext()) {
                                        palabra4 = in.next(); // DEBER?A SER FLECHA 
                                        //COMPROBAMOS SI LA ==> EST? EN LA cuarta POSICIN
                                        mat = pat2.matcher(palabra4);
                                        if (mat.matches()) {
                                            if (in.hasNext()) {
                                                palabra5 = in.next();
                                                dimInvolucradas.add(almacenaAnterior.get(2));
                                                String dimension = consultaPalabra(almacenaAnterior.get(2));
                                                dimInvolucradas.add(palabra5);

                                                palabra5 = consultaPalabra(palabra5);
                                                palabra6 = in.next();
                                                palabra7 = in.next();
                                                numXregla3 = Integer.parseInt((almacenaAnterior.get(3)));
                                                numYregla3 = Integer.parseInt((palabra6));
                                                porcentaje = (numXregla3 * 100) / total;
                                                porcentaje2 = (numYregla3 * 100) / total;
                                                conf3 = consultaConfianza(palabra7);

                                                frase1 = ("De un total de " + total
                                                        + " NCFAS, se cumple que la dimensin Competencias Parentales adquiere un valor igual a "
                                                        + valorDim2 + "  junto con la dimensin " + dimension
                                                        + ", esto ocurre una cantidad de " + numXregla3
                                                        + " veces (" + porcentaje
                                                        + "%). Esto afecta a la dimensin " + palabra5
                                                        + " una cantidad de " + palabra6 + " veces ("
                                                        + porcentaje2
                                                        + "%)(Y). \n Es decir esta regla se cumple el " + conf3
                                                        + "% de las veces.\n");
                                                almacenaRetorno.add(frase1);
                                                numVeces.add(1, almacenaAnterior.get(3) + " " + palabra6);

                                                System.out.println("LOS VALORES DE LA REGLA 1 SON: "
                                                        + numXregla3 + numYregla3);

                                                reglasEncontradas regla3 = new reglasEncontradas();
                                                regla3.setContenido(frase1);
                                                regla3.setValorX(numXregla3);
                                                regla3.setValorY(numYregla3);
                                                regla3.setNumRegla(3);
                                                reglas.add(regla3);

                                            }
                                        }
                                    }
                                }
                            }
                        }
                    }

                    //BLOQUE 2
                    //AC? SE COMPRUEBA SI SE ENCUENTRA LA DIMENSIN 2 EN SEGUNDA POSICIN           
                    if (in.hasNext()) {
                        palabra2 = in.next(); // 
                        if (in.hasNext()) {
                            palabra3 = in.next(); //               
                            //GUARDAMOS LO LE?DO
                            almacenaAnterior.add(palabra2);
                            almacenaAnterior.add(palabra3);
                            mat = pat2.matcher(palabra3);
                            // SI LA PALABRA 3 ES UNA FLECHA, ENTONCES HAY SOLO UNA DIMENSIN INVOLUCRADA
                            if (mat.matches()) {
                                if (in.hasNext()) {
                                    palabra4 = in.next();

                                    // DESPUES DE LA ==> EST? INVOLUCRADA LA DIM2 ?
                                    mat = pat.matcher(palabra4);
                                    if (mat.matches()) {

                                        palabra5 = in.next();
                                        palabra6 = in.next();
                                        String valorDim2 = consultaValor(palabra4);
                                        String dimension = consultaPalabra(almacenaAnterior.get(1));
                                        numXregla3 = Integer.parseInt((palabra5));
                                        numYregla3 = Integer.parseInt((almacenaAnterior.get(2)));
                                        porcentaje = (numXregla3 * 100) / total;
                                        porcentaje2 = (numYregla3 * 100) / total;
                                        conf3 = consultaConfianza(palabra6);
                                        frase1 = ("De un total de " + total
                                                + " NCFAS, se cumple que la dimensin " + dimension
                                                + ", junto con la dimensin " + palabra5 + ", una cantidad de "
                                                + numXregla3 + " veces (" + porcentaje
                                                + "%) (X). Esto afecta a la dimensin Competencias Parentales adquiere un valor igual a "
                                                + valorDim2 + ", una cantidad de " + numYregla3 + " veces ("
                                                + porcentaje2 + "%)(Y). \n Es decir esta regla se cumple el "
                                                + conf3 + "% de las veces.\n");
                                        almacenaRetorno.add(frase1); // CAMINO FELIZ DIM2 EN POSICIN 2 
                                        //System.out.println(frase1); 
                                        almacenaRetorno.add(frase1); // CAMINO FELIZ DIM2 EN POSICIN 2  
                                        //  band=1;
                                        numVeces.add(1, palabra5 + " " + almacenaAnterior.get(2));

                                        System.out.println("ENTRAMOS AC?" + numXregla3 + numYregla3);
                                        reglasEncontradas regla3 = new reglasEncontradas();
                                        regla3.setContenido(frase1);
                                        regla3.setValorX(numXregla3);
                                        regla3.setValorY(numYregla3);
                                        regla3.setNumRegla(3);
                                        reglas.add(regla3);

                                    }
                                }
                            } else {
                                mat = pat.matcher(palabra2);
                                if (mat.matches()) {
                                    String valorDim2 = consultaValor(palabra2);
                                    if (in.hasNext()) {
                                        palabra4 = in.next();
                                        if (in.hasNext()) {
                                            palabra5 = in.next();
                                            if (in.hasNext()) {
                                                String dimension = consultaPalabra(almacenaAnterior.get(1));
                                                palabra5 = consultaPalabra(palabra5);
                                                palabra6 = in.next();
                                                palabra7 = in.next();
                                                numXregla3 = Integer.parseInt((palabra3));
                                                numYregla3 = Integer.parseInt((palabra6));
                                                conf3 = consultaConfianza(palabra7);

                                                porcentaje = (numXregla3 * 100) / total;
                                                porcentaje2 = (numYregla3 * 100) / total;

                                                frase1 = ("De un total de " + total
                                                        + " NCFAS, se cumple que la dimensin  Competencias Parentales adquiere un valor igual a "
                                                        + valorDim2 + " junto con la dimensin " + dimension
                                                        + ", una cantidad de " + numXregla3 + " veces ("
                                                        + porcentaje + "%) (X). Esto afecta a la dimensin "
                                                        + palabra5 + " , una cantidad de " + palabra6
                                                        + " veces (" + porcentaje2
                                                        + "%)(Y).\n Es decir esta regla se cumple el " + conf3
                                                        + "% de las veces.\n");

                                                numVeces.add(1, palabra3 + " " + palabra6);
                                                reglasEncontradas regla3 = new reglasEncontradas();
                                                regla3.setContenido(frase1);
                                                regla3.setValorX(numXregla3);
                                                regla3.setValorY(numYregla3);
                                                regla3.setNumRegla(3);
                                                reglas.add(regla3);

                                                almacenaRetorno.add(frase1);
                                                ;
                                                //  band=1;
                                            }
                                        }
                                    }
                                }
                                //NO HAY DIMENSIN 2 NI EN LA PRIMERA NI EN LA SEGUNDA POSICIN 
                                else {
                                    if (in.hasNext()) {
                                        palabra4 = in.next();
                                        if (in.hasNext()) {
                                            palabra5 = in.next();

                                            if (in.hasNext()) {
                                                mat = pat.matcher(palabra5);
                                                if (mat.matches()) {
                                                    palabra6 = in.next();
                                                    palabra7 = in.next();
                                                    String valorDim2 = consultaValor(palabra5);
                                                    String dimension = consultaPalabra(almacenaAnterior.get(1));
                                                    String dimension2 = consultaPalabra(
                                                            almacenaAnterior.get(2));

                                                    numXregla3 = Integer.parseInt((almacenaAnterior.get(3)));
                                                    numYregla3 = Integer.parseInt((palabra6));
                                                    conf3 = consultaConfianza(palabra7);
                                                    porcentaje = (numXregla3 * 100) / total;
                                                    porcentaje2 = (numYregla3 * 100) / total;

                                                    frase1 = ("De un total de " + total
                                                            + " NCFAS, se cumple que la dimensin " + dimension
                                                            + " junto con la dimensin " + dimension2
                                                            + " , una cantidad de " + numXregla3 + " veces ("
                                                            + porcentaje
                                                            + "%) (X). Esto afecta a la dimensin Competencias Parentales la cual adquiere un valor igual a "
                                                            + valorDim2 + " , una cantidad de " + palabra6
                                                            + " veces (" + porcentaje2
                                                            + "%)(Y).\n Es decir esta regla se cumple el "
                                                            + conf3 + "% de las veces.\n");
                                                    numVeces.add(1, almacenaAnterior.get(3) + " " + palabra6);

                                                    reglasEncontradas regla3 = new reglasEncontradas();
                                                    regla3.setContenido(frase1);
                                                    regla3.setValorX(numXregla3);
                                                    regla3.setValorY(numYregla3);
                                                    regla3.setNumRegla(3);
                                                    reglas.add(regla3);

                                                    almacenaRetorno.add(frase1);
                                                    //band=1;
                                                }
                                            }
                                        }
                                    }
                                }
                            }
                        }
                    }
                }
            }

            //cuarta RELGA DE ASOCIACIN
            //BLOQUE 1
            //COMPROBAR SI EST? DIM2 INVOLUCRADA
            mat = pat3.matcher(palabra0);
            //
            if (num4.equals(palabra0)) {
                if (in.hasNext()) {
                    palabra1 = in.next(); // SEGUNDA PALABRA             
                    //GUARDO LO LEIDO
                    almacenaAnterior.add(palabra0);
                    almacenaAnterior.add(palabra1);
                    mat = pat.matcher(palabra1);
                    //PALABRA 1 ES DIMENSION 2?
                    if (mat.matches()) {

                        dimInvolucradas.add(palabra1);
                        String valorDim2 = consultaValor(palabra1);
                        //REVISAMOS LO QUE VIENE DESPUES DE DIM2=
                        if (in.hasNext()) {
                            palabra2 = in.next(); //PALABRA 3 EN EL CAMINO FELIZ
                            if (in.hasNext()) {
                                palabra3 = in.next(); //PALABRA 4 EN EL CAMINO FELIZ                    
                                almacenaAnterior.add(palabra2);
                                almacenaAnterior.add(palabra3);
                                mat = pat2.matcher(palabra3);
                                //SI ES UNA ==> ENTONCES
                                if (mat.matches()) {
                                    if (in.hasNext()) {
                                        palabra4 = in.next(); //PALABRA 5 CAMINO FELIZ
                                        dimInvolucradas.add(palabra4);
                                        palabra4 = consultaPalabra(palabra4);
                                        palabra5 = in.next(); //VALOR DE VECES DESPUES DE =>
                                        palabra6 = in.next();
                                        numXregla4 = Integer.parseInt((palabra2));
                                        numYregla4 = Integer.parseInt((palabra5));
                                        conf4 = consultaConfianza(palabra6);
                                        porcentaje = (numXregla4 * 100) / total;
                                        porcentaje2 = (numYregla4 * 100) / total;
                                        frase1 = ("De un total de " + total
                                                + " NCFAS, se cumple que la dimension Competencias Parentales adquiere un valor igual a "
                                                + valorDim2 + " una cantidad de " + numXregla4 + " veces ("
                                                + porcentaje + "%) (X). Esto afecta a la dimensin " + palabra4
                                                + ", una cantidad de " + palabra5 + " vececs (" + porcentaje2
                                                + "%) (Y). \n Es decir esta regla se cumple el " + conf4
                                                + "% de las veces. \n");
                                        almacenaRetorno.add(frase1);

                                        numVeces.add(1, palabra2 + " " + palabra5);

                                        reglasEncontradas regla4 = new reglasEncontradas();
                                        regla4.setContenido(frase1);
                                        regla4.setValorX(numXregla4);
                                        regla4.setValorY(numYregla4);
                                        regla4.setNumRegla(4);
                                        reglas.add(regla4);
                                        System.out.println("ENTRAMOS AC?");
                                        // band=1;

                                    }
                                }

                                // LA REGLA TIENE MAS DE UNA DIMENSIN INVOLUCRADA ANTES DE ==>
                                else {
                                    if (in.hasNext()) {
                                        palabra4 = in.next(); // DEBER?A SER FLECHA 
                                        //COMPROBAMOS SI LA ==> EST? EN LA cuarta POSICIN
                                        mat = pat2.matcher(palabra4);
                                        if (mat.matches()) {
                                            if (in.hasNext()) {
                                                palabra5 = in.next();
                                                dimInvolucradas.add(almacenaAnterior.get(2));
                                                String dimension = consultaPalabra(almacenaAnterior.get(2));
                                                dimInvolucradas.add(palabra5);

                                                palabra5 = consultaPalabra(palabra5);
                                                palabra6 = in.next();
                                                palabra7 = in.next();
                                                numXregla4 = Integer.parseInt((almacenaAnterior.get(3)));
                                                numYregla4 = Integer.parseInt((palabra6));
                                                porcentaje = (numXregla4 * 100) / total;
                                                porcentaje2 = (numYregla4 * 100) / total;
                                                conf4 = consultaConfianza(palabra7);

                                                frase1 = ("De un total de " + total
                                                        + " NCFAS, se cumple que la dimensin Competencias Parentales adquiere un valor igual a "
                                                        + valorDim2 + "  junto con la dimensin " + dimension
                                                        + ", esto ocurre una cantidad de " + numXregla4
                                                        + " veces (" + porcentaje
                                                        + "%). Esto afecta a la dimensin " + palabra5
                                                        + " una cantidad de " + palabra6 + " veces ("
                                                        + porcentaje2
                                                        + "%)(Y). \n Es decir esta regla se cumple el " + conf4
                                                        + "% de las veces.\n");
                                                almacenaRetorno.add(frase1);
                                                numVeces.add(1, almacenaAnterior.get(3) + " " + palabra6);

                                                System.out.println("LOS VALORES DE LA REGLA 1 SON: "
                                                        + numXregla4 + numYregla4);

                                                reglasEncontradas regla4 = new reglasEncontradas();
                                                regla4.setContenido(frase1);
                                                regla4.setValorX(numXregla4);
                                                regla4.setValorY(numYregla4);
                                                regla4.setNumRegla(4);
                                                reglas.add(regla4);

                                            }
                                        }
                                    }
                                }
                            }
                        }
                    }

                    //BLOQUE 2
                    //AC? SE COMPRUEBA SI SE ENCUENTRA LA DIMENSIN 2 EN SEGUNDA POSICIN           
                    if (in.hasNext()) {
                        palabra2 = in.next(); // 
                        if (in.hasNext()) {
                            palabra3 = in.next(); //               
                            //GUARDAMOS LO LE?DO
                            almacenaAnterior.add(palabra2);
                            almacenaAnterior.add(palabra3);
                            mat = pat2.matcher(palabra3);
                            // SI LA PALABRA 3 ES UNA FLECHA, ENTONCES HAY SOLO UNA DIMENSIN INVOLUCRADA
                            if (mat.matches()) {
                                if (in.hasNext()) {
                                    palabra4 = in.next();

                                    // DESPUES DE LA ==> EST? INVOLUCRADA LA DIM2 ?
                                    mat = pat.matcher(palabra4);
                                    if (mat.matches()) {

                                        palabra5 = in.next();
                                        palabra6 = in.next();
                                        String valorDim2 = consultaValor(palabra4);
                                        String dimension = consultaPalabra(almacenaAnterior.get(1));
                                        numXregla4 = Integer.parseInt((palabra5));
                                        numYregla4 = Integer.parseInt((almacenaAnterior.get(2)));
                                        porcentaje = (numXregla4 * 100) / total;
                                        porcentaje2 = (numYregla4 * 100) / total;
                                        conf4 = consultaConfianza(palabra6);
                                        frase1 = ("De un total de " + total
                                                + " NCFAS, se cumple que la dimensin " + dimension
                                                + ", junto con la dimensin " + palabra5 + ", una cantidad de "
                                                + numXregla4 + " veces (" + porcentaje
                                                + "%) (X). Esto afecta a la dimensin Competencias Parentales adquiere un valor igual a "
                                                + valorDim2 + ", una cantidad de " + numYregla4 + " veces ("
                                                + porcentaje2 + "%)(Y). \n Es decir esta regla se cumple el "
                                                + conf4 + "% de las veces.\n");
                                        almacenaRetorno.add(frase1); // CAMINO FELIZ DIM2 EN POSICIN 2 
                                        //System.out.println(frase1); 
                                        almacenaRetorno.add(frase1); // CAMINO FELIZ DIM2 EN POSICIN 2  
                                        //  band=1;
                                        numVeces.add(1, palabra5 + " " + almacenaAnterior.get(2));

                                        System.out.println("ENTRAMOS AC?" + numXregla4 + numYregla4);
                                        reglasEncontradas regla4 = new reglasEncontradas();
                                        regla4.setContenido(frase1);
                                        regla4.setValorX(numXregla4);
                                        regla4.setValorY(numYregla4);
                                        regla4.setNumRegla(4);
                                        reglas.add(regla4);

                                    }
                                }
                            } else {
                                mat = pat.matcher(palabra2);
                                if (mat.matches()) {
                                    String valorDim2 = consultaValor(palabra2);
                                    if (in.hasNext()) {
                                        palabra4 = in.next();
                                        if (in.hasNext()) {
                                            palabra5 = in.next();
                                            if (in.hasNext()) {
                                                String dimension = consultaPalabra(almacenaAnterior.get(1));
                                                palabra5 = consultaPalabra(palabra5);
                                                palabra6 = in.next();
                                                palabra7 = in.next();
                                                numXregla4 = Integer.parseInt((palabra3));
                                                numYregla4 = Integer.parseInt((palabra6));
                                                conf4 = consultaConfianza(palabra7);

                                                porcentaje = (numXregla4 * 100) / total;
                                                porcentaje2 = (numYregla4 * 100) / total;

                                                frase1 = ("De un total de " + total
                                                        + " NCFAS, se cumple que la dimensin  Competencias Parentales adquiere un valor igual a "
                                                        + valorDim2 + " junto con la dimensin " + dimension
                                                        + ", una cantidad de " + numXregla4 + " veces ("
                                                        + porcentaje + "%) (X). Esto afecta a la dimensin "
                                                        + palabra5 + " , una cantidad de " + palabra6
                                                        + " veces (" + porcentaje2
                                                        + "%)(Y).\n Es decir esta regla se cumple el " + conf4
                                                        + "% de las veces.\n");

                                                numVeces.add(1, palabra3 + " " + palabra6);
                                                reglasEncontradas regla4 = new reglasEncontradas();
                                                regla4.setContenido(frase1);
                                                regla4.setValorX(numXregla4);
                                                regla4.setValorY(numYregla4);
                                                regla4.setNumRegla(4);
                                                reglas.add(regla4);

                                                almacenaRetorno.add(frase1);
                                                ;
                                                //  band=1;
                                            }
                                        }
                                    }
                                }
                                //NO HAY DIMENSIN 2 NI EN LA PRIMERA NI EN LA SEGUNDA POSICIN 
                                else {
                                    if (in.hasNext()) {
                                        palabra4 = in.next();
                                        if (in.hasNext()) {
                                            palabra5 = in.next();

                                            if (in.hasNext()) {
                                                mat = pat.matcher(palabra5);
                                                if (mat.matches()) {
                                                    palabra6 = in.next();
                                                    palabra7 = in.next();
                                                    String valorDim2 = consultaValor(palabra5);
                                                    String dimension = consultaPalabra(almacenaAnterior.get(1));
                                                    String dimension2 = consultaPalabra(
                                                            almacenaAnterior.get(2));

                                                    numXregla4 = Integer.parseInt((almacenaAnterior.get(3)));
                                                    numYregla4 = Integer.parseInt((palabra6));
                                                    conf4 = consultaConfianza(palabra7);
                                                    porcentaje = (numXregla4 * 100) / total;
                                                    porcentaje2 = (numYregla4 * 100) / total;

                                                    frase1 = ("De un total de " + total
                                                            + " NCFAS, se cumple que la dimensin " + dimension
                                                            + " junto con la dimensin " + dimension2
                                                            + " , una cantidad de " + numXregla4 + " veces ("
                                                            + porcentaje
                                                            + "%) (X). Esto afecta a la dimensin Competencias Parentales la cual adquiere un valor igual a "
                                                            + valorDim2 + " , una cantidad de " + palabra6
                                                            + " veces (" + porcentaje2
                                                            + "%)(Y).\n Es decir esta regla se cumple el "
                                                            + conf4 + "% de las veces.\n");
                                                    numVeces.add(1, almacenaAnterior.get(3) + " " + palabra6);

                                                    reglasEncontradas regla4 = new reglasEncontradas();
                                                    regla4.setContenido(frase1);
                                                    regla4.setValorX(numXregla4);
                                                    regla4.setValorY(numYregla4);
                                                    regla4.setNumRegla(4);
                                                    reglas.add(regla4);

                                                    almacenaRetorno.add(frase1);
                                                    //band=1;
                                                }
                                            }
                                        }
                                    }
                                }
                            }
                        }
                    }
                }
            }

            //PRIMERA RELGA DE ASOCIACIN
            //BLOQUE 1
            //COMPROBAR SI EST? DIM2 INVOLUCRADA
            mat = pat3.matcher(palabra0);
            //
            if (num5.equals(palabra0)) {
                if (in.hasNext()) {
                    palabra1 = in.next(); // SEGUNDA PALABRA             
                    //GUARDO LO LEIDO
                    almacenaAnterior.add(palabra0);
                    almacenaAnterior.add(palabra1);
                    mat = pat.matcher(palabra1);
                    //PALABRA 1 ES DIMENSION 2?
                    if (mat.matches()) {

                        dimInvolucradas.add(palabra1);
                        String valorDim2 = consultaValor(palabra1);
                        //REVISAMOS LO QUE VIENE DESPUES DE DIM2=
                        if (in.hasNext()) {
                            palabra2 = in.next(); //PALABRA 3 EN EL CAMINO FELIZ
                            if (in.hasNext()) {
                                palabra3 = in.next(); //PALABRA 4 EN EL CAMINO FELIZ                    
                                almacenaAnterior.add(palabra2);
                                almacenaAnterior.add(palabra3);
                                mat = pat2.matcher(palabra3);
                                //SI ES UNA ==> ENTONCES
                                if (mat.matches()) {
                                    if (in.hasNext()) {
                                        palabra4 = in.next(); //PALABRA 5 CAMINO FELIZ
                                        dimInvolucradas.add(palabra4);
                                        palabra4 = consultaPalabra(palabra4);
                                        palabra5 = in.next(); //VALOR DE VECES DESPUES DE =>
                                        palabra6 = in.next();
                                        numXregla5 = Integer.parseInt((palabra2));
                                        numYregla5 = Integer.parseInt((palabra5));
                                        conf5 = consultaConfianza(palabra6);
                                        porcentaje = (numXregla5 * 100) / total;
                                        porcentaje2 = (numYregla5 * 100) / total;
                                        frase1 = ("De un total de " + total
                                                + " NCFAS, se cumple que la dimension Competencias Parentales adquiere un valor igual a "
                                                + valorDim2 + " una cantidad de " + numXregla5 + " veces ("
                                                + porcentaje + "%) (X). Esto afecta a la dimensin " + palabra4
                                                + ", una cantidad de " + palabra5 + " vececs (" + porcentaje2
                                                + "%) (Y). \n Es decir esta regla se cumple el " + conf5
                                                + "% de las veces. \n");
                                        almacenaRetorno.add(frase1);

                                        numVeces.add(1, palabra2 + " " + palabra5);

                                        reglasEncontradas regla5 = new reglasEncontradas();
                                        regla5.setContenido(frase1);
                                        regla5.setValorX(numXregla5);
                                        regla5.setValorY(numYregla5);
                                        regla5.setNumRegla(5);
                                        reglas.add(regla5);
                                        System.out.println("ENTRAMOS AC?");
                                        // band=1;

                                    }
                                }

                                // LA REGLA TIENE MAS DE UNA DIMENSIN INVOLUCRADA ANTES DE ==>
                                else {
                                    if (in.hasNext()) {
                                        palabra4 = in.next(); // DEBER?A SER FLECHA 
                                        //COMPROBAMOS SI LA ==> EST? EN LA cuarta POSICIN
                                        mat = pat2.matcher(palabra4);
                                        if (mat.matches()) {
                                            if (in.hasNext()) {
                                                palabra5 = in.next();
                                                dimInvolucradas.add(almacenaAnterior.get(2));
                                                String dimension = consultaPalabra(almacenaAnterior.get(2));
                                                dimInvolucradas.add(palabra5);

                                                palabra5 = consultaPalabra(palabra5);
                                                palabra6 = in.next();
                                                palabra7 = in.next();
                                                numXregla5 = Integer.parseInt((almacenaAnterior.get(3)));
                                                numYregla5 = Integer.parseInt((palabra6));
                                                porcentaje = (numXregla5 * 100) / total;
                                                porcentaje2 = (numYregla5 * 100) / total;
                                                conf5 = consultaConfianza(palabra7);

                                                frase1 = ("De un total de " + total
                                                        + " NCFAS, se cumple que la dimensin Competencias Parentales adquiere un valor igual a "
                                                        + valorDim2 + "  junto con la dimensin " + dimension
                                                        + ", esto ocurre una cantidad de " + numXregla5
                                                        + " veces (" + porcentaje
                                                        + "%). Esto afecta a la dimensin " + palabra5
                                                        + " una cantidad de " + palabra6 + " veces ("
                                                        + porcentaje2
                                                        + "%)(Y). \n Es decir esta regla se cumple el " + conf5
                                                        + "% de las veces.\n");
                                                almacenaRetorno.add(frase1);
                                                numVeces.add(1, almacenaAnterior.get(3) + " " + palabra6);

                                                System.out.println("LOS VALORES DE LA REGLA 1 SON: "
                                                        + numXregla5 + numYregla5);

                                                reglasEncontradas regla5 = new reglasEncontradas();
                                                regla5.setContenido(frase1);
                                                regla5.setValorX(numXregla5);
                                                regla5.setValorY(numYregla5);
                                                regla5.setNumRegla(5);
                                                reglas.add(regla5);

                                            }
                                        }
                                    }
                                }
                            }
                        }
                    }

                    //BLOQUE 2
                    //AC? SE COMPRUEBA SI SE ENCUENTRA LA DIMENSIN 2 EN SEGUNDA POSICIN           
                    if (in.hasNext()) {
                        palabra2 = in.next(); // 
                        if (in.hasNext()) {
                            palabra3 = in.next(); //               
                            //GUARDAMOS LO LE?DO
                            almacenaAnterior.add(palabra2);
                            almacenaAnterior.add(palabra3);
                            mat = pat2.matcher(palabra3);
                            // SI LA PALABRA 3 ES UNA FLECHA, ENTONCES HAY SOLO UNA DIMENSIN INVOLUCRADA
                            if (mat.matches()) {
                                if (in.hasNext()) {
                                    palabra4 = in.next();

                                    // DESPUES DE LA ==> EST? INVOLUCRADA LA DIM2 ?
                                    mat = pat.matcher(palabra4);
                                    if (mat.matches()) {

                                        palabra5 = in.next();
                                        palabra6 = in.next();
                                        String valorDim2 = consultaValor(palabra4);
                                        String dimension = consultaPalabra(almacenaAnterior.get(1));
                                        numXregla5 = Integer.parseInt((palabra5));
                                        numYregla5 = Integer.parseInt((almacenaAnterior.get(2)));
                                        porcentaje = (numXregla5 * 100) / total;
                                        porcentaje2 = (numYregla5 * 100) / total;
                                        conf5 = consultaConfianza(palabra6);
                                        frase1 = ("De un total de " + total
                                                + " NCFAS, se cumple que la dimensin " + dimension
                                                + ", junto con la dimensin " + palabra5 + ", una cantidad de "
                                                + numXregla5 + " veces (" + porcentaje
                                                + "%) (X). Esto afecta a la dimensin Competencias Parentales adquiere un valor igual a "
                                                + valorDim2 + ", una cantidad de " + numYregla5 + " veces ("
                                                + porcentaje2 + "%)(Y). \n Es decir esta regla se cumple el "
                                                + conf5 + "% de las veces.\n");
                                        almacenaRetorno.add(frase1); // CAMINO FELIZ DIM2 EN POSICIN 2 
                                        //System.out.println(frase1); 
                                        almacenaRetorno.add(frase1); // CAMINO FELIZ DIM2 EN POSICIN 2  
                                        //  band=1;
                                        numVeces.add(1, palabra5 + " " + almacenaAnterior.get(2));

                                        System.out.println("ENTRAMOS AC?" + numXregla5 + numYregla5);
                                        reglasEncontradas regla5 = new reglasEncontradas();
                                        regla5.setContenido(frase1);
                                        regla5.setValorX(numXregla5);
                                        regla5.setValorY(numYregla5);
                                        regla5.setNumRegla(5);
                                        reglas.add(regla5);

                                    }
                                }
                            } else {
                                mat = pat.matcher(palabra2);
                                if (mat.matches()) {
                                    String valorDim2 = consultaValor(palabra2);
                                    if (in.hasNext()) {
                                        palabra4 = in.next();
                                        if (in.hasNext()) {
                                            palabra5 = in.next();
                                            if (in.hasNext()) {
                                                String dimension = consultaPalabra(almacenaAnterior.get(1));
                                                palabra5 = consultaPalabra(palabra5);
                                                palabra6 = in.next();
                                                palabra7 = in.next();
                                                numXregla5 = Integer.parseInt((palabra3));
                                                numYregla5 = Integer.parseInt((palabra6));
                                                conf5 = consultaConfianza(palabra7);

                                                porcentaje = (numXregla5 * 100) / total;
                                                porcentaje2 = (numYregla5 * 100) / total;

                                                frase1 = ("De un total de " + total
                                                        + " NCFAS, se cumple que la dimensin  Competencias Parentales adquiere un valor igual a "
                                                        + valorDim2 + " junto con la dimensin " + dimension
                                                        + ", una cantidad de " + numXregla5 + " veces ("
                                                        + porcentaje + "%) (X). Esto afecta a la dimensin "
                                                        + palabra5 + " , una cantidad de " + palabra6
                                                        + " veces (" + porcentaje2
                                                        + "%)(Y).\n Es decir esta regla se cumple el " + conf5
                                                        + "% de las veces.\n");

                                                numVeces.add(1, palabra3 + " " + palabra6);
                                                reglasEncontradas regla5 = new reglasEncontradas();
                                                regla5.setContenido(frase1);
                                                regla5.setValorX(numXregla5);
                                                regla5.setValorY(numYregla5);
                                                regla5.setNumRegla(5);
                                                reglas.add(regla5);

                                                almacenaRetorno.add(frase1);
                                                ;
                                                //  band=1;
                                            }
                                        }
                                    }
                                }
                                //NO HAY DIMENSIN 2 NI EN LA PRIMERA NI EN LA SEGUNDA POSICIN 
                                else {
                                    if (in.hasNext()) {
                                        palabra4 = in.next();
                                        if (in.hasNext()) {
                                            palabra5 = in.next();

                                            if (in.hasNext()) {
                                                mat = pat.matcher(palabra5);
                                                if (mat.matches()) {
                                                    palabra6 = in.next();
                                                    palabra7 = in.next();
                                                    String valorDim2 = consultaValor(palabra5);
                                                    String dimension = consultaPalabra(almacenaAnterior.get(1));
                                                    String dimension2 = consultaPalabra(
                                                            almacenaAnterior.get(2));

                                                    numXregla5 = Integer.parseInt((almacenaAnterior.get(3)));
                                                    numYregla5 = Integer.parseInt((palabra6));
                                                    conf5 = consultaConfianza(palabra7);
                                                    porcentaje = (numXregla5 * 100) / total;
                                                    porcentaje2 = (numYregla5 * 100) / total;

                                                    frase1 = ("De un total de " + total
                                                            + " NCFAS, se cumple que la dimensin " + dimension
                                                            + " junto con la dimensin " + dimension2
                                                            + " , una cantidad de " + numXregla5 + " veces ("
                                                            + porcentaje
                                                            + "%) (X). Esto afecta a la dimensin Competencias Parentales la cual adquiere un valor igual a "
                                                            + valorDim2 + " , una cantidad de " + palabra6
                                                            + " veces (" + porcentaje2
                                                            + "%)(Y).\n Es decir esta regla se cumple el "
                                                            + conf5 + "% de las veces.\n");
                                                    numVeces.add(1, almacenaAnterior.get(3) + " " + palabra6);

                                                    reglasEncontradas regla5 = new reglasEncontradas();
                                                    regla5.setContenido(frase1);
                                                    regla5.setValorX(numXregla5);
                                                    regla5.setValorY(numYregla5);
                                                    regla5.setNumRegla(5);
                                                    reglas.add(regla5);

                                                    almacenaRetorno.add(frase1);
                                                    //band=1;
                                                }
                                            }
                                        }
                                    }
                                }
                            }
                        }
                    }
                }
            }

            //SEXTA RELGA DE ASOCIACIN
            //BLOQUE 1
            //COMPROBAR SI EST? DIM2 INVOLUCRADA
            mat = pat3.matcher(palabra0);
            //
            if (num6.equals(palabra0)) {
                if (in.hasNext()) {
                    palabra1 = in.next(); // SEGUNDA PALABRA             
                    //GUARDO LO LEIDO
                    almacenaAnterior.add(palabra0);
                    almacenaAnterior.add(palabra1);
                    mat = pat.matcher(palabra1);
                    //PALABRA 1 ES DIMENSION 2?
                    if (mat.matches()) {

                        dimInvolucradas.add(palabra1);
                        String valorDim2 = consultaValor(palabra1);
                        //REVISAMOS LO QUE VIENE DESPUES DE DIM2=
                        if (in.hasNext()) {
                            palabra2 = in.next(); //PALABRA 3 EN EL CAMINO FELIZ
                            if (in.hasNext()) {
                                palabra3 = in.next(); //PALABRA 4 EN EL CAMINO FELIZ                    
                                almacenaAnterior.add(palabra2);
                                almacenaAnterior.add(palabra3);
                                mat = pat2.matcher(palabra3);
                                //SI ES UNA ==> ENTONCES
                                if (mat.matches()) {
                                    if (in.hasNext()) {
                                        palabra4 = in.next(); //PALABRA 5 CAMINO FELIZ
                                        dimInvolucradas.add(palabra4);
                                        palabra4 = consultaPalabra(palabra4);
                                        palabra5 = in.next(); //VALOR DE VECES DESPUES DE =>
                                        palabra6 = in.next();
                                        numXregla6 = Integer.parseInt((palabra2));
                                        numYregla6 = Integer.parseInt((palabra5));
                                        conf6 = consultaConfianza(palabra6);
                                        porcentaje = (numXregla6 * 100) / total;
                                        porcentaje2 = (numYregla6 * 100) / total;
                                        frase1 = ("De un total de " + total
                                                + " NCFAS, se cumple que la dimension Competencias Parentales adquiere un valor igual a "
                                                + valorDim2 + " una cantidad de " + numXregla6 + " veces ("
                                                + porcentaje + "%) (X). Esto afecta a la dimensin " + palabra4
                                                + ", una cantidad de " + palabra5 + " vececs (" + porcentaje2
                                                + "%) (Y). \n Es decir esta regla se cumple el " + conf6
                                                + "% de las veces. \n");
                                        almacenaRetorno.add(frase1);

                                        numVeces.add(1, palabra2 + " " + palabra5);

                                        reglasEncontradas regla6 = new reglasEncontradas();
                                        regla6.setContenido(frase1);
                                        regla6.setValorX(numXregla6);
                                        regla6.setValorY(numYregla6);
                                        regla6.setNumRegla(6);
                                        reglas.add(regla6);
                                        System.out.println("ENTRAMOS AC?");
                                        // band=1;

                                    }
                                }

                                // LA REGLA TIENE MAS DE UNA DIMENSIN INVOLUCRADA ANTES DE ==>
                                else {
                                    if (in.hasNext()) {
                                        palabra4 = in.next(); // DEBER?A SER FLECHA 
                                        //COMPROBAMOS SI LA ==> EST? EN LA cuarta POSICIN
                                        mat = pat2.matcher(palabra4);
                                        if (mat.matches()) {
                                            if (in.hasNext()) {
                                                palabra5 = in.next();
                                                dimInvolucradas.add(almacenaAnterior.get(2));
                                                String dimension = consultaPalabra(almacenaAnterior.get(2));
                                                dimInvolucradas.add(palabra5);

                                                palabra5 = consultaPalabra(palabra5);
                                                palabra6 = in.next();
                                                palabra7 = in.next();
                                                numXregla6 = Integer.parseInt((almacenaAnterior.get(3)));
                                                numYregla6 = Integer.parseInt((palabra6));
                                                porcentaje = (numXregla6 * 100) / total;
                                                porcentaje2 = (numYregla6 * 100) / total;
                                                conf6 = consultaConfianza(palabra7);

                                                frase1 = ("De un total de " + total
                                                        + " NCFAS, se cumple que la dimensin Competencias Parentales adquiere un valor igual a "
                                                        + valorDim2 + "  junto con la dimensin " + dimension
                                                        + ", esto ocurre una cantidad de " + numXregla6
                                                        + " veces (" + porcentaje
                                                        + "%) (X). Esto afecta a la dimensin " + palabra5
                                                        + " una cantidad de " + palabra6 + " veces ("
                                                        + porcentaje2
                                                        + "%)(Y). \n Es decir esta regla se cumple el " + conf6
                                                        + "% de las veces.\n");
                                                almacenaRetorno.add(frase1);
                                                numVeces.add(1, almacenaAnterior.get(3) + " " + palabra6);

                                                System.out.println("LOS VALORES DE LA REGLA 1 SON: "
                                                        + numXregla6 + numYregla6);

                                                reglasEncontradas regla6 = new reglasEncontradas();
                                                regla6.setContenido(frase1);
                                                regla6.setValorX(numXregla6);
                                                regla6.setValorY(numYregla6);
                                                regla6.setNumRegla(6);
                                                reglas.add(regla6);

                                            }
                                        }
                                    }
                                }
                            }
                        }
                    }

                    //BLOQUE 2
                    //AC? SE COMPRUEBA SI SE ENCUENTRA LA DIMENSIN 2 EN SEGUNDA POSICIN           
                    if (in.hasNext()) {
                        palabra2 = in.next(); // 
                        if (in.hasNext()) {
                            palabra3 = in.next(); //               
                            //GUARDAMOS LO LE?DO
                            almacenaAnterior.add(palabra2);
                            almacenaAnterior.add(palabra3);
                            mat = pat2.matcher(palabra3);
                            // SI LA PALABRA 3 ES UNA FLECHA, ENTONCES HAY SOLO UNA DIMENSIN INVOLUCRADA
                            if (mat.matches()) {
                                if (in.hasNext()) {
                                    palabra4 = in.next();

                                    // DESPUES DE LA ==> EST? INVOLUCRADA LA DIM2 ?
                                    mat = pat.matcher(palabra4);
                                    if (mat.matches()) {

                                        palabra5 = in.next();
                                        palabra6 = in.next();
                                        String valorDim2 = consultaValor(palabra4);
                                        String dimension = consultaPalabra(almacenaAnterior.get(1));
                                        numXregla6 = Integer.parseInt((palabra5));
                                        numYregla6 = Integer.parseInt((almacenaAnterior.get(2)));
                                        porcentaje = (numXregla6 * 100) / total;
                                        porcentaje2 = (numYregla6 * 100) / total;
                                        conf6 = consultaConfianza(palabra6);
                                        frase1 = ("De un total de " + total
                                                + " NCFAS, se cumple que la dimensin " + dimension
                                                + ", junto con la dimensin " + palabra5 + ", una cantidad de "
                                                + numXregla6 + " veces (" + porcentaje
                                                + "%) (X). Esto afecta a la dimensin Competencias Parentales adquiere un valor igual a "
                                                + valorDim2 + ", una cantidad de " + numYregla6 + " veces ("
                                                + porcentaje2 + "%)(Y). \n Es decir esta regla se cumple el "
                                                + conf6 + "% de las veces.\n");
                                        almacenaRetorno.add(frase1); // CAMINO FELIZ DIM2 EN POSICIN 2 
                                        //System.out.println(frase1); 
                                        almacenaRetorno.add(frase1); // CAMINO FELIZ DIM2 EN POSICIN 2  
                                        //  band=1;
                                        numVeces.add(1, palabra5 + " " + almacenaAnterior.get(2));

                                        System.out.println("ENTRAMOS AC?" + numXregla6 + numYregla6);
                                        reglasEncontradas regla6 = new reglasEncontradas();
                                        regla6.setContenido(frase1);
                                        regla6.setValorX(numXregla6);
                                        regla6.setValorY(numYregla6);
                                        regla6.setNumRegla(6);
                                        reglas.add(regla6);

                                    }
                                }
                            } else {
                                mat = pat.matcher(palabra2);
                                if (mat.matches()) {
                                    String valorDim2 = consultaValor(palabra2);
                                    if (in.hasNext()) {
                                        palabra4 = in.next();
                                        if (in.hasNext()) {
                                            palabra5 = in.next();
                                            if (in.hasNext()) {
                                                String dimension = consultaPalabra(almacenaAnterior.get(1));
                                                palabra5 = consultaPalabra(palabra5);
                                                palabra6 = in.next();
                                                palabra7 = in.next();
                                                numXregla6 = Integer.parseInt((palabra3));
                                                numYregla6 = Integer.parseInt((palabra6));
                                                conf6 = consultaConfianza(palabra7);

                                                porcentaje = (numXregla6 * 100) / total;
                                                porcentaje2 = (numYregla6 * 100) / total;

                                                frase1 = ("De un total de " + total
                                                        + " NCFAS, se cumple que la dimensin  Competencias Parentales adquiere un valor igual a "
                                                        + valorDim2 + " junto con la dimensin " + dimension
                                                        + ", una cantidad de " + numXregla6 + " veces ("
                                                        + porcentaje + "%) (X). Esto afecta a la dimensin "
                                                        + palabra5 + " , una cantidad de " + palabra6
                                                        + " veces (" + porcentaje2
                                                        + "%)(Y).\n Es decir esta regla se cumple el " + conf6
                                                        + "% de las veces.\n");

                                                numVeces.add(1, palabra3 + " " + palabra6);
                                                reglasEncontradas regla6 = new reglasEncontradas();
                                                regla6.setContenido(frase1);
                                                regla6.setValorX(numXregla6);
                                                regla6.setValorY(numYregla6);
                                                regla6.setNumRegla(6);
                                                reglas.add(regla6);

                                                almacenaRetorno.add(frase1);
                                                ;
                                                //  band=1;
                                            }
                                        }
                                    }
                                }
                                //NO HAY DIMENSIN 2 NI EN LA PRIMERA NI EN LA SEGUNDA POSICIN 
                                else {
                                    if (in.hasNext()) {
                                        palabra4 = in.next();
                                        if (in.hasNext()) {
                                            palabra5 = in.next();

                                            if (in.hasNext()) {
                                                mat = pat.matcher(palabra5);
                                                if (mat.matches()) {
                                                    palabra6 = in.next();
                                                    palabra7 = in.next();
                                                    String valorDim2 = consultaValor(palabra5);
                                                    String dimension = consultaPalabra(almacenaAnterior.get(1));
                                                    String dimension2 = consultaPalabra(
                                                            almacenaAnterior.get(2));

                                                    numXregla6 = Integer.parseInt((almacenaAnterior.get(3)));
                                                    numYregla6 = Integer.parseInt((palabra6));
                                                    conf6 = consultaConfianza(palabra7);
                                                    porcentaje = (numXregla6 * 100) / total;
                                                    porcentaje2 = (numYregla6 * 100) / total;

                                                    frase1 = ("De un total de " + total
                                                            + " NCFAS, se cumple que la dimensin " + dimension
                                                            + " junto con la dimensin " + dimension2
                                                            + " , una cantidad de " + numXregla6 + " veces ("
                                                            + porcentaje
                                                            + "%) (X). Esto afecta a la dimensin Competencias Parentales la cual adquiere un valor igual a "
                                                            + valorDim2 + " , una cantidad de " + palabra6
                                                            + " veces (" + porcentaje2
                                                            + "%)(Y).\n Es decir esta regla se cumple el "
                                                            + conf6 + "% de las veces.\n");
                                                    numVeces.add(1, almacenaAnterior.get(3) + " " + palabra6);

                                                    reglasEncontradas regla6 = new reglasEncontradas();
                                                    regla6.setContenido(frase1);
                                                    regla6.setValorX(numXregla6);
                                                    regla6.setValorY(numYregla6);
                                                    regla6.setNumRegla(6);
                                                    reglas.add(regla6);

                                                    almacenaRetorno.add(frase1);
                                                    //band=1;
                                                }
                                            }
                                        }
                                    }
                                }
                            }
                        }
                    }
                }
            }

            //SEPTIMA RELGA DE ASOCIACIN
            //BLOQUE 1
            //COMPROBAR SI EST? DIM2 INVOLUCRADA
            mat = pat3.matcher(palabra0);
            //
            if (num7.equals(palabra0)) {
                if (in.hasNext()) {
                    palabra1 = in.next(); // SEGUNDA PALABRA             
                    //GUARDO LO LEIDO
                    almacenaAnterior.add(palabra0);
                    almacenaAnterior.add(palabra1);
                    mat = pat.matcher(palabra1);
                    //PALABRA 1 ES DIMENSION 2?
                    if (mat.matches()) {

                        dimInvolucradas.add(palabra1);
                        String valorDim2 = consultaValor(palabra1);
                        //REVISAMOS LO QUE VIENE DESPUES DE DIM2=
                        if (in.hasNext()) {
                            palabra2 = in.next(); //PALABRA 3 EN EL CAMINO FELIZ
                            if (in.hasNext()) {
                                palabra3 = in.next(); //PALABRA 4 EN EL CAMINO FELIZ                    
                                almacenaAnterior.add(palabra2);
                                almacenaAnterior.add(palabra3);
                                mat = pat2.matcher(palabra3);
                                //SI ES UNA ==> ENTONCES
                                if (mat.matches()) {
                                    if (in.hasNext()) {
                                        palabra4 = in.next(); //PALABRA 5 CAMINO FELIZ
                                        dimInvolucradas.add(palabra4);
                                        palabra4 = consultaPalabra(palabra4);
                                        palabra5 = in.next(); //VALOR DE VECES DESPUES DE =>
                                        palabra6 = in.next();
                                        numXregla7 = Integer.parseInt((palabra2));
                                        numYregla7 = Integer.parseInt((palabra5));
                                        conf7 = consultaConfianza(palabra6);
                                        porcentaje = (numXregla7 * 100) / total;
                                        porcentaje2 = (numYregla7 * 100) / total;
                                        frase1 = ("De un total de " + total
                                                + " NCFAS, se cumple que la dimension Competencias Parentales adquiere un valor igual a "
                                                + valorDim2 + " una cantidad de " + numXregla7 + " veces ("
                                                + porcentaje + "%) (X). Esto afecta a la dimensin " + palabra4
                                                + ", una cantidad de " + palabra5 + " vececs (" + porcentaje2
                                                + "%) (Y). \n Es decir esta regla se cumple el " + conf7
                                                + "% de las veces. \n");
                                        almacenaRetorno.add(frase1);

                                        numVeces.add(1, palabra2 + " " + palabra5);

                                        reglasEncontradas regla7 = new reglasEncontradas();
                                        regla7.setContenido(frase1);
                                        regla7.setValorX(numXregla7);
                                        regla7.setValorY(numYregla7);
                                        regla7.setNumRegla(7);
                                        reglas.add(regla7);
                                        System.out.println("ENTRAMOS AC?");
                                        // band=1;

                                    }
                                }

                                // LA REGLA TIENE MAS DE UNA DIMENSIN INVOLUCRADA ANTES DE ==>
                                else {
                                    if (in.hasNext()) {
                                        palabra4 = in.next(); // DEBER?A SER FLECHA 
                                        //COMPROBAMOS SI LA ==> EST? EN LA cuarta POSICIN
                                        mat = pat2.matcher(palabra4);
                                        if (mat.matches()) {
                                            if (in.hasNext()) {
                                                palabra5 = in.next();
                                                dimInvolucradas.add(almacenaAnterior.get(2));
                                                String dimension = consultaPalabra(almacenaAnterior.get(2));
                                                dimInvolucradas.add(palabra5);

                                                palabra5 = consultaPalabra(palabra5);
                                                palabra6 = in.next();
                                                palabra7 = in.next();
                                                numXregla7 = Integer.parseInt((almacenaAnterior.get(3)));
                                                numYregla7 = Integer.parseInt((palabra6));
                                                porcentaje = (numXregla7 * 100) / total;
                                                porcentaje2 = (numYregla7 * 100) / total;
                                                conf7 = consultaConfianza(palabra7);

                                                frase1 = ("De un total de " + total
                                                        + " NCFAS, se cumple que la dimensin Competencias Parentales adquiere un valor igual a "
                                                        + valorDim2 + "  junto con la dimensin " + dimension
                                                        + ", esto ocurre una cantidad de " + numXregla7
                                                        + " veces (" + porcentaje
                                                        + "%) (X). Esto afecta a la dimensin " + palabra5
                                                        + " una cantidad de " + palabra6 + " veces ("
                                                        + porcentaje2
                                                        + "%)(Y). \n Es decir esta regla se cumple el " + conf7
                                                        + "% de las veces.\n");
                                                almacenaRetorno.add(frase1);
                                                numVeces.add(1, almacenaAnterior.get(3) + " " + palabra6);

                                                System.out.println("LOS VALORES DE LA REGLA 1 SON: "
                                                        + numXregla7 + numYregla7);

                                                reglasEncontradas regla7 = new reglasEncontradas();
                                                regla7.setContenido(frase1);
                                                regla7.setValorX(numXregla7);
                                                regla7.setValorY(numYregla7);
                                                regla7.setNumRegla(7);
                                                reglas.add(regla7);

                                            }
                                        }
                                    }
                                }
                            }
                        }
                    }

                    //BLOQUE 2
                    //AC? SE COMPRUEBA SI SE ENCUENTRA LA DIMENSIN 2 EN SEGUNDA POSICIN           
                    if (in.hasNext()) {
                        palabra2 = in.next(); // 
                        if (in.hasNext()) {
                            palabra3 = in.next(); //               
                            //GUARDAMOS LO LE?DO
                            almacenaAnterior.add(palabra2);
                            almacenaAnterior.add(palabra3);
                            mat = pat2.matcher(palabra3);
                            // SI LA PALABRA 3 ES UNA FLECHA, ENTONCES HAY SOLO UNA DIMENSIN INVOLUCRADA
                            if (mat.matches()) {
                                if (in.hasNext()) {
                                    palabra4 = in.next();

                                    // DESPUES DE LA ==> EST? INVOLUCRADA LA DIM2 ?
                                    mat = pat.matcher(palabra4);
                                    if (mat.matches()) {

                                        palabra5 = in.next();
                                        palabra6 = in.next();
                                        String valorDim2 = consultaValor(palabra4);
                                        String dimension = consultaPalabra(almacenaAnterior.get(1));
                                        numXregla7 = Integer.parseInt((palabra5));
                                        numYregla7 = Integer.parseInt((almacenaAnterior.get(2)));
                                        porcentaje = (numXregla7 * 100) / total;
                                        porcentaje2 = (numYregla7 * 100) / total;
                                        conf7 = consultaConfianza(palabra6);
                                        frase1 = ("De un total de " + total
                                                + " NCFAS, se cumple que la dimensin " + dimension
                                                + ", junto con la dimensin " + palabra5 + ", una cantidad de "
                                                + numXregla7 + " veces (" + porcentaje
                                                + "%) (X). Esto afecta a la dimensin Competencias Parentales adquiere un valor igual a "
                                                + valorDim2 + ", una cantidad de " + numYregla7 + " veces ("
                                                + porcentaje2 + "%)(Y). \n Es decir esta regla se cumple el "
                                                + conf7 + "% de las veces.\n");
                                        almacenaRetorno.add(frase1); // CAMINO FELIZ DIM2 EN POSICIN 2 
                                        //System.out.println(frase1); 
                                        almacenaRetorno.add(frase1); // CAMINO FELIZ DIM2 EN POSICIN 2  
                                        //  band=1;
                                        numVeces.add(1, palabra5 + " " + almacenaAnterior.get(2));

                                        System.out.println("ENTRAMOS AC?" + numXregla7 + numYregla7);
                                        reglasEncontradas regla7 = new reglasEncontradas();
                                        regla7.setContenido(frase1);
                                        regla7.setValorX(numXregla7);
                                        regla7.setValorY(numYregla7);
                                        regla7.setNumRegla(7);
                                        reglas.add(regla7);

                                    }
                                }
                            } else {
                                mat = pat.matcher(palabra2);
                                if (mat.matches()) {
                                    String valorDim2 = consultaValor(palabra2);
                                    if (in.hasNext()) {
                                        palabra4 = in.next();
                                        if (in.hasNext()) {
                                            palabra5 = in.next();
                                            if (in.hasNext()) {
                                                String dimension = consultaPalabra(almacenaAnterior.get(1));
                                                palabra5 = consultaPalabra(palabra5);
                                                palabra6 = in.next();
                                                palabra7 = in.next();
                                                numXregla7 = Integer.parseInt((palabra3));
                                                numYregla7 = Integer.parseInt((palabra6));
                                                conf7 = consultaConfianza(palabra7);

                                                porcentaje = (numXregla7 * 100) / total;
                                                porcentaje2 = (numYregla7 * 100) / total;

                                                frase1 = ("De un total de " + total
                                                        + " NCFAS, se cumple que la dimensin  Competencias Parentales adquiere un valor igual a "
                                                        + valorDim2 + " junto con la dimensin " + dimension
                                                        + ", una cantidad de " + numXregla7 + " veces ("
                                                        + porcentaje + "%) (X). Esto afecta a la dimensin "
                                                        + palabra5 + " , una cantidad de " + palabra6
                                                        + " veces (" + porcentaje2
                                                        + "%)(Y).\n Es decir esta regla se cumple el " + conf7
                                                        + "% de las veces.\n");

                                                numVeces.add(1, palabra3 + " " + palabra6);
                                                reglasEncontradas regla7 = new reglasEncontradas();
                                                regla7.setContenido(frase1);
                                                regla7.setValorX(numXregla7);
                                                regla7.setValorY(numYregla7);
                                                regla7.setNumRegla(7);
                                                reglas.add(regla7);

                                                almacenaRetorno.add(frase1);
                                                ;
                                                //  band=1;
                                            }
                                        }
                                    }
                                }
                                //NO HAY DIMENSIN 2 NI EN LA PRIMERA NI EN LA SEGUNDA POSICIN 
                                else {
                                    if (in.hasNext()) {
                                        palabra4 = in.next();
                                        if (in.hasNext()) {
                                            palabra5 = in.next();

                                            if (in.hasNext()) {
                                                mat = pat.matcher(palabra5);
                                                if (mat.matches()) {
                                                    palabra6 = in.next();
                                                    palabra7 = in.next();
                                                    String valorDim2 = consultaValor(palabra5);
                                                    String dimension = consultaPalabra(almacenaAnterior.get(1));
                                                    String dimension2 = consultaPalabra(
                                                            almacenaAnterior.get(2));

                                                    numXregla7 = Integer.parseInt((almacenaAnterior.get(3)));
                                                    numYregla7 = Integer.parseInt((palabra6));
                                                    conf7 = consultaConfianza(palabra7);
                                                    porcentaje = (numXregla7 * 100) / total;
                                                    porcentaje2 = (numYregla7 * 100) / total;

                                                    frase1 = ("De un total de " + total
                                                            + " NCFAS, se cumple que la dimensin " + dimension
                                                            + " junto con la dimensin " + dimension2
                                                            + " , una cantidad de " + numXregla7 + " veces ("
                                                            + porcentaje
                                                            + "%) (X). Esto afecta a la dimensin Competencias Parentales la cual adquiere un valor igual a "
                                                            + valorDim2 + " , una cantidad de " + palabra6
                                                            + " veces (" + porcentaje2
                                                            + "%)(Y).\n Es decir esta regla se cumple el "
                                                            + conf7 + "% de las veces.\n");
                                                    numVeces.add(1, almacenaAnterior.get(3) + " " + palabra6);

                                                    reglasEncontradas regla7 = new reglasEncontradas();
                                                    regla7.setContenido(frase1);
                                                    regla7.setValorX(numXregla7);
                                                    regla7.setValorY(numYregla7);
                                                    regla7.setNumRegla(7);
                                                    reglas.add(regla7);

                                                    almacenaRetorno.add(frase1);
                                                    //band=1;
                                                }
                                            }
                                        }
                                    }
                                }
                            }
                        }
                    }
                }
            }

            //OCTAVA RELGA DE ASOCIACIN
            //BLOQUE 1
            //COMPROBAR SI EST? DIM2 INVOLUCRADA
            mat = pat3.matcher(palabra0);
            //
            if (num8.equals(palabra0)) {
                if (in.hasNext()) {
                    palabra1 = in.next(); // SEGUNDA PALABRA             
                    //GUARDO LO LEIDO
                    almacenaAnterior.add(palabra0);
                    almacenaAnterior.add(palabra1);
                    mat = pat.matcher(palabra1);
                    //PALABRA 1 ES DIMENSION 2?
                    if (mat.matches()) {

                        dimInvolucradas.add(palabra1);
                        String valorDim2 = consultaValor(palabra1);
                        //REVISAMOS LO QUE VIENE DESPUES DE DIM2=
                        if (in.hasNext()) {
                            palabra2 = in.next(); //PALABRA 3 EN EL CAMINO FELIZ
                            if (in.hasNext()) {
                                palabra3 = in.next(); //PALABRA 4 EN EL CAMINO FELIZ                    
                                almacenaAnterior.add(palabra2);
                                almacenaAnterior.add(palabra3);
                                mat = pat2.matcher(palabra3);
                                //SI ES UNA ==> ENTONCES
                                if (mat.matches()) {
                                    if (in.hasNext()) {
                                        palabra4 = in.next(); //PALABRA 5 CAMINO FELIZ
                                        dimInvolucradas.add(palabra4);
                                        palabra4 = consultaPalabra(palabra4);
                                        palabra5 = in.next(); //VALOR DE VECES DESPUES DE =>
                                        palabra6 = in.next();
                                        numXregla8 = Integer.parseInt((palabra2));
                                        numYregla8 = Integer.parseInt((palabra5));
                                        conf8 = consultaConfianza(palabra6);
                                        porcentaje = (numXregla8 * 100) / total;
                                        porcentaje2 = (numYregla8 * 100) / total;
                                        frase1 = ("De un total de " + total
                                                + " NCFAS, se cumple que la dimension Competencias Parentales adquiere un valor igual a "
                                                + valorDim2 + " una cantidad de " + numXregla8 + " veces ("
                                                + porcentaje + "%) (X). Esto afecta a la dimensin " + palabra4
                                                + ", una cantidad de " + palabra5 + " vececs (" + porcentaje2
                                                + "%) (Y). \n Es decir esta regla se cumple el " + conf8
                                                + "% de las veces. \n");
                                        almacenaRetorno.add(frase1);

                                        numVeces.add(1, palabra2 + " " + palabra5);

                                        reglasEncontradas regla8 = new reglasEncontradas();
                                        regla8.setContenido(frase1);
                                        regla8.setValorX(numXregla8);
                                        regla8.setValorY(numYregla8);
                                        regla8.setNumRegla(8);
                                        reglas.add(regla8);
                                        System.out.println("ENTRAMOS AC?");
                                        // band=1;

                                    }
                                }

                                // LA REGLA TIENE MAS DE UNA DIMENSIN INVOLUCRADA ANTES DE ==>
                                else {
                                    if (in.hasNext()) {
                                        palabra4 = in.next(); // DEBER?A SER FLECHA 
                                        //COMPROBAMOS SI LA ==> EST? EN LA cuarta POSICIN
                                        mat = pat2.matcher(palabra4);
                                        if (mat.matches()) {
                                            if (in.hasNext()) {
                                                palabra5 = in.next();
                                                dimInvolucradas.add(almacenaAnterior.get(2));
                                                String dimension = consultaPalabra(almacenaAnterior.get(2));
                                                dimInvolucradas.add(palabra5);

                                                palabra5 = consultaPalabra(palabra5);
                                                palabra6 = in.next();
                                                palabra7 = in.next();
                                                numXregla8 = Integer.parseInt((almacenaAnterior.get(3)));
                                                numYregla8 = Integer.parseInt((palabra6));
                                                porcentaje = (numXregla8 * 100) / total;
                                                porcentaje2 = (numYregla8 * 100) / total;
                                                conf8 = consultaConfianza(palabra7);

                                                frase1 = ("De un total de " + total
                                                        + " NCFAS, se cumple que la dimensin Competencias Parentales adquiere un valor igual a "
                                                        + valorDim2 + "  junto con la dimensin " + dimension
                                                        + ", esto ocurre una cantidad de " + numXregla8
                                                        + " veces (" + porcentaje
                                                        + "%) (X). Esto afecta a la dimensin " + palabra5
                                                        + " una cantidad de " + palabra6 + " veces ("
                                                        + porcentaje2
                                                        + "%)(Y). \n Es decir esta regla se cumple el " + conf8
                                                        + "% de las veces.\n");
                                                almacenaRetorno.add(frase1);
                                                numVeces.add(1, almacenaAnterior.get(3) + " " + palabra6);

                                                System.out.println("LOS VALORES DE LA REGLA 1 SON: "
                                                        + numXregla8 + numYregla8);

                                                reglasEncontradas regla8 = new reglasEncontradas();
                                                regla8.setContenido(frase1);
                                                regla8.setValorX(numXregla8);
                                                regla8.setValorY(numYregla8);
                                                regla8.setNumRegla(8);
                                                reglas.add(regla8);

                                            }
                                        }
                                    }
                                }
                            }
                        }
                    }

                    //BLOQUE 2
                    //AC? SE COMPRUEBA SI SE ENCUENTRA LA DIMENSIN 2 EN SEGUNDA POSICIN           
                    if (in.hasNext()) {
                        palabra2 = in.next(); // 
                        if (in.hasNext()) {
                            palabra3 = in.next(); //               
                            //GUARDAMOS LO LE?DO
                            almacenaAnterior.add(palabra2);
                            almacenaAnterior.add(palabra3);
                            mat = pat2.matcher(palabra3);
                            // SI LA PALABRA 3 ES UNA FLECHA, ENTONCES HAY SOLO UNA DIMENSIN INVOLUCRADA
                            if (mat.matches()) {
                                if (in.hasNext()) {
                                    palabra4 = in.next();

                                    // DESPUES DE LA ==> EST? INVOLUCRADA LA DIM2 ?
                                    mat = pat.matcher(palabra4);
                                    if (mat.matches()) {

                                        palabra5 = in.next();
                                        palabra6 = in.next();
                                        String valorDim2 = consultaValor(palabra4);
                                        String dimension = consultaPalabra(almacenaAnterior.get(1));
                                        numXregla8 = Integer.parseInt((palabra5));
                                        numYregla8 = Integer.parseInt((almacenaAnterior.get(2)));
                                        porcentaje = (numXregla8 * 100) / total;
                                        porcentaje2 = (numYregla8 * 100) / total;
                                        conf8 = consultaConfianza(palabra6);
                                        frase1 = ("De un total de " + total
                                                + " NCFAS, se cumple que la dimensin " + dimension
                                                + ", junto con la dimensin " + palabra5 + ", una cantidad de "
                                                + numXregla8 + " veces (" + porcentaje
                                                + "%) (X). Esto afecta a la dimensin Competencias Parentales adquiere un valor igual a "
                                                + valorDim2 + ", una cantidad de " + numYregla8 + " veces ("
                                                + porcentaje2 + "%)(Y). \n Es decir esta regla se cumple el "
                                                + conf8 + "% de las veces.\n");
                                        almacenaRetorno.add(frase1); // CAMINO FELIZ DIM2 EN POSICIN 2 
                                        //System.out.println(frase1); 
                                        almacenaRetorno.add(frase1); // CAMINO FELIZ DIM2 EN POSICIN 2  
                                        //  band=1;
                                        numVeces.add(1, palabra5 + " " + almacenaAnterior.get(2));

                                        System.out.println("ENTRAMOS AC?" + numXregla8 + numYregla8);
                                        reglasEncontradas regla8 = new reglasEncontradas();
                                        regla8.setContenido(frase1);
                                        regla8.setValorX(numXregla8);
                                        regla8.setValorY(numYregla8);
                                        regla8.setNumRegla(8);
                                        reglas.add(regla8);

                                    }
                                }
                            } else {
                                mat = pat.matcher(palabra2);
                                if (mat.matches()) {
                                    String valorDim2 = consultaValor(palabra2);
                                    if (in.hasNext()) {
                                        palabra4 = in.next();
                                        if (in.hasNext()) {
                                            palabra5 = in.next();
                                            if (in.hasNext()) {
                                                String dimension = consultaPalabra(almacenaAnterior.get(1));
                                                palabra5 = consultaPalabra(palabra5);
                                                palabra6 = in.next();
                                                palabra7 = in.next();
                                                numXregla8 = Integer.parseInt((palabra3));
                                                numYregla8 = Integer.parseInt((palabra6));
                                                conf8 = consultaConfianza(palabra7);

                                                porcentaje = (numXregla8 * 100) / total;
                                                porcentaje2 = (numYregla8 * 100) / total;

                                                frase1 = ("De un total de " + total
                                                        + " NCFAS, se cumple que la dimensin  Competencias Parentales adquiere un valor igual a "
                                                        + valorDim2 + " junto con la dimensin " + dimension
                                                        + ", una cantidad de " + numXregla8 + " veces ("
                                                        + porcentaje + "%) (X). Esto afecta a la dimensin "
                                                        + palabra5 + " , una cantidad de " + palabra6
                                                        + " veces (" + porcentaje2
                                                        + "%)(Y).\n Es decir esta regla se cumple el " + conf8
                                                        + "% de las veces.\n");

                                                numVeces.add(1, palabra3 + " " + palabra6);
                                                reglasEncontradas regla8 = new reglasEncontradas();
                                                regla8.setContenido(frase1);
                                                regla8.setValorX(numXregla8);
                                                regla8.setValorY(numYregla8);
                                                regla8.setNumRegla(8);
                                                reglas.add(regla8);

                                                almacenaRetorno.add(frase1);
                                                ;
                                                //  band=1;
                                            }
                                        }
                                    }
                                }
                                //NO HAY DIMENSIN 2 NI EN LA PRIMERA NI EN LA SEGUNDA POSICIN 
                                else {
                                    if (in.hasNext()) {
                                        palabra4 = in.next();
                                        if (in.hasNext()) {
                                            palabra5 = in.next();

                                            if (in.hasNext()) {
                                                mat = pat.matcher(palabra5);
                                                if (mat.matches()) {
                                                    palabra6 = in.next();
                                                    palabra7 = in.next();
                                                    String valorDim2 = consultaValor(palabra5);
                                                    String dimension = consultaPalabra(almacenaAnterior.get(1));
                                                    String dimension2 = consultaPalabra(
                                                            almacenaAnterior.get(2));

                                                    numXregla8 = Integer.parseInt((almacenaAnterior.get(3)));
                                                    numYregla8 = Integer.parseInt((palabra6));
                                                    conf8 = consultaConfianza(palabra7);
                                                    porcentaje = (numXregla8 * 100) / total;
                                                    porcentaje2 = (numYregla8 * 100) / total;

                                                    frase1 = ("De un total de " + total
                                                            + " NCFAS, se cumple que la dimensin " + dimension
                                                            + " junto con la dimensin " + dimension2
                                                            + " , una cantidad de " + numXregla8 + " veces ("
                                                            + porcentaje
                                                            + "%) (X). Esto afecta a la dimensin Competencias Parentales la cual adquiere un valor igual a "
                                                            + valorDim2 + " , una cantidad de " + palabra6
                                                            + " veces (" + porcentaje2
                                                            + "%)(Y).\n Es decir esta regla se cumple el "
                                                            + conf8 + "% de las veces.\n");
                                                    numVeces.add(1, almacenaAnterior.get(3) + " " + palabra6);

                                                    reglasEncontradas regla8 = new reglasEncontradas();
                                                    regla8.setContenido(frase1);
                                                    regla8.setValorX(numXregla8);
                                                    regla8.setValorY(numYregla8);
                                                    regla8.setNumRegla(8);
                                                    reglas.add(regla8);

                                                    almacenaRetorno.add(frase1);
                                                    //band=1;
                                                }
                                            }
                                        }
                                    }
                                }
                            }
                        }
                    }
                }
            }

            //NOVENA RELGA DE ASOCIACIN
            //BLOQUE 1
            //COMPROBAR SI EST? DIM2 INVOLUCRADA
            mat = pat3.matcher(palabra0);
            //
            if (num9.equals(palabra0)) {
                if (in.hasNext()) {
                    palabra1 = in.next(); // SEGUNDA PALABRA             
                    //GUARDO LO LEIDO
                    almacenaAnterior.add(palabra0);
                    almacenaAnterior.add(palabra1);
                    mat = pat.matcher(palabra1);
                    //PALABRA 1 ES DIMENSION 2?
                    if (mat.matches()) {

                        dimInvolucradas.add(palabra1);
                        String valorDim2 = consultaValor(palabra1);
                        //REVISAMOS LO QUE VIENE DESPUES DE DIM2=
                        if (in.hasNext()) {
                            palabra2 = in.next(); //PALABRA 3 EN EL CAMINO FELIZ
                            if (in.hasNext()) {
                                palabra3 = in.next(); //PALABRA 4 EN EL CAMINO FELIZ                    
                                almacenaAnterior.add(palabra2);
                                almacenaAnterior.add(palabra3);
                                mat = pat2.matcher(palabra3);
                                //SI ES UNA ==> ENTONCES
                                if (mat.matches()) {
                                    if (in.hasNext()) {
                                        palabra4 = in.next(); //PALABRA 5 CAMINO FELIZ
                                        dimInvolucradas.add(palabra4);
                                        palabra4 = consultaPalabra(palabra4);
                                        palabra5 = in.next(); //VALOR DE VECES DESPUES DE =>
                                        palabra6 = in.next();
                                        numXregla9 = Integer.parseInt((palabra2));
                                        numYregla9 = Integer.parseInt((palabra5));
                                        conf9 = consultaConfianza(palabra6);
                                        porcentaje = (numXregla9 * 100) / total;
                                        porcentaje2 = (numYregla9 * 100) / total;
                                        frase1 = ("De un total de " + total
                                                + " NCFAS, se cumple que la dimension Competencias Parentales adquiere un valor igual a "
                                                + valorDim2 + " una cantidad de " + numXregla9 + " veces ("
                                                + porcentaje + "%) (X). Esto afecta a la dimensin " + palabra4
                                                + ", una cantidad de " + palabra5 + " vececs (" + porcentaje2
                                                + "%) (Y). \n Es decir esta regla se cumple el " + conf9
                                                + "% de las veces. \n");
                                        almacenaRetorno.add(frase1);

                                        numVeces.add(1, palabra2 + " " + palabra5);

                                        reglasEncontradas regla9 = new reglasEncontradas();
                                        regla9.setContenido(frase1);
                                        regla9.setValorX(numXregla9);
                                        regla9.setValorY(numYregla9);
                                        regla9.setNumRegla(9);
                                        reglas.add(regla9);
                                        System.out.println("ENTRAMOS AC?");
                                        // band=1;

                                    }
                                }

                                // LA REGLA TIENE MAS DE UNA DIMENSIN INVOLUCRADA ANTES DE ==>
                                else {
                                    if (in.hasNext()) {
                                        palabra4 = in.next(); // DEBER?A SER FLECHA 
                                        //COMPROBAMOS SI LA ==> EST? EN LA cuarta POSICIN
                                        mat = pat2.matcher(palabra4);
                                        if (mat.matches()) {
                                            if (in.hasNext()) {
                                                palabra5 = in.next();
                                                dimInvolucradas.add(almacenaAnterior.get(2));
                                                String dimension = consultaPalabra(almacenaAnterior.get(2));
                                                dimInvolucradas.add(palabra5);

                                                palabra5 = consultaPalabra(palabra5);
                                                palabra6 = in.next();
                                                palabra7 = in.next();
                                                numXregla9 = Integer.parseInt((almacenaAnterior.get(3)));
                                                numYregla9 = Integer.parseInt((palabra6));
                                                porcentaje = (numXregla9 * 100) / total;
                                                porcentaje2 = (numYregla9 * 100) / total;
                                                conf9 = consultaConfianza(palabra7);

                                                frase1 = ("De un total de " + total
                                                        + " NCFAS, se cumple que la dimensin Competencias Parentales adquiere un valor igual a "
                                                        + valorDim2 + "  junto con la dimensin " + dimension
                                                        + ", esto ocurre una cantidad de " + numXregla9
                                                        + " veces (" + porcentaje
                                                        + "%) (X). Esto afecta a la dimensin " + palabra5
                                                        + " una cantidad de " + palabra6 + " veces ("
                                                        + porcentaje2
                                                        + "%)(Y). \n Es decir esta regla se cumple el " + conf9
                                                        + "% de las veces.\n");
                                                almacenaRetorno.add(frase1);
                                                numVeces.add(1, almacenaAnterior.get(3) + " " + palabra6);

                                                System.out.println("LOS VALORES DE LA REGLA 1 SON: "
                                                        + numXregla9 + numYregla9);

                                                reglasEncontradas regla9 = new reglasEncontradas();
                                                regla9.setContenido(frase1);
                                                regla9.setValorX(numXregla9);
                                                regla9.setValorY(numYregla9);
                                                regla9.setNumRegla(9);
                                                reglas.add(regla9);

                                            }
                                        }
                                    }
                                }
                            }
                        }
                    }

                    //BLOQUE 2
                    //AC? SE COMPRUEBA SI SE ENCUENTRA LA DIMENSIN 2 EN SEGUNDA POSICIN           
                    if (in.hasNext()) {
                        palabra2 = in.next(); // 
                        if (in.hasNext()) {
                            palabra3 = in.next(); //               
                            //GUARDAMOS LO LE?DO
                            almacenaAnterior.add(palabra2);
                            almacenaAnterior.add(palabra3);
                            mat = pat2.matcher(palabra3);
                            // SI LA PALABRA 3 ES UNA FLECHA, ENTONCES HAY SOLO UNA DIMENSIN INVOLUCRADA
                            if (mat.matches()) {
                                if (in.hasNext()) {
                                    palabra4 = in.next();

                                    // DESPUES DE LA ==> EST? INVOLUCRADA LA DIM2 ?
                                    mat = pat.matcher(palabra4);
                                    if (mat.matches()) {

                                        palabra5 = in.next();
                                        palabra6 = in.next();
                                        String valorDim2 = consultaValor(palabra4);
                                        String dimension = consultaPalabra(almacenaAnterior.get(1));
                                        numXregla9 = Integer.parseInt((palabra5));
                                        numYregla9 = Integer.parseInt((almacenaAnterior.get(2)));
                                        porcentaje = (numXregla9 * 100) / total;
                                        porcentaje2 = (numYregla9 * 100) / total;
                                        conf9 = consultaConfianza(palabra6);
                                        frase1 = ("De un total de " + total
                                                + " NCFAS, se cumple que la dimensin " + dimension
                                                + ", junto con la dimensin " + palabra5 + ", una cantidad de "
                                                + numXregla9 + " veces (" + porcentaje
                                                + "%) (X). Esto afecta a la dimensin Competencias Parentales adquiere un valor igual a "
                                                + valorDim2 + ", una cantidad de " + numYregla9 + " veces ("
                                                + porcentaje2 + "%)(Y). \n Es decir esta regla se cumple el "
                                                + conf9 + "% de las veces.\n");
                                        almacenaRetorno.add(frase1); // CAMINO FELIZ DIM2 EN POSICIN 2 
                                        //System.out.println(frase1); 
                                        almacenaRetorno.add(frase1); // CAMINO FELIZ DIM2 EN POSICIN 2  
                                        //  band=1;
                                        numVeces.add(1, palabra5 + " " + almacenaAnterior.get(2));

                                        System.out.println("ENTRAMOS AC?" + numXregla9 + numYregla9);
                                        reglasEncontradas regla9 = new reglasEncontradas();
                                        regla9.setContenido(frase1);
                                        regla9.setValorX(numXregla9);
                                        regla9.setValorY(numYregla9);
                                        regla9.setNumRegla(9);
                                        reglas.add(regla9);

                                    }
                                }
                            } else {
                                mat = pat.matcher(palabra2);
                                if (mat.matches()) {
                                    String valorDim2 = consultaValor(palabra2);
                                    if (in.hasNext()) {
                                        palabra4 = in.next();
                                        if (in.hasNext()) {
                                            palabra5 = in.next();
                                            if (in.hasNext()) {
                                                String dimension = consultaPalabra(almacenaAnterior.get(1));
                                                palabra5 = consultaPalabra(palabra5);
                                                palabra6 = in.next();
                                                palabra7 = in.next();
                                                numXregla9 = Integer.parseInt((palabra3));
                                                numYregla9 = Integer.parseInt((palabra6));
                                                conf9 = consultaConfianza(palabra7);

                                                porcentaje = (numXregla9 * 100) / total;
                                                porcentaje2 = (numYregla9 * 100) / total;

                                                frase1 = ("De un total de " + total
                                                        + " NCFAS, se cumple que la dimensin  Competencias Parentales adquiere un valor igual a "
                                                        + valorDim2 + " junto con la dimensin " + dimension
                                                        + ", una cantidad de " + numXregla9 + " veces ("
                                                        + porcentaje + "%) (X). Esto afecta a la dimensin "
                                                        + palabra5 + " , una cantidad de " + palabra6
                                                        + " veces (" + porcentaje2
                                                        + "%)(Y).\n Es decir esta regla se cumple el " + conf9
                                                        + "% de las veces.\n");

                                                numVeces.add(1, palabra3 + " " + palabra6);
                                                reglasEncontradas regla9 = new reglasEncontradas();
                                                regla9.setContenido(frase1);
                                                regla9.setValorX(numXregla9);
                                                regla9.setValorY(numYregla9);
                                                regla9.setNumRegla(9);
                                                reglas.add(regla9);

                                                almacenaRetorno.add(frase1);
                                                ;
                                                //  band=1;
                                            }
                                        }
                                    }
                                }
                                //NO HAY DIMENSIN 2 NI EN LA PRIMERA NI EN LA SEGUNDA POSICIN 
                                else {
                                    if (in.hasNext()) {
                                        palabra4 = in.next();
                                        if (in.hasNext()) {
                                            palabra5 = in.next();

                                            if (in.hasNext()) {
                                                mat = pat.matcher(palabra5);
                                                if (mat.matches()) {
                                                    palabra6 = in.next();
                                                    palabra7 = in.next();
                                                    String valorDim2 = consultaValor(palabra5);
                                                    String dimension = consultaPalabra(almacenaAnterior.get(1));
                                                    String dimension2 = consultaPalabra(
                                                            almacenaAnterior.get(2));

                                                    numXregla9 = Integer.parseInt((almacenaAnterior.get(3)));
                                                    numYregla9 = Integer.parseInt((palabra6));
                                                    conf9 = consultaConfianza(palabra7);
                                                    porcentaje = (numXregla9 * 100) / total;
                                                    porcentaje2 = (numYregla9 * 100) / total;

                                                    frase1 = ("De un total de " + total
                                                            + " NCFAS, se cumple que la dimensin " + dimension
                                                            + " junto con la dimensin " + dimension2
                                                            + " , una cantidad de " + numXregla9 + " veces ("
                                                            + porcentaje
                                                            + "%) (X). Esto afecta a la dimensin Competencias Parentales la cual adquiere un valor igual a "
                                                            + valorDim2 + " , una cantidad de " + palabra6
                                                            + " veces (" + porcentaje2
                                                            + "%)(Y).\n Es decir esta regla se cumple el "
                                                            + conf9 + "% de las veces.\n");
                                                    numVeces.add(1, almacenaAnterior.get(3) + " " + palabra6);

                                                    reglasEncontradas regla9 = new reglasEncontradas();
                                                    regla9.setContenido(frase1);
                                                    regla9.setValorX(numXregla9);
                                                    regla9.setValorY(numYregla9);
                                                    regla9.setNumRegla(9);
                                                    reglas.add(regla9);

                                                    almacenaRetorno.add(frase1);
                                                    //band=1;
                                                }
                                            }
                                        }
                                    }
                                }
                            }
                        }
                    }
                }
            }

            //DECIMA RELGA DE ASOCIACIN
            //BLOQUE 1
            //COMPROBAR SI EST? DIM2 INVOLUCRADA
            mat = pat3.matcher(palabra0);
            //
            if (num10.equals(palabra0)) {
                if (in.hasNext()) {
                    palabra1 = in.next(); // SEGUNDA PALABRA             
                    //GUARDO LO LEIDO
                    almacenaAnterior.add(palabra0);
                    almacenaAnterior.add(palabra1);
                    mat = pat.matcher(palabra1);
                    //PALABRA 1 ES DIMENSION 2?
                    if (mat.matches()) {

                        dimInvolucradas.add(palabra1);
                        String valorDim2 = consultaValor(palabra1);
                        //REVISAMOS LO QUE VIENE DESPUES DE DIM2=
                        if (in.hasNext()) {
                            palabra2 = in.next(); //PALABRA 3 EN EL CAMINO FELIZ
                            if (in.hasNext()) {
                                palabra3 = in.next(); //PALABRA 4 EN EL CAMINO FELIZ                    
                                almacenaAnterior.add(palabra2);
                                almacenaAnterior.add(palabra3);
                                mat = pat2.matcher(palabra3);
                                //SI ES UNA ==> ENTONCES
                                if (mat.matches()) {
                                    if (in.hasNext()) {
                                        palabra4 = in.next(); //PALABRA 5 CAMINO FELIZ
                                        dimInvolucradas.add(palabra4);
                                        palabra4 = consultaPalabra(palabra4);
                                        palabra5 = in.next(); //VALOR DE VECES DESPUES DE =>
                                        palabra6 = in.next();
                                        numXregla10 = Integer.parseInt((palabra2));
                                        numYregla10 = Integer.parseInt((palabra5));
                                        conf10 = consultaConfianza(palabra6);
                                        porcentaje = (numXregla10 * 100) / total;
                                        porcentaje2 = (numYregla10 * 100) / total;
                                        frase1 = ("De un total de " + total
                                                + " NCFAS, se cumple que la dimension Competencias Parentales adquiere un valor igual a "
                                                + valorDim2 + " una cantidad de " + numXregla10 + " veces ("
                                                + porcentaje + "%) (X). Esto afecta a la dimensin " + palabra4
                                                + ", una cantidad de " + palabra5 + " vececs (" + porcentaje2
                                                + "%) (Y). \n Es decir esta regla se cumple el " + conf10
                                                + "% de las veces. \n");
                                        almacenaRetorno.add(frase1);

                                        numVeces.add(1, palabra2 + " " + palabra5);

                                        reglasEncontradas regla10 = new reglasEncontradas();
                                        regla10.setContenido(frase1);
                                        regla10.setValorX(numXregla10);
                                        regla10.setValorY(numYregla10);
                                        regla10.setNumRegla(10);
                                        reglas.add(regla10);
                                        System.out.println("ENTRAMOS AC?");
                                        // band=1;

                                    }
                                }

                                // LA REGLA TIENE MAS DE UNA DIMENSIN INVOLUCRADA ANTES DE ==>
                                else {
                                    if (in.hasNext()) {
                                        palabra4 = in.next(); // DEBER?A SER FLECHA 
                                        //COMPROBAMOS SI LA ==> EST? EN LA cuarta POSICIN
                                        mat = pat2.matcher(palabra4);
                                        if (mat.matches()) {
                                            if (in.hasNext()) {
                                                palabra5 = in.next();
                                                dimInvolucradas.add(almacenaAnterior.get(2));
                                                String dimension = consultaPalabra(almacenaAnterior.get(2));
                                                dimInvolucradas.add(palabra5);

                                                palabra5 = consultaPalabra(palabra5);
                                                palabra6 = in.next();
                                                palabra7 = in.next();
                                                numXregla10 = Integer.parseInt((almacenaAnterior.get(3)));
                                                numYregla10 = Integer.parseInt((palabra6));
                                                porcentaje = (numXregla10 * 100) / total;
                                                porcentaje2 = (numYregla10 * 100) / total;
                                                conf10 = consultaConfianza(palabra7);

                                                frase1 = ("De un total de " + total
                                                        + " NCFAS, se cumple que la dimensin Competencias Parentales adquiere un valor igual a "
                                                        + valorDim2 + "  junto con la dimensin " + dimension
                                                        + ", esto ocurre una cantidad de " + numXregla10
                                                        + " veces (" + porcentaje
                                                        + "%) (X). Esto afecta a la dimensin " + palabra5
                                                        + " una cantidad de " + palabra6 + " veces ("
                                                        + porcentaje2
                                                        + "%)(Y). \n Es decir esta regla se cumple el " + conf10
                                                        + "% de las veces.\n");
                                                almacenaRetorno.add(frase1);
                                                numVeces.add(1, almacenaAnterior.get(3) + " " + palabra6);

                                                System.out.println("LOS VALORES DE LA REGLA 1 SON: "
                                                        + numXregla10 + numYregla10);

                                                reglasEncontradas regla10 = new reglasEncontradas();
                                                regla10.setContenido(frase1);
                                                regla10.setValorX(numXregla10);
                                                regla10.setValorY(numYregla10);
                                                regla10.setNumRegla(10);
                                                reglas.add(regla10);

                                            }
                                        }
                                    }
                                }
                            }
                        }
                    }

                    //BLOQUE 2
                    //AC? SE COMPRUEBA SI SE ENCUENTRA LA DIMENSIN 2 EN SEGUNDA POSICIN           
                    if (in.hasNext()) {
                        palabra2 = in.next(); // 
                        if (in.hasNext()) {
                            palabra3 = in.next(); //               
                            //GUARDAMOS LO LE?DO
                            almacenaAnterior.add(palabra2);
                            almacenaAnterior.add(palabra3);
                            mat = pat2.matcher(palabra3);
                            // SI LA PALABRA 3 ES UNA FLECHA, ENTONCES HAY SOLO UNA DIMENSIN INVOLUCRADA
                            if (mat.matches()) {
                                if (in.hasNext()) {
                                    palabra4 = in.next();

                                    // DESPUES DE LA ==> EST? INVOLUCRADA LA DIM2 ?
                                    mat = pat.matcher(palabra4);
                                    if (mat.matches()) {

                                        palabra5 = in.next();
                                        palabra6 = in.next();
                                        String valorDim2 = consultaValor(palabra4);
                                        String dimension = consultaPalabra(almacenaAnterior.get(1));
                                        numXregla10 = Integer.parseInt((palabra5));
                                        numYregla10 = Integer.parseInt((almacenaAnterior.get(2)));
                                        porcentaje = (numXregla10 * 100) / total;
                                        porcentaje2 = (numYregla10 * 100) / total;
                                        conf10 = consultaConfianza(palabra6);
                                        frase1 = ("De un total de " + total
                                                + " NCFAS, se cumple que la dimensin " + dimension
                                                + ", junto con la dimensin " + palabra5 + ", una cantidad de "
                                                + numXregla10 + " veces (" + porcentaje
                                                + "%) (X). Esto afecta a la dimensin Competencias Parentales adquiere un valor igual a "
                                                + valorDim2 + ", una cantidad de " + numYregla10 + " veces ("
                                                + porcentaje2 + "%)(Y). \n Es decir esta regla se cumple el "
                                                + conf10 + "% de las veces.\n");
                                        almacenaRetorno.add(frase1); // CAMINO FELIZ DIM2 EN POSICIN 2 
                                        //System.out.println(frase1); 
                                        almacenaRetorno.add(frase1); // CAMINO FELIZ DIM2 EN POSICIN 2  
                                        //  band=1;
                                        numVeces.add(1, palabra5 + " " + almacenaAnterior.get(2));

                                        System.out.println("ENTRAMOS AC?" + numXregla10 + numYregla10);
                                        reglasEncontradas regla10 = new reglasEncontradas();
                                        regla10.setContenido(frase1);
                                        regla10.setValorX(numXregla10);
                                        regla10.setValorY(numYregla10);
                                        regla10.setNumRegla(10);
                                        reglas.add(regla10);

                                    }
                                }
                            } else {
                                mat = pat.matcher(palabra2);
                                if (mat.matches()) {
                                    String valorDim2 = consultaValor(palabra2);
                                    if (in.hasNext()) {
                                        palabra4 = in.next();
                                        if (in.hasNext()) {
                                            palabra5 = in.next();
                                            if (in.hasNext()) {
                                                String dimension = consultaPalabra(almacenaAnterior.get(1));
                                                palabra5 = consultaPalabra(palabra5);
                                                palabra6 = in.next();
                                                palabra7 = in.next();
                                                numXregla10 = Integer.parseInt((palabra3));
                                                numYregla10 = Integer.parseInt((palabra6));
                                                conf10 = consultaConfianza(palabra7);

                                                porcentaje = (numXregla10 * 100) / total;
                                                porcentaje2 = (numYregla10 * 100) / total;

                                                frase1 = ("De un total de " + total
                                                        + " NCFAS, se cumple que la dimensin  Competencias Parentales adquiere un valor igual a "
                                                        + valorDim2 + " junto con la dimensin " + dimension
                                                        + ", una cantidad de " + numXregla10 + " veces ("
                                                        + porcentaje + "%) (X). Esto afecta a la dimensin "
                                                        + palabra5 + " , una cantidad de " + palabra6
                                                        + " veces (" + porcentaje2
                                                        + "%)(Y).\n Es decir esta regla se cumple el " + conf10
                                                        + "% de las veces.\n");

                                                numVeces.add(1, palabra3 + " " + palabra6);
                                                reglasEncontradas regla10 = new reglasEncontradas();
                                                regla10.setContenido(frase1);
                                                regla10.setValorX(numXregla10);
                                                regla10.setValorY(numYregla10);
                                                regla10.setNumRegla(10);
                                                reglas.add(regla10);

                                                almacenaRetorno.add(frase1);
                                                ;
                                                //  band=1;
                                            }
                                        }
                                    }
                                }
                                //NO HAY DIMENSIN 2 NI EN LA PRIMERA NI EN LA SEGUNDA POSICIN 
                                else {
                                    if (in.hasNext()) {
                                        palabra4 = in.next();
                                        if (in.hasNext()) {
                                            palabra5 = in.next();

                                            if (in.hasNext()) {
                                                mat = pat.matcher(palabra5);
                                                if (mat.matches()) {
                                                    palabra6 = in.next();
                                                    palabra7 = in.next();
                                                    String valorDim2 = consultaValor(palabra5);
                                                    String dimension = consultaPalabra(almacenaAnterior.get(1));
                                                    String dimension2 = consultaPalabra(
                                                            almacenaAnterior.get(2));

                                                    numXregla10 = Integer.parseInt((almacenaAnterior.get(3)));
                                                    numYregla10 = Integer.parseInt((palabra6));
                                                    conf10 = consultaConfianza(palabra7);
                                                    porcentaje = (numXregla10 * 100) / total;
                                                    porcentaje2 = (numYregla10 * 100) / total;

                                                    frase1 = ("De un total de " + total
                                                            + " NCFAS, se cumple que la dimensin " + dimension
                                                            + " junto con la dimensin " + dimension2
                                                            + " , una cantidad de " + numXregla10 + " veces ("
                                                            + porcentaje
                                                            + "%) (X). Esto afecta a la dimensin Competencias Parentales la cual adquiere un valor igual a "
                                                            + valorDim2 + " , una cantidad de " + palabra6
                                                            + " veces (" + porcentaje2
                                                            + "%)(Y).\n Es decir esta regla se cumple el "
                                                            + conf10 + "% de las veces.\n");
                                                    numVeces.add(1, almacenaAnterior.get(3) + " " + palabra6);

                                                    reglasEncontradas regla10 = new reglasEncontradas();
                                                    regla10.setContenido(frase1);
                                                    regla10.setValorX(numXregla10);
                                                    regla10.setValorY(numYregla10);
                                                    regla10.setNumRegla(10);
                                                    reglas.add(regla10);

                                                    almacenaRetorno.add(frase1);
                                                    //band=1;
                                                }
                                            }
                                        }
                                    }
                                }
                            }
                        }
                    }
                }
            }

        } // while (in.hasNext())

    } catch (FileNotFoundException e) {
        //System.out.println("Error abriendo el fichero "+nomFich);

    } finally {
        if (in != null) {
            in.close();

            vaciarDataSet();

        }
    } // try

    //GUARDO LO GENERADO Y LUEGO LO RETORNO
    return reglas;
}

From source file:Dao.NCFAS.PruebaWekaDaoDim3.java

public List<reglasEncontradas> retornarReglasDim3() throws DAOException, IOException, Exception {

    actualizarItemsGenerales();/*www  .  j av a  2  s  .  c o m*/
    ServletContext servletContext = (ServletContext) FacesContext.getCurrentInstance().getExternalContext()
            .getContext();

    //Ruta de nuestros archivos
    String pathArchivos = (String) servletContext.getRealPath("/") + "archivosVarios/"; // Sustituye "/" por el directorio ej: "/upload"

    //CREO FICHEROS PARA  LUEGO GUARDAR LOS RESULTADOS DE WEKA  
    FileWriter fichero = null;
    PrintWriter pw = null;
    //CREO UN FICHERO PARA LUEGO GUARDAR LOS RESULTADOS FILTRADOS DE MINERIA   
    //FileWriter ficheroMin = null; 
    // PrintWriter pwMin = null; 

    FileWriter ficheroMin = null;
    PrintWriter pwMin = null;

    //LEO DATASET .ARFF
    String dataset = pathArchivos + "DataSetSimulado.arff";
    String datasettxt = pathArchivos + "datasettxt.txt";

    File fichero2 = new File(datasettxt);
    try {
        BufferedReader fich = new BufferedReader(new FileReader(datasettxt));
        //Usamos la clase BufferReadeader para tener acceso a un metodo propio (readLine()) y asi mediante un contador contar las lineas.
        int contadorL = 0;
        String linea;
        try {
            //En este caso la condicion final del while corresponde a null, para indicar el final de linea
            while ((linea = fich.readLine()) != null) {
                contadorL++;
            }
            contadorL = contadorL - 13;
            total = contadorL;
            System.out.println("El nmero de lneas :" + contadorL);
        } catch (IOException e) {
            // TODO Bloque catch generado automticamente
            e.printStackTrace();
        }
    } catch (FileNotFoundException e) {
        e.printStackTrace();
    }

    int retorno = 0;
    List<String> almacenaRetorno = null;
    almacenaRetorno = new ArrayList<String>();

    List<String> numVeces = null;
    numVeces = new ArrayList<String>();

    List<reglasEncontradas> reglas = null;
    reglas = new ArrayList<reglasEncontradas>();

    for (int i = 1; i <= 10; i++) {
        numVeces.add("0");
    }

    final String nomFich = pathArchivos + "Resultado.txt";
    Scanner in = null;

    // ficheroMin = new FileWriter(pathArchivos+"reporteMineria.txt");
    //pwMin = new PrintWriter(ficheroMin);

    int band = 0;
    DataSource source = new DataSource(dataset);
    Apriori model = new Apriori();

    try {

        //REALIZAMOS MINER?A DE DATOS CON WEKA
        Instances data = source.getDataSet();
        model.buildAssociations(data);

        //PREPARAR PARA ESCRIBIR LO GENERADO POR WEKA EN UN ARCHIVO RESULTADO.TXT
        fichero = new FileWriter(pathArchivos + "Resultado.txt", true);
        pw = new PrintWriter(fichero);
        pw.println(model);

        //SE MUESTRA LOS RESULTADOS OBTENIDOS POR APRIORI
        //System.out.println("LOS RESULTADOS DE APRIORI A DataSetSimulado.arff son:");
        //System.out.println(model);
        //borra el archivo
        BufferedWriter bw = new BufferedWriter(new FileWriter(pathArchivos + "Resultado.txt"));
        bw.write("");
        fichero.close();

        //System.out.println("Ahora vamos a leer los resultados obtenidos por apriori");
        //BufferedReader bf = new BufferedReader(new FileReader("Resultado.txt"));
        // abre el fichero
        in = new Scanner(new FileReader(nomFich));

        // lee el fichero palabra a palabra
        while (in.hasNext()) {

            // lee primera palabra
            String palabra0 = in.next();
            int numRegla = 0;
            float porcentaje;
            float porcentaje2;
            List<String> almacenaAnterior = null;
            almacenaAnterior = new ArrayList<String>();
            String palabra1;
            String palabra2;
            String palabra3;
            String palabra4;
            String palabra5;
            String palabra6;
            String palabra7;

            String frase1;
            String frase2;
            String frase3;

            Pattern pat = Pattern.compile("DIM3.*");
            Pattern pat2 = Pattern.compile("==>");
            Pattern pat3 = Pattern.compile("^\\d.^");
            Pattern pat4 = Pattern.compile("DIM.*");

            String num1 = ("1.");
            String num2 = ("2.");
            String num3 = ("3.");
            String num4 = ("4.");
            String num5 = ("5.");
            String num6 = ("6.");
            String num7 = ("7.");
            String num8 = ("8.");
            String num9 = ("9.");
            String num10 = ("10.");

            List<String> dimInvolucradas = null;
            dimInvolucradas = new ArrayList<String>();

            Matcher mat;
            //PRIMERA RELGA DE ASOCIACIN
            //BLOQUE 1
            //COMPROBAR SI EST? DIM2 INVOLUCRADA
            mat = pat3.matcher(palabra0);
            //
            if (num1.equals(palabra0)) {
                if (in.hasNext()) {
                    palabra1 = in.next(); // SEGUNDA PALABRA             
                    //GUARDO LO LEIDO
                    almacenaAnterior.add(palabra0);
                    almacenaAnterior.add(palabra1);
                    mat = pat.matcher(palabra1);
                    //PALABRA 1 ES DIMENSION 2?
                    if (mat.matches()) {

                        dimInvolucradas.add(palabra1);
                        String valorDim2 = consultaValor(palabra1);
                        //REVISAMOS LO QUE VIENE DESPUES DE DIM2=
                        if (in.hasNext()) {
                            palabra2 = in.next(); //PALABRA 3 EN EL CAMINO FELIZ
                            if (in.hasNext()) {
                                palabra3 = in.next(); //PALABRA 4 EN EL CAMINO FELIZ                    
                                almacenaAnterior.add(palabra2);
                                almacenaAnterior.add(palabra3);
                                mat = pat2.matcher(palabra3);
                                //SI ES UNA ==> ENTONCES
                                if (mat.matches()) {
                                    if (in.hasNext()) {
                                        palabra4 = in.next(); //PALABRA 5 CAMINO FELIZ
                                        dimInvolucradas.add(palabra4);
                                        palabra4 = consultaPalabra(palabra4);
                                        palabra5 = in.next(); //VALOR DE VECES DESPUES DE =>
                                        palabra6 = in.next();
                                        numXregla1 = Integer.parseInt((palabra2));
                                        numYregla1 = Integer.parseInt((palabra5));
                                        conf1 = consultaConfianza(palabra6);
                                        porcentaje = (numXregla1 * 100) / total;
                                        porcentaje2 = (numYregla1 * 100) / total;
                                        frase1 = ("De un total de " + total
                                                + " NCFAS, se cumple que la dimension Interacciones Familiares adquiere un valor igual a "
                                                + valorDim2 + " una cantidad de " + numXregla1 + " veces ("
                                                + porcentaje + "%)(X). Esto afecta a la dimensin " + palabra4
                                                + ", una cantidad de " + palabra5 + " vececs (" + porcentaje2
                                                + "%)(Y). \n Es decir esta regla se cumple el " + conf1
                                                + "% de las veces. \n");
                                        almacenaRetorno.add(frase1);

                                        numVeces.add(1, palabra2 + " " + palabra5);

                                        reglasEncontradas regla1 = new reglasEncontradas();
                                        regla1.setContenido(frase1);
                                        regla1.setValorX(numXregla1);
                                        regla1.setValorY(numYregla1);
                                        regla1.setNumRegla(1);
                                        reglas.add(regla1);
                                        System.out.println("ENTRAMOS AC?");
                                        // band=1;

                                    }
                                }

                                // LA REGLA TIENE MAS DE UNA DIMENSIN INVOLUCRADA ANTES DE ==>
                                else {
                                    if (in.hasNext()) {
                                        palabra4 = in.next(); // DEBER?A SER FLECHA 
                                        //COMPROBAMOS SI LA ==> EST? EN LA cuarta POSICIN
                                        mat = pat2.matcher(palabra4);
                                        if (mat.matches()) {
                                            if (in.hasNext()) {
                                                palabra5 = in.next();
                                                dimInvolucradas.add(almacenaAnterior.get(2));
                                                String dimension = consultaPalabra(almacenaAnterior.get(2));
                                                dimInvolucradas.add(palabra5);

                                                palabra5 = consultaPalabra(palabra5);
                                                palabra6 = in.next();
                                                palabra7 = in.next();
                                                numXregla1 = Integer.parseInt((almacenaAnterior.get(3)));
                                                numYregla1 = Integer.parseInt((palabra6));
                                                porcentaje = (numXregla1 * 100) / total;
                                                porcentaje2 = (numYregla1 * 100) / total;
                                                conf1 = consultaConfianza(palabra7);

                                                frase1 = ("De un total de " + total
                                                        + " NCFAS, se cumple que la dimensin Interacciones Familiares adquiere un valor igual a "
                                                        + valorDim2 + "  junto con la dimensin " + dimension
                                                        + ", esto ocurre una cantidad de " + numXregla1
                                                        + " veces (" + porcentaje
                                                        + "%)(X). Esto afecta a la dimensin " + palabra5
                                                        + " una cantidad de " + palabra6 + " veces ("
                                                        + porcentaje2
                                                        + "%)(Y). \n Es decir esta regla se cumple el " + conf1
                                                        + "% de las veces.\n");
                                                almacenaRetorno.add(frase1);
                                                numVeces.add(1, almacenaAnterior.get(3) + " " + palabra6);

                                                System.out.println("LOS VALORES DE LA REGLA 1 SON: "
                                                        + numXregla1 + numYregla1);

                                                reglasEncontradas regla1 = new reglasEncontradas();
                                                regla1.setContenido(frase1);
                                                regla1.setValorX(numXregla1);
                                                regla1.setValorY(numYregla1);
                                                regla1.setNumRegla(1);
                                                reglas.add(regla1);

                                            }
                                        }
                                    }
                                }
                            }
                        }
                    }

                    //BLOQUE 2
                    //AC? SE COMPRUEBA SI SE ENCUENTRA LA DIMENSIN 2 EN SEGUNDA POSICIN           
                    if (in.hasNext()) {
                        palabra2 = in.next(); // 
                        if (in.hasNext()) {
                            palabra3 = in.next(); //               
                            //GUARDAMOS LO LE?DO
                            almacenaAnterior.add(palabra2);
                            almacenaAnterior.add(palabra3);
                            mat = pat2.matcher(palabra3);
                            // SI LA PALABRA 3 ES UNA FLECHA, ENTONCES HAY SOLO UNA DIMENSIN INVOLUCRADA
                            if (mat.matches()) {
                                if (in.hasNext()) {
                                    palabra4 = in.next();

                                    // DESPUES DE LA ==> EST? INVOLUCRADA LA DIM2 ?
                                    mat = pat.matcher(palabra4);
                                    if (mat.matches()) {

                                        palabra5 = in.next();
                                        palabra6 = in.next();
                                        String valorDim2 = consultaValor(palabra4);
                                        String dimension = consultaPalabra(almacenaAnterior.get(1));
                                        numXregla1 = Integer.parseInt((palabra5));
                                        numYregla1 = Integer.parseInt((almacenaAnterior.get(2)));
                                        porcentaje = (numXregla1 * 100) / total;
                                        porcentaje2 = (numYregla1 * 100) / total;
                                        conf1 = consultaConfianza(palabra6);
                                        frase1 = ("De un total de " + total
                                                + " NCFAS, se cumple que la dimensin " + dimension
                                                + ", junto con la dimensin " + palabra5 + ", una cantidad de "
                                                + numXregla1 + " veces (" + porcentaje
                                                + "%) (X). Esto afecta a la dimensin Interacciones Familiares adquiere un valor igual a "
                                                + valorDim2 + ", una cantidad de " + numYregla1 + " veces ("
                                                + porcentaje2 + "%)(Y). \n Es decir esta regla se cumple el "
                                                + conf1 + "% de las veces.\n");
                                        almacenaRetorno.add(frase1); // CAMINO FELIZ DIM2 EN POSICIN 2 
                                        //System.out.println(frase1); 
                                        almacenaRetorno.add(frase1); // CAMINO FELIZ DIM2 EN POSICIN 2  
                                        //  band=1;
                                        numVeces.add(1, palabra5 + " " + almacenaAnterior.get(2));

                                        System.out.println("ENTRAMOS AC?" + numXregla2 + numYregla2);
                                        reglasEncontradas regla1 = new reglasEncontradas();
                                        regla1.setContenido(frase1);
                                        regla1.setValorX(numXregla1);
                                        regla1.setValorY(numYregla1);
                                        regla1.setNumRegla(1);
                                        reglas.add(regla1);

                                    }
                                }
                            } else {
                                mat = pat.matcher(palabra2);
                                if (mat.matches()) {
                                    String valorDim2 = consultaValor(palabra2);
                                    if (in.hasNext()) {
                                        palabra4 = in.next();
                                        if (in.hasNext()) {
                                            palabra5 = in.next();
                                            if (in.hasNext()) {
                                                String dimension = consultaPalabra(almacenaAnterior.get(1));
                                                palabra5 = consultaPalabra(palabra5);
                                                palabra6 = in.next();
                                                palabra7 = in.next();
                                                numXregla1 = Integer.parseInt((palabra3));
                                                numYregla1 = Integer.parseInt((palabra6));
                                                conf1 = consultaConfianza(palabra7);

                                                porcentaje = (numXregla1 * 100) / total;
                                                porcentaje2 = (numYregla1 * 100) / total;

                                                frase1 = ("De un total de " + total
                                                        + " NCFAS, se cumple que la dimensin  Interacciones Familiares adquiere un valor igual a "
                                                        + valorDim2 + " junto con la dimensin " + dimension
                                                        + ", una cantidad de " + numXregla1 + " veces ("
                                                        + porcentaje + "%) (X). Esto afecta a la dimensin "
                                                        + palabra5 + " , una cantidad de " + palabra6
                                                        + " veces (" + porcentaje2
                                                        + "%)(Y).\n Es decir esta regla se cumple el " + conf1
                                                        + "% de las veces.\n");

                                                numVeces.add(1, palabra3 + " " + palabra6);
                                                reglasEncontradas regla1 = new reglasEncontradas();
                                                regla1.setContenido(frase1);
                                                regla1.setValorX(numXregla1);
                                                regla1.setValorY(numYregla1);
                                                regla1.setNumRegla(1);
                                                reglas.add(regla1);

                                                almacenaRetorno.add(frase1);
                                                ;
                                                //  band=1;
                                            }
                                        }
                                    }
                                }
                                //NO HAY DIMENSIN 2 NI EN LA PRIMERA NI EN LA SEGUNDA POSICIN 
                                else {
                                    if (in.hasNext()) {
                                        palabra4 = in.next();
                                        if (in.hasNext()) {
                                            palabra5 = in.next();

                                            if (in.hasNext()) {
                                                mat = pat.matcher(palabra5);
                                                if (mat.matches()) {
                                                    palabra6 = in.next();
                                                    palabra7 = in.next();
                                                    String valorDim2 = consultaValor(palabra5);
                                                    String dimension = consultaPalabra(almacenaAnterior.get(1));
                                                    String dimension2 = consultaPalabra(
                                                            almacenaAnterior.get(2));

                                                    numXregla1 = Integer.parseInt((almacenaAnterior.get(3)));
                                                    numYregla1 = Integer.parseInt((palabra6));
                                                    conf1 = consultaConfianza(palabra7);
                                                    porcentaje = (numXregla1 * 100) / total;
                                                    porcentaje2 = (numYregla1 * 100) / total;

                                                    frase1 = ("De un total de " + total
                                                            + " NCFAS, se cumple que la dimensin " + dimension
                                                            + " junto con la dimensin " + dimension2
                                                            + " , una cantidad de " + numXregla1 + " veces ("
                                                            + porcentaje
                                                            + "%) (X). Esto afecta a la dimensin Interacciones Familiares la cual adquiere un valor igual a "
                                                            + valorDim2 + " , una cantidad de " + palabra6
                                                            + " veces (" + porcentaje2
                                                            + "%)(Y).\n Es decir esta regla se cumple el "
                                                            + conf1 + "% de las veces.\n");
                                                    numVeces.add(1, almacenaAnterior.get(3) + " " + palabra6);

                                                    reglasEncontradas regla1 = new reglasEncontradas();
                                                    regla1.setContenido(frase1);
                                                    regla1.setValorX(numXregla1);
                                                    regla1.setValorY(numYregla1);
                                                    regla1.setNumRegla(1);
                                                    reglas.add(regla1);

                                                    almacenaRetorno.add(frase1);
                                                    //band=1;
                                                }
                                            }
                                        }
                                    }
                                }
                            }
                        }
                    }
                }
            }

            //SEGUNDA RELGA DE ASOCIACIN
            //BLOQUE 1
            //COMPROBAR SI EST? DIM2 INVOLUCRADA
            mat = pat3.matcher(palabra0);
            //
            if (num2.equals(palabra0)) {
                if (in.hasNext()) {
                    palabra1 = in.next(); // SEGUNDA PALABRA             
                    //GUARDO LO LEIDO
                    almacenaAnterior.add(palabra0);
                    almacenaAnterior.add(palabra1);
                    mat = pat.matcher(palabra1);
                    //PALABRA 1 ES DIMENSION 2?
                    if (mat.matches()) {

                        dimInvolucradas.add(palabra1);
                        String valorDim2 = consultaValor(palabra1);
                        //REVISAMOS LO QUE VIENE DESPUES DE DIM2=
                        if (in.hasNext()) {
                            palabra2 = in.next(); //PALABRA 3 EN EL CAMINO FELIZ
                            if (in.hasNext()) {
                                palabra3 = in.next(); //PALABRA 4 EN EL CAMINO FELIZ                    
                                almacenaAnterior.add(palabra2);
                                almacenaAnterior.add(palabra3);
                                mat = pat2.matcher(palabra3);
                                //SI ES UNA ==> ENTONCES
                                if (mat.matches()) {
                                    if (in.hasNext()) {
                                        palabra4 = in.next(); //PALABRA 5 CAMINO FELIZ
                                        dimInvolucradas.add(palabra4);
                                        palabra4 = consultaPalabra(palabra4);
                                        palabra5 = in.next(); //VALOR DE VECES DESPUES DE =>
                                        palabra6 = in.next();
                                        numXregla2 = Integer.parseInt((palabra2));
                                        numYregla2 = Integer.parseInt((palabra5));
                                        conf2 = consultaConfianza(palabra6);
                                        porcentaje = (numXregla2 * 100) / total;
                                        porcentaje2 = (numYregla2 * 100) / total;
                                        frase1 = ("De un total de " + total
                                                + " NCFAS, se cumple que la dimension Interacciones Familiares adquiere un valor igual a "
                                                + valorDim2 + " una cantidad de " + numXregla2 + " veces ("
                                                + porcentaje + "%) (X). Esto afecta a la dimensin " + palabra4
                                                + ", una cantidad de " + palabra5 + " vececs (" + porcentaje2
                                                + "%) (Y). \n Es decir esta regla se cumple el " + conf2
                                                + "% de las veces. \n");
                                        almacenaRetorno.add(frase1);

                                        numVeces.add(1, palabra2 + " " + palabra5);

                                        reglasEncontradas regla2 = new reglasEncontradas();
                                        regla2.setContenido(frase1);
                                        regla2.setValorX(numXregla2);
                                        regla2.setValorY(numYregla2);
                                        regla2.setNumRegla(2);
                                        reglas.add(regla2);
                                        System.out.println("ENTRAMOS AC?");
                                        // band=1;

                                    }
                                }

                                // LA REGLA TIENE MAS DE UNA DIMENSIN INVOLUCRADA ANTES DE ==>
                                else {
                                    if (in.hasNext()) {
                                        palabra4 = in.next(); // DEBER?A SER FLECHA 
                                        //COMPROBAMOS SI LA ==> EST? EN LA cuarta POSICIN
                                        mat = pat2.matcher(palabra4);
                                        if (mat.matches()) {
                                            if (in.hasNext()) {
                                                palabra5 = in.next();
                                                dimInvolucradas.add(almacenaAnterior.get(2));
                                                String dimension = consultaPalabra(almacenaAnterior.get(2));
                                                dimInvolucradas.add(palabra5);

                                                palabra5 = consultaPalabra(palabra5);
                                                palabra6 = in.next();
                                                palabra7 = in.next();
                                                numXregla2 = Integer.parseInt((almacenaAnterior.get(3)));
                                                numYregla2 = Integer.parseInt((palabra6));
                                                porcentaje = (numXregla2 * 100) / total;
                                                porcentaje2 = (numYregla2 * 100) / total;
                                                conf2 = consultaConfianza(palabra7);

                                                frase1 = ("De un total de " + total
                                                        + " NCFAS, se cumple que la dimensin Interacciones Familiares adquiere un valor igual a "
                                                        + valorDim2 + "  junto con la dimensin " + dimension
                                                        + ", esto ocurre una cantidad de " + numXregla2
                                                        + " veces (" + porcentaje
                                                        + "%) (X). Esto afecta a la dimensin " + palabra5
                                                        + " una cantidad de " + palabra6 + " veces ("
                                                        + porcentaje2
                                                        + "%)(Y). \n Es decir esta regla se cumple el " + conf2
                                                        + "% de las veces.\n");
                                                almacenaRetorno.add(frase1);
                                                numVeces.add(1, almacenaAnterior.get(3) + " " + palabra6);

                                                System.out.println("LOS VALORES DE LA REGLA 1 SON: "
                                                        + numXregla2 + numYregla2);

                                                reglasEncontradas regla2 = new reglasEncontradas();
                                                regla2.setContenido(frase1);
                                                regla2.setValorX(numXregla2);
                                                regla2.setValorY(numYregla2);
                                                regla2.setNumRegla(2);
                                                reglas.add(regla2);

                                            }
                                        }
                                    }
                                }
                            }
                        }
                    }

                    //BLOQUE 2
                    //AC? SE COMPRUEBA SI SE ENCUENTRA LA DIMENSIN 2 EN SEGUNDA POSICIN           
                    if (in.hasNext()) {
                        palabra2 = in.next(); // 
                        if (in.hasNext()) {
                            palabra3 = in.next(); //               
                            //GUARDAMOS LO LE?DO
                            almacenaAnterior.add(palabra2);
                            almacenaAnterior.add(palabra3);
                            mat = pat2.matcher(palabra3);
                            // SI LA PALABRA 3 ES UNA FLECHA, ENTONCES HAY SOLO UNA DIMENSIN INVOLUCRADA
                            if (mat.matches()) {
                                if (in.hasNext()) {
                                    palabra4 = in.next();

                                    // DESPUES DE LA ==> EST? INVOLUCRADA LA DIM2 ?
                                    mat = pat.matcher(palabra4);
                                    if (mat.matches()) {

                                        palabra5 = in.next();
                                        palabra6 = in.next();
                                        String valorDim2 = consultaValor(palabra4);
                                        String dimension = consultaPalabra(almacenaAnterior.get(1));
                                        numXregla2 = Integer.parseInt((palabra5));
                                        numYregla2 = Integer.parseInt((almacenaAnterior.get(2)));
                                        porcentaje = (numXregla2 * 100) / total;
                                        porcentaje2 = (numYregla2 * 100) / total;
                                        conf2 = consultaConfianza(palabra6);
                                        frase1 = ("De un total de " + total
                                                + " NCFAS, se cumple que la dimensin " + dimension
                                                + ", junto con la dimensin " + palabra5 + ", una cantidad de "
                                                + numXregla2 + " veces (" + porcentaje
                                                + "%) (X). Esto afecta a la dimensin Interacciones Familiares adquiere un valor igual a "
                                                + valorDim2 + ", una cantidad de " + numYregla2 + " veces ("
                                                + porcentaje2 + "%)(Y). \n Es decir esta regla se cumple el "
                                                + conf2 + "% de las veces.\n");
                                        almacenaRetorno.add(frase1); // CAMINO FELIZ DIM2 EN POSICIN 2 
                                        //System.out.println(frase1); 
                                        almacenaRetorno.add(frase1); // CAMINO FELIZ DIM2 EN POSICIN 2  
                                        //  band=1;
                                        numVeces.add(1, palabra5 + " " + almacenaAnterior.get(2));

                                        System.out.println("ENTRAMOS AC?" + numXregla2 + numYregla2);
                                        reglasEncontradas regla2 = new reglasEncontradas();
                                        regla2.setContenido(frase1);
                                        regla2.setValorX(numXregla2);
                                        regla2.setValorY(numYregla2);
                                        regla2.setNumRegla(2);
                                        reglas.add(regla2);

                                    }
                                }
                            } else {
                                mat = pat.matcher(palabra2);
                                if (mat.matches()) {
                                    String valorDim2 = consultaValor(palabra2);
                                    if (in.hasNext()) {
                                        palabra4 = in.next();
                                        if (in.hasNext()) {
                                            palabra5 = in.next();
                                            if (in.hasNext()) {
                                                String dimension = consultaPalabra(almacenaAnterior.get(1));
                                                palabra5 = consultaPalabra(palabra5);
                                                palabra6 = in.next();
                                                palabra7 = in.next();
                                                numXregla2 = Integer.parseInt((palabra3));
                                                numYregla2 = Integer.parseInt((palabra6));
                                                conf2 = consultaConfianza(palabra7);

                                                porcentaje = (numXregla2 * 100) / total;
                                                porcentaje2 = (numYregla2 * 100) / total;

                                                frase1 = ("De un total de " + total
                                                        + " NCFAS, se cumple que la dimensin  Interacciones Familiares adquiere un valor igual a "
                                                        + valorDim2 + " junto con la dimensin " + dimension
                                                        + ", una cantidad de " + numXregla2 + " veces ("
                                                        + porcentaje + "%) (X). Esto afecta a la dimensin "
                                                        + palabra5 + " , una cantidad de " + palabra6
                                                        + " veces (" + porcentaje2
                                                        + "%)(Y).\n Es decir esta regla se cumple el " + conf2
                                                        + "% de las veces.\n");

                                                numVeces.add(1, palabra3 + " " + palabra6);
                                                reglasEncontradas regla2 = new reglasEncontradas();
                                                regla2.setContenido(frase1);
                                                regla2.setValorX(numXregla2);
                                                regla2.setValorY(numYregla2);
                                                regla2.setNumRegla(2);
                                                reglas.add(regla2);

                                                almacenaRetorno.add(frase1);
                                                ;
                                                //  band=1;
                                            }
                                        }
                                    }
                                }
                                //NO HAY DIMENSIN 2 NI EN LA PRIMERA NI EN LA SEGUNDA POSICIN 
                                else {
                                    if (in.hasNext()) {
                                        palabra4 = in.next();
                                        if (in.hasNext()) {
                                            palabra5 = in.next();

                                            if (in.hasNext()) {
                                                mat = pat.matcher(palabra5);
                                                if (mat.matches()) {
                                                    palabra6 = in.next();
                                                    palabra7 = in.next();
                                                    String valorDim2 = consultaValor(palabra5);
                                                    String dimension = consultaPalabra(almacenaAnterior.get(1));
                                                    String dimension2 = consultaPalabra(
                                                            almacenaAnterior.get(2));

                                                    numXregla2 = Integer.parseInt((almacenaAnterior.get(3)));
                                                    numYregla2 = Integer.parseInt((palabra6));
                                                    conf2 = consultaConfianza(palabra7);
                                                    porcentaje = (numXregla2 * 100) / total;
                                                    porcentaje2 = (numYregla2 * 100) / total;

                                                    frase1 = ("De un total de " + total
                                                            + " NCFAS, se cumple que la dimensin " + dimension
                                                            + " junto con la dimensin " + dimension2
                                                            + " , una cantidad de " + numXregla2 + " veces ("
                                                            + porcentaje
                                                            + "%) (X). Esto afecta a la dimensin Interacciones Familiares la cual adquiere un valor igual a "
                                                            + valorDim2 + " , una cantidad de " + palabra6
                                                            + " veces (" + porcentaje2
                                                            + "%)(Y).\n Es decir esta regla se cumple el "
                                                            + conf2 + "% de las veces.\n");
                                                    numVeces.add(1, almacenaAnterior.get(3) + " " + palabra6);

                                                    reglasEncontradas regla2 = new reglasEncontradas();
                                                    regla2.setContenido(frase1);
                                                    regla2.setValorX(numXregla2);
                                                    regla2.setValorY(numYregla2);
                                                    regla2.setNumRegla(2);
                                                    reglas.add(regla2);

                                                    almacenaRetorno.add(frase1);
                                                    //band=1;
                                                }
                                            }
                                        }
                                    }
                                }
                            }
                        }
                    }
                }
            }

            //ERCERA RELGA DE ASOCIACIN
            //BLOQUE 1
            //COMPROBAR SI EST? DIM2 INVOLUCRADA
            mat = pat3.matcher(palabra0);
            //
            if (num3.equals(palabra0)) {
                if (in.hasNext()) {
                    palabra1 = in.next(); // SEGUNDA PALABRA             
                    //GUARDO LO LEIDO
                    almacenaAnterior.add(palabra0);
                    almacenaAnterior.add(palabra1);
                    mat = pat.matcher(palabra1);
                    //PALABRA 1 ES DIMENSION 2?
                    if (mat.matches()) {

                        dimInvolucradas.add(palabra1);
                        String valorDim2 = consultaValor(palabra1);
                        //REVISAMOS LO QUE VIENE DESPUES DE DIM2=
                        if (in.hasNext()) {
                            palabra2 = in.next(); //PALABRA 3 EN EL CAMINO FELIZ
                            if (in.hasNext()) {
                                palabra3 = in.next(); //PALABRA 4 EN EL CAMINO FELIZ                    
                                almacenaAnterior.add(palabra2);
                                almacenaAnterior.add(palabra3);
                                mat = pat2.matcher(palabra3);
                                //SI ES UNA ==> ENTONCES
                                if (mat.matches()) {
                                    if (in.hasNext()) {
                                        palabra4 = in.next(); //PALABRA 5 CAMINO FELIZ
                                        dimInvolucradas.add(palabra4);
                                        palabra4 = consultaPalabra(palabra4);
                                        palabra5 = in.next(); //VALOR DE VECES DESPUES DE =>
                                        palabra6 = in.next();
                                        numXregla3 = Integer.parseInt((palabra2));
                                        numYregla3 = Integer.parseInt((palabra5));
                                        conf3 = consultaConfianza(palabra6);
                                        porcentaje = (numXregla3 * 100) / total;
                                        porcentaje2 = (numYregla3 * 100) / total;
                                        frase1 = ("De un total de " + total
                                                + " NCFAS, se cumple que la dimension Interacciones Familiares adquiere un valor igual a "
                                                + valorDim2 + " una cantidad de " + numXregla3 + " veces ("
                                                + porcentaje + "%) (X). Esto afecta a la dimensin " + palabra4
                                                + ", una cantidad de " + palabra5 + " vececs (" + porcentaje2
                                                + "%) (Y). \n Es decir esta regla se cumple el " + conf3
                                                + "% de las veces. \n");
                                        almacenaRetorno.add(frase1);

                                        numVeces.add(1, palabra2 + " " + palabra5);

                                        reglasEncontradas regla3 = new reglasEncontradas();
                                        regla3.setContenido(frase1);
                                        regla3.setValorX(numXregla3);
                                        regla3.setValorY(numYregla3);
                                        regla3.setNumRegla(3);
                                        reglas.add(regla3);
                                        System.out.println("ENTRAMOS AC?");
                                        // band=1;

                                    }
                                }

                                // LA REGLA TIENE MAS DE UNA DIMENSIN INVOLUCRADA ANTES DE ==>
                                else {
                                    if (in.hasNext()) {
                                        palabra4 = in.next(); // DEBER?A SER FLECHA 
                                        //COMPROBAMOS SI LA ==> EST? EN LA cuarta POSICIN
                                        mat = pat2.matcher(palabra4);
                                        if (mat.matches()) {
                                            if (in.hasNext()) {
                                                palabra5 = in.next();
                                                dimInvolucradas.add(almacenaAnterior.get(2));
                                                String dimension = consultaPalabra(almacenaAnterior.get(2));
                                                dimInvolucradas.add(palabra5);

                                                palabra5 = consultaPalabra(palabra5);
                                                palabra6 = in.next();
                                                palabra7 = in.next();
                                                numXregla3 = Integer.parseInt((almacenaAnterior.get(3)));
                                                numYregla3 = Integer.parseInt((palabra6));
                                                porcentaje = (numXregla3 * 100) / total;
                                                porcentaje2 = (numYregla3 * 100) / total;
                                                conf3 = consultaConfianza(palabra7);

                                                frase1 = ("De un total de " + total
                                                        + " NCFAS, se cumple que la dimensin Interacciones Familiares adquiere un valor igual a "
                                                        + valorDim2 + "  junto con la dimensin " + dimension
                                                        + ", esto ocurre una cantidad de " + numXregla3
                                                        + " veces (" + porcentaje
                                                        + "%). Esto afecta a la dimensin " + palabra5
                                                        + " una cantidad de " + palabra6 + " veces ("
                                                        + porcentaje2
                                                        + "%)(Y). \n Es decir esta regla se cumple el " + conf3
                                                        + "% de las veces.\n");
                                                almacenaRetorno.add(frase1);
                                                numVeces.add(1, almacenaAnterior.get(3) + " " + palabra6);

                                                System.out.println("LOS VALORES DE LA REGLA 1 SON: "
                                                        + numXregla3 + numYregla3);

                                                reglasEncontradas regla3 = new reglasEncontradas();
                                                regla3.setContenido(frase1);
                                                regla3.setValorX(numXregla3);
                                                regla3.setValorY(numYregla3);
                                                regla3.setNumRegla(3);
                                                reglas.add(regla3);

                                            }
                                        }
                                    }
                                }
                            }
                        }
                    }

                    //BLOQUE 2
                    //AC? SE COMPRUEBA SI SE ENCUENTRA LA DIMENSIN 2 EN SEGUNDA POSICIN           
                    if (in.hasNext()) {
                        palabra2 = in.next(); // 
                        if (in.hasNext()) {
                            palabra3 = in.next(); //               
                            //GUARDAMOS LO LE?DO
                            almacenaAnterior.add(palabra2);
                            almacenaAnterior.add(palabra3);
                            mat = pat2.matcher(palabra3);
                            // SI LA PALABRA 3 ES UNA FLECHA, ENTONCES HAY SOLO UNA DIMENSIN INVOLUCRADA
                            if (mat.matches()) {
                                if (in.hasNext()) {
                                    palabra4 = in.next();

                                    // DESPUES DE LA ==> EST? INVOLUCRADA LA DIM2 ?
                                    mat = pat.matcher(palabra4);
                                    if (mat.matches()) {

                                        palabra5 = in.next();
                                        palabra6 = in.next();
                                        String valorDim2 = consultaValor(palabra4);
                                        String dimension = consultaPalabra(almacenaAnterior.get(1));
                                        numXregla3 = Integer.parseInt((palabra5));
                                        numYregla3 = Integer.parseInt((almacenaAnterior.get(2)));
                                        porcentaje = (numXregla3 * 100) / total;
                                        porcentaje2 = (numYregla3 * 100) / total;
                                        conf3 = consultaConfianza(palabra6);
                                        frase1 = ("De un total de " + total
                                                + " NCFAS, se cumple que la dimensin " + dimension
                                                + ", junto con la dimensin " + palabra5 + ", una cantidad de "
                                                + numXregla3 + " veces (" + porcentaje
                                                + "%) (X). Esto afecta a la dimensin Interacciones Familiares adquiere un valor igual a "
                                                + valorDim2 + ", una cantidad de " + numYregla3 + " veces ("
                                                + porcentaje2 + "%)(Y). \n Es decir esta regla se cumple el "
                                                + conf3 + "% de las veces.\n");
                                        almacenaRetorno.add(frase1); // CAMINO FELIZ DIM2 EN POSICIN 2 
                                        //System.out.println(frase1); 
                                        almacenaRetorno.add(frase1); // CAMINO FELIZ DIM2 EN POSICIN 2  
                                        //  band=1;
                                        numVeces.add(1, palabra5 + " " + almacenaAnterior.get(2));

                                        System.out.println("ENTRAMOS AC?" + numXregla3 + numYregla3);
                                        reglasEncontradas regla3 = new reglasEncontradas();
                                        regla3.setContenido(frase1);
                                        regla3.setValorX(numXregla3);
                                        regla3.setValorY(numYregla3);
                                        regla3.setNumRegla(3);
                                        reglas.add(regla3);

                                    }
                                }
                            } else {
                                mat = pat.matcher(palabra2);
                                if (mat.matches()) {
                                    String valorDim2 = consultaValor(palabra2);
                                    if (in.hasNext()) {
                                        palabra4 = in.next();
                                        if (in.hasNext()) {
                                            palabra5 = in.next();
                                            if (in.hasNext()) {
                                                String dimension = consultaPalabra(almacenaAnterior.get(1));
                                                palabra5 = consultaPalabra(palabra5);
                                                palabra6 = in.next();
                                                palabra7 = in.next();
                                                numXregla3 = Integer.parseInt((palabra3));
                                                numYregla3 = Integer.parseInt((palabra6));
                                                conf3 = consultaConfianza(palabra7);

                                                porcentaje = (numXregla3 * 100) / total;
                                                porcentaje2 = (numYregla3 * 100) / total;

                                                frase1 = ("De un total de " + total
                                                        + " NCFAS, se cumple que la dimensin  Interacciones Familiares adquiere un valor igual a "
                                                        + valorDim2 + " junto con la dimensin " + dimension
                                                        + ", una cantidad de " + numXregla3 + " veces ("
                                                        + porcentaje + "%) (X). Esto afecta a la dimensin "
                                                        + palabra5 + " , una cantidad de " + palabra6
                                                        + " veces (" + porcentaje2
                                                        + "%)(Y).\n Es decir esta regla se cumple el " + conf3
                                                        + "% de las veces.\n");

                                                numVeces.add(1, palabra3 + " " + palabra6);
                                                reglasEncontradas regla3 = new reglasEncontradas();
                                                regla3.setContenido(frase1);
                                                regla3.setValorX(numXregla3);
                                                regla3.setValorY(numYregla3);
                                                regla3.setNumRegla(3);
                                                reglas.add(regla3);

                                                almacenaRetorno.add(frase1);
                                                ;
                                                //  band=1;
                                            }
                                        }
                                    }
                                }
                                //NO HAY DIMENSIN 2 NI EN LA PRIMERA NI EN LA SEGUNDA POSICIN 
                                else {
                                    if (in.hasNext()) {
                                        palabra4 = in.next();
                                        if (in.hasNext()) {
                                            palabra5 = in.next();

                                            if (in.hasNext()) {
                                                mat = pat.matcher(palabra5);
                                                if (mat.matches()) {
                                                    palabra6 = in.next();
                                                    palabra7 = in.next();
                                                    String valorDim2 = consultaValor(palabra5);
                                                    String dimension = consultaPalabra(almacenaAnterior.get(1));
                                                    String dimension2 = consultaPalabra(
                                                            almacenaAnterior.get(2));

                                                    numXregla3 = Integer.parseInt((almacenaAnterior.get(3)));
                                                    numYregla3 = Integer.parseInt((palabra6));
                                                    conf3 = consultaConfianza(palabra7);
                                                    porcentaje = (numXregla3 * 100) / total;
                                                    porcentaje2 = (numYregla3 * 100) / total;

                                                    frase1 = ("De un total de " + total
                                                            + " NCFAS, se cumple que la dimensin " + dimension
                                                            + " junto con la dimensin " + dimension2
                                                            + " , una cantidad de " + numXregla3 + " veces ("
                                                            + porcentaje
                                                            + "%) (X). Esto afecta a la dimensin Interacciones Familiares la cual adquiere un valor igual a "
                                                            + valorDim2 + " , una cantidad de " + palabra6
                                                            + " veces (" + porcentaje2
                                                            + "%)(Y).\n Es decir esta regla se cumple el "
                                                            + conf3 + "% de las veces.\n");
                                                    numVeces.add(1, almacenaAnterior.get(3) + " " + palabra6);

                                                    reglasEncontradas regla3 = new reglasEncontradas();
                                                    regla3.setContenido(frase1);
                                                    regla3.setValorX(numXregla3);
                                                    regla3.setValorY(numYregla3);
                                                    regla3.setNumRegla(3);
                                                    reglas.add(regla3);

                                                    almacenaRetorno.add(frase1);
                                                    //band=1;
                                                }
                                            }
                                        }
                                    }
                                }
                            }
                        }
                    }
                }
            }

            //cuarta RELGA DE ASOCIACIN
            //BLOQUE 1
            //COMPROBAR SI EST? DIM2 INVOLUCRADA
            mat = pat3.matcher(palabra0);
            //
            if (num4.equals(palabra0)) {
                if (in.hasNext()) {
                    palabra1 = in.next(); // SEGUNDA PALABRA             
                    //GUARDO LO LEIDO
                    almacenaAnterior.add(palabra0);
                    almacenaAnterior.add(palabra1);
                    mat = pat.matcher(palabra1);
                    //PALABRA 1 ES DIMENSION 2?
                    if (mat.matches()) {

                        dimInvolucradas.add(palabra1);
                        String valorDim2 = consultaValor(palabra1);
                        //REVISAMOS LO QUE VIENE DESPUES DE DIM2=
                        if (in.hasNext()) {
                            palabra2 = in.next(); //PALABRA 3 EN EL CAMINO FELIZ
                            if (in.hasNext()) {
                                palabra3 = in.next(); //PALABRA 4 EN EL CAMINO FELIZ                    
                                almacenaAnterior.add(palabra2);
                                almacenaAnterior.add(palabra3);
                                mat = pat2.matcher(palabra3);
                                //SI ES UNA ==> ENTONCES
                                if (mat.matches()) {
                                    if (in.hasNext()) {
                                        palabra4 = in.next(); //PALABRA 5 CAMINO FELIZ
                                        dimInvolucradas.add(palabra4);
                                        palabra4 = consultaPalabra(palabra4);
                                        palabra5 = in.next(); //VALOR DE VECES DESPUES DE =>
                                        palabra6 = in.next();
                                        numXregla4 = Integer.parseInt((palabra2));
                                        numYregla4 = Integer.parseInt((palabra5));
                                        conf4 = consultaConfianza(palabra6);
                                        porcentaje = (numXregla4 * 100) / total;
                                        porcentaje2 = (numYregla4 * 100) / total;
                                        frase1 = ("De un total de " + total
                                                + " NCFAS, se cumple que la dimension Interacciones Familiares adquiere un valor igual a "
                                                + valorDim2 + " una cantidad de " + numXregla4 + " veces ("
                                                + porcentaje + "%) (X). Esto afecta a la dimensin " + palabra4
                                                + ", una cantidad de " + palabra5 + " vececs (" + porcentaje2
                                                + "%) (Y). \n Es decir esta regla se cumple el " + conf4
                                                + "% de las veces. \n");
                                        almacenaRetorno.add(frase1);

                                        numVeces.add(1, palabra2 + " " + palabra5);

                                        reglasEncontradas regla4 = new reglasEncontradas();
                                        regla4.setContenido(frase1);
                                        regla4.setValorX(numXregla4);
                                        regla4.setValorY(numYregla4);
                                        regla4.setNumRegla(4);
                                        reglas.add(regla4);
                                        System.out.println("ENTRAMOS AC?");
                                        // band=1;

                                    }
                                }

                                // LA REGLA TIENE MAS DE UNA DIMENSIN INVOLUCRADA ANTES DE ==>
                                else {
                                    if (in.hasNext()) {
                                        palabra4 = in.next(); // DEBER?A SER FLECHA 
                                        //COMPROBAMOS SI LA ==> EST? EN LA cuarta POSICIN
                                        mat = pat2.matcher(palabra4);
                                        if (mat.matches()) {
                                            if (in.hasNext()) {
                                                palabra5 = in.next();
                                                dimInvolucradas.add(almacenaAnterior.get(2));
                                                String dimension = consultaPalabra(almacenaAnterior.get(2));
                                                dimInvolucradas.add(palabra5);

                                                palabra5 = consultaPalabra(palabra5);
                                                palabra6 = in.next();
                                                palabra7 = in.next();
                                                numXregla4 = Integer.parseInt((almacenaAnterior.get(3)));
                                                numYregla4 = Integer.parseInt((palabra6));
                                                porcentaje = (numXregla4 * 100) / total;
                                                porcentaje2 = (numYregla4 * 100) / total;
                                                conf4 = consultaConfianza(palabra7);

                                                frase1 = ("De un total de " + total
                                                        + " NCFAS, se cumple que la dimensin Interacciones Familiares adquiere un valor igual a "
                                                        + valorDim2 + "  junto con la dimensin " + dimension
                                                        + ", esto ocurre una cantidad de " + numXregla4
                                                        + " veces (" + porcentaje
                                                        + "%). Esto afecta a la dimensin " + palabra5
                                                        + " una cantidad de " + palabra6 + " veces ("
                                                        + porcentaje2
                                                        + "%)(Y). \n Es decir esta regla se cumple el " + conf4
                                                        + "% de las veces.\n");
                                                almacenaRetorno.add(frase1);
                                                numVeces.add(1, almacenaAnterior.get(3) + " " + palabra6);

                                                System.out.println("LOS VALORES DE LA REGLA 1 SON: "
                                                        + numXregla4 + numYregla4);

                                                reglasEncontradas regla4 = new reglasEncontradas();
                                                regla4.setContenido(frase1);
                                                regla4.setValorX(numXregla4);
                                                regla4.setValorY(numYregla4);
                                                regla4.setNumRegla(4);
                                                reglas.add(regla4);

                                            }
                                        }
                                    }
                                }
                            }
                        }
                    }

                    //BLOQUE 2
                    //AC? SE COMPRUEBA SI SE ENCUENTRA LA DIMENSIN 2 EN SEGUNDA POSICIN           
                    if (in.hasNext()) {
                        palabra2 = in.next(); // 
                        if (in.hasNext()) {
                            palabra3 = in.next(); //               
                            //GUARDAMOS LO LE?DO
                            almacenaAnterior.add(palabra2);
                            almacenaAnterior.add(palabra3);
                            mat = pat2.matcher(palabra3);
                            // SI LA PALABRA 3 ES UNA FLECHA, ENTONCES HAY SOLO UNA DIMENSIN INVOLUCRADA
                            if (mat.matches()) {
                                if (in.hasNext()) {
                                    palabra4 = in.next();

                                    // DESPUES DE LA ==> EST? INVOLUCRADA LA DIM2 ?
                                    mat = pat.matcher(palabra4);
                                    if (mat.matches()) {

                                        palabra5 = in.next();
                                        palabra6 = in.next();
                                        String valorDim2 = consultaValor(palabra4);
                                        String dimension = consultaPalabra(almacenaAnterior.get(1));
                                        numXregla4 = Integer.parseInt((palabra5));
                                        numYregla4 = Integer.parseInt((almacenaAnterior.get(2)));
                                        porcentaje = (numXregla4 * 100) / total;
                                        porcentaje2 = (numYregla4 * 100) / total;
                                        conf4 = consultaConfianza(palabra6);
                                        frase1 = ("De un total de " + total
                                                + " NCFAS, se cumple que la dimensin " + dimension
                                                + ", junto con la dimensin " + palabra5 + ", una cantidad de "
                                                + numXregla4 + " veces (" + porcentaje
                                                + "%) (X). Esto afecta a la dimensin Interacciones Familiares adquiere un valor igual a "
                                                + valorDim2 + ", una cantidad de " + numYregla4 + " veces ("
                                                + porcentaje2 + "%)(Y). \n Es decir esta regla se cumple el "
                                                + conf4 + "% de las veces.\n");
                                        almacenaRetorno.add(frase1); // CAMINO FELIZ DIM2 EN POSICIN 2 
                                        //System.out.println(frase1); 
                                        almacenaRetorno.add(frase1); // CAMINO FELIZ DIM2 EN POSICIN 2  
                                        //  band=1;
                                        numVeces.add(1, palabra5 + " " + almacenaAnterior.get(2));

                                        System.out.println("ENTRAMOS AC?" + numXregla4 + numYregla4);
                                        reglasEncontradas regla4 = new reglasEncontradas();
                                        regla4.setContenido(frase1);
                                        regla4.setValorX(numXregla4);
                                        regla4.setValorY(numYregla4);
                                        regla4.setNumRegla(4);
                                        reglas.add(regla4);

                                    }
                                }
                            } else {
                                mat = pat.matcher(palabra2);
                                if (mat.matches()) {
                                    String valorDim2 = consultaValor(palabra2);
                                    if (in.hasNext()) {
                                        palabra4 = in.next();
                                        if (in.hasNext()) {
                                            palabra5 = in.next();
                                            if (in.hasNext()) {
                                                String dimension = consultaPalabra(almacenaAnterior.get(1));
                                                palabra5 = consultaPalabra(palabra5);
                                                palabra6 = in.next();
                                                palabra7 = in.next();
                                                numXregla4 = Integer.parseInt((palabra3));
                                                numYregla4 = Integer.parseInt((palabra6));
                                                conf4 = consultaConfianza(palabra7);

                                                porcentaje = (numXregla4 * 100) / total;
                                                porcentaje2 = (numYregla4 * 100) / total;

                                                frase1 = ("De un total de " + total
                                                        + " NCFAS, se cumple que la dimensin  Interacciones Familiares adquiere un valor igual a "
                                                        + valorDim2 + " junto con la dimensin " + dimension
                                                        + ", una cantidad de " + numXregla4 + " veces ("
                                                        + porcentaje + "%) (X). Esto afecta a la dimensin "
                                                        + palabra5 + " , una cantidad de " + palabra6
                                                        + " veces (" + porcentaje2
                                                        + "%)(Y).\n Es decir esta regla se cumple el " + conf4
                                                        + "% de las veces.\n");

                                                numVeces.add(1, palabra3 + " " + palabra6);
                                                reglasEncontradas regla4 = new reglasEncontradas();
                                                regla4.setContenido(frase1);
                                                regla4.setValorX(numXregla4);
                                                regla4.setValorY(numYregla4);
                                                regla4.setNumRegla(4);
                                                reglas.add(regla4);

                                                almacenaRetorno.add(frase1);
                                                ;
                                                //  band=1;
                                            }
                                        }
                                    }
                                }
                                //NO HAY DIMENSIN 2 NI EN LA PRIMERA NI EN LA SEGUNDA POSICIN 
                                else {
                                    if (in.hasNext()) {
                                        palabra4 = in.next();
                                        if (in.hasNext()) {
                                            palabra5 = in.next();

                                            if (in.hasNext()) {
                                                mat = pat.matcher(palabra5);
                                                if (mat.matches()) {
                                                    palabra6 = in.next();
                                                    palabra7 = in.next();
                                                    String valorDim2 = consultaValor(palabra5);
                                                    String dimension = consultaPalabra(almacenaAnterior.get(1));
                                                    String dimension2 = consultaPalabra(
                                                            almacenaAnterior.get(2));

                                                    numXregla4 = Integer.parseInt((almacenaAnterior.get(3)));
                                                    numYregla4 = Integer.parseInt((palabra6));
                                                    conf4 = consultaConfianza(palabra7);
                                                    porcentaje = (numXregla4 * 100) / total;
                                                    porcentaje2 = (numYregla4 * 100) / total;

                                                    frase1 = ("De un total de " + total
                                                            + " NCFAS, se cumple que la dimensin " + dimension
                                                            + " junto con la dimensin " + dimension2
                                                            + " , una cantidad de " + numXregla4 + " veces ("
                                                            + porcentaje
                                                            + "%) (X). Esto afecta a la dimensin Interacciones Familiares la cual adquiere un valor igual a "
                                                            + valorDim2 + " , una cantidad de " + palabra6
                                                            + " veces (" + porcentaje2
                                                            + "%)(Y).\n Es decir esta regla se cumple el "
                                                            + conf4 + "% de las veces.\n");
                                                    numVeces.add(1, almacenaAnterior.get(3) + " " + palabra6);

                                                    reglasEncontradas regla4 = new reglasEncontradas();
                                                    regla4.setContenido(frase1);
                                                    regla4.setValorX(numXregla4);
                                                    regla4.setValorY(numYregla4);
                                                    regla4.setNumRegla(4);
                                                    reglas.add(regla4);

                                                    almacenaRetorno.add(frase1);
                                                    //band=1;
                                                }
                                            }
                                        }
                                    }
                                }
                            }
                        }
                    }
                }
            }

            //PRIMERA RELGA DE ASOCIACIN
            //BLOQUE 1
            //COMPROBAR SI EST? DIM2 INVOLUCRADA
            mat = pat3.matcher(palabra0);
            //
            if (num5.equals(palabra0)) {
                if (in.hasNext()) {
                    palabra1 = in.next(); // SEGUNDA PALABRA             
                    //GUARDO LO LEIDO
                    almacenaAnterior.add(palabra0);
                    almacenaAnterior.add(palabra1);
                    mat = pat.matcher(palabra1);
                    //PALABRA 1 ES DIMENSION 2?
                    if (mat.matches()) {

                        dimInvolucradas.add(palabra1);
                        String valorDim2 = consultaValor(palabra1);
                        //REVISAMOS LO QUE VIENE DESPUES DE DIM2=
                        if (in.hasNext()) {
                            palabra2 = in.next(); //PALABRA 3 EN EL CAMINO FELIZ
                            if (in.hasNext()) {
                                palabra3 = in.next(); //PALABRA 4 EN EL CAMINO FELIZ                    
                                almacenaAnterior.add(palabra2);
                                almacenaAnterior.add(palabra3);
                                mat = pat2.matcher(palabra3);
                                //SI ES UNA ==> ENTONCES
                                if (mat.matches()) {
                                    if (in.hasNext()) {
                                        palabra4 = in.next(); //PALABRA 5 CAMINO FELIZ
                                        dimInvolucradas.add(palabra4);
                                        palabra4 = consultaPalabra(palabra4);
                                        palabra5 = in.next(); //VALOR DE VECES DESPUES DE =>
                                        palabra6 = in.next();
                                        numXregla5 = Integer.parseInt((palabra2));
                                        numYregla5 = Integer.parseInt((palabra5));
                                        conf5 = consultaConfianza(palabra6);
                                        porcentaje = (numXregla5 * 100) / total;
                                        porcentaje2 = (numYregla5 * 100) / total;
                                        frase1 = ("De un total de " + total
                                                + " NCFAS, se cumple que la dimension Interacciones Familiares adquiere un valor igual a "
                                                + valorDim2 + " una cantidad de " + numXregla5 + " veces ("
                                                + porcentaje + "%) (X). Esto afecta a la dimensin " + palabra4
                                                + ", una cantidad de " + palabra5 + " vececs (" + porcentaje2
                                                + "%) (Y). \n Es decir esta regla se cumple el " + conf5
                                                + "% de las veces. \n");
                                        almacenaRetorno.add(frase1);

                                        numVeces.add(1, palabra2 + " " + palabra5);

                                        reglasEncontradas regla5 = new reglasEncontradas();
                                        regla5.setContenido(frase1);
                                        regla5.setValorX(numXregla5);
                                        regla5.setValorY(numYregla5);
                                        regla5.setNumRegla(5);
                                        reglas.add(regla5);
                                        System.out.println("ENTRAMOS AC?");
                                        // band=1;

                                    }
                                }

                                // LA REGLA TIENE MAS DE UNA DIMENSIN INVOLUCRADA ANTES DE ==>
                                else {
                                    if (in.hasNext()) {
                                        palabra4 = in.next(); // DEBER?A SER FLECHA 
                                        //COMPROBAMOS SI LA ==> EST? EN LA cuarta POSICIN
                                        mat = pat2.matcher(palabra4);
                                        if (mat.matches()) {
                                            if (in.hasNext()) {
                                                palabra5 = in.next();
                                                dimInvolucradas.add(almacenaAnterior.get(2));
                                                String dimension = consultaPalabra(almacenaAnterior.get(2));
                                                dimInvolucradas.add(palabra5);

                                                palabra5 = consultaPalabra(palabra5);
                                                palabra6 = in.next();
                                                palabra7 = in.next();
                                                numXregla5 = Integer.parseInt((almacenaAnterior.get(3)));
                                                numYregla5 = Integer.parseInt((palabra6));
                                                porcentaje = (numXregla5 * 100) / total;
                                                porcentaje2 = (numYregla5 * 100) / total;
                                                conf5 = consultaConfianza(palabra7);

                                                frase1 = ("De un total de " + total
                                                        + " NCFAS, se cumple que la dimensin Interacciones Familiares adquiere un valor igual a "
                                                        + valorDim2 + "  junto con la dimensin " + dimension
                                                        + ", esto ocurre una cantidad de " + numXregla5
                                                        + " veces (" + porcentaje
                                                        + "%). Esto afecta a la dimensin " + palabra5
                                                        + " una cantidad de " + palabra6 + " veces ("
                                                        + porcentaje2
                                                        + "%)(Y). \n Es decir esta regla se cumple el " + conf5
                                                        + "% de las veces.\n");
                                                almacenaRetorno.add(frase1);
                                                numVeces.add(1, almacenaAnterior.get(3) + " " + palabra6);

                                                System.out.println("LOS VALORES DE LA REGLA 1 SON: "
                                                        + numXregla5 + numYregla5);

                                                reglasEncontradas regla5 = new reglasEncontradas();
                                                regla5.setContenido(frase1);
                                                regla5.setValorX(numXregla5);
                                                regla5.setValorY(numYregla5);
                                                regla5.setNumRegla(5);
                                                reglas.add(regla5);

                                            }
                                        }
                                    }
                                }
                            }
                        }
                    }

                    //BLOQUE 2
                    //AC? SE COMPRUEBA SI SE ENCUENTRA LA DIMENSIN 2 EN SEGUNDA POSICIN           
                    if (in.hasNext()) {
                        palabra2 = in.next(); // 
                        if (in.hasNext()) {
                            palabra3 = in.next(); //               
                            //GUARDAMOS LO LE?DO
                            almacenaAnterior.add(palabra2);
                            almacenaAnterior.add(palabra3);
                            mat = pat2.matcher(palabra3);
                            // SI LA PALABRA 3 ES UNA FLECHA, ENTONCES HAY SOLO UNA DIMENSIN INVOLUCRADA
                            if (mat.matches()) {
                                if (in.hasNext()) {
                                    palabra4 = in.next();

                                    // DESPUES DE LA ==> EST? INVOLUCRADA LA DIM2 ?
                                    mat = pat.matcher(palabra4);
                                    if (mat.matches()) {

                                        palabra5 = in.next();
                                        palabra6 = in.next();
                                        String valorDim2 = consultaValor(palabra4);
                                        String dimension = consultaPalabra(almacenaAnterior.get(1));
                                        numXregla5 = Integer.parseInt((palabra5));
                                        numYregla5 = Integer.parseInt((almacenaAnterior.get(2)));
                                        porcentaje = (numXregla5 * 100) / total;
                                        porcentaje2 = (numYregla5 * 100) / total;
                                        conf5 = consultaConfianza(palabra6);
                                        frase1 = ("De un total de " + total
                                                + " NCFAS, se cumple que la dimensin " + dimension
                                                + ", junto con la dimensin " + palabra5 + ", una cantidad de "
                                                + numXregla5 + " veces (" + porcentaje
                                                + "%) (X). Esto afecta a la dimensin Interacciones Familiares adquiere un valor igual a "
                                                + valorDim2 + ", una cantidad de " + numYregla5 + " veces ("
                                                + porcentaje2 + "%)(Y). \n Es decir esta regla se cumple el "
                                                + conf5 + "% de las veces.\n");
                                        almacenaRetorno.add(frase1); // CAMINO FELIZ DIM2 EN POSICIN 2 
                                        //System.out.println(frase1); 
                                        almacenaRetorno.add(frase1); // CAMINO FELIZ DIM2 EN POSICIN 2  
                                        //  band=1;
                                        numVeces.add(1, palabra5 + " " + almacenaAnterior.get(2));

                                        System.out.println("ENTRAMOS AC?" + numXregla5 + numYregla5);
                                        reglasEncontradas regla5 = new reglasEncontradas();
                                        regla5.setContenido(frase1);
                                        regla5.setValorX(numXregla5);
                                        regla5.setValorY(numYregla5);
                                        regla5.setNumRegla(5);
                                        reglas.add(regla5);

                                    }
                                }
                            } else {
                                mat = pat.matcher(palabra2);
                                if (mat.matches()) {
                                    String valorDim2 = consultaValor(palabra2);
                                    if (in.hasNext()) {
                                        palabra4 = in.next();
                                        if (in.hasNext()) {
                                            palabra5 = in.next();
                                            if (in.hasNext()) {
                                                String dimension = consultaPalabra(almacenaAnterior.get(1));
                                                palabra5 = consultaPalabra(palabra5);
                                                palabra6 = in.next();
                                                palabra7 = in.next();
                                                numXregla5 = Integer.parseInt((palabra3));
                                                numYregla5 = Integer.parseInt((palabra6));
                                                conf5 = consultaConfianza(palabra7);

                                                porcentaje = (numXregla5 * 100) / total;
                                                porcentaje2 = (numYregla5 * 100) / total;

                                                frase1 = ("De un total de " + total
                                                        + " NCFAS, se cumple que la dimensin  Interacciones Familiares adquiere un valor igual a "
                                                        + valorDim2 + " junto con la dimensin " + dimension
                                                        + ", una cantidad de " + numXregla5 + " veces ("
                                                        + porcentaje + "%) (X). Esto afecta a la dimensin "
                                                        + palabra5 + " , una cantidad de " + palabra6
                                                        + " veces (" + porcentaje2
                                                        + "%)(Y).\n Es decir esta regla se cumple el " + conf5
                                                        + "% de las veces.\n");

                                                numVeces.add(1, palabra3 + " " + palabra6);
                                                reglasEncontradas regla5 = new reglasEncontradas();
                                                regla5.setContenido(frase1);
                                                regla5.setValorX(numXregla5);
                                                regla5.setValorY(numYregla5);
                                                regla5.setNumRegla(5);
                                                reglas.add(regla5);

                                                almacenaRetorno.add(frase1);
                                                ;
                                                //  band=1;
                                            }
                                        }
                                    }
                                }
                                //NO HAY DIMENSIN 2 NI EN LA PRIMERA NI EN LA SEGUNDA POSICIN 
                                else {
                                    if (in.hasNext()) {
                                        palabra4 = in.next();
                                        if (in.hasNext()) {
                                            palabra5 = in.next();

                                            if (in.hasNext()) {
                                                mat = pat.matcher(palabra5);
                                                if (mat.matches()) {
                                                    palabra6 = in.next();
                                                    palabra7 = in.next();
                                                    String valorDim2 = consultaValor(palabra5);
                                                    String dimension = consultaPalabra(almacenaAnterior.get(1));
                                                    String dimension2 = consultaPalabra(
                                                            almacenaAnterior.get(2));

                                                    numXregla5 = Integer.parseInt((almacenaAnterior.get(3)));
                                                    numYregla5 = Integer.parseInt((palabra6));
                                                    conf5 = consultaConfianza(palabra7);
                                                    porcentaje = (numXregla5 * 100) / total;
                                                    porcentaje2 = (numYregla5 * 100) / total;

                                                    frase1 = ("De un total de " + total
                                                            + " NCFAS, se cumple que la dimensin " + dimension
                                                            + " junto con la dimensin " + dimension2
                                                            + " , una cantidad de " + numXregla5 + " veces ("
                                                            + porcentaje
                                                            + "%) (X). Esto afecta a la dimensin Interacciones Familiares la cual adquiere un valor igual a "
                                                            + valorDim2 + " , una cantidad de " + palabra6
                                                            + " veces (" + porcentaje2
                                                            + "%)(Y).\n Es decir esta regla se cumple el "
                                                            + conf5 + "% de las veces.\n");
                                                    numVeces.add(1, almacenaAnterior.get(3) + " " + palabra6);

                                                    reglasEncontradas regla5 = new reglasEncontradas();
                                                    regla5.setContenido(frase1);
                                                    regla5.setValorX(numXregla5);
                                                    regla5.setValorY(numYregla5);
                                                    regla5.setNumRegla(5);
                                                    reglas.add(regla5);

                                                    almacenaRetorno.add(frase1);
                                                    //band=1;
                                                }
                                            }
                                        }
                                    }
                                }
                            }
                        }
                    }
                }
            }

            //SEXTA RELGA DE ASOCIACIN
            //BLOQUE 1
            //COMPROBAR SI EST? DIM2 INVOLUCRADA
            mat = pat3.matcher(palabra0);
            //
            if (num6.equals(palabra0)) {
                if (in.hasNext()) {
                    palabra1 = in.next(); // SEGUNDA PALABRA             
                    //GUARDO LO LEIDO
                    almacenaAnterior.add(palabra0);
                    almacenaAnterior.add(palabra1);
                    mat = pat.matcher(palabra1);
                    //PALABRA 1 ES DIMENSION 2?
                    if (mat.matches()) {

                        dimInvolucradas.add(palabra1);
                        String valorDim2 = consultaValor(palabra1);
                        //REVISAMOS LO QUE VIENE DESPUES DE DIM2=
                        if (in.hasNext()) {
                            palabra2 = in.next(); //PALABRA 3 EN EL CAMINO FELIZ
                            if (in.hasNext()) {
                                palabra3 = in.next(); //PALABRA 4 EN EL CAMINO FELIZ                    
                                almacenaAnterior.add(palabra2);
                                almacenaAnterior.add(palabra3);
                                mat = pat2.matcher(palabra3);
                                //SI ES UNA ==> ENTONCES
                                if (mat.matches()) {
                                    if (in.hasNext()) {
                                        palabra4 = in.next(); //PALABRA 5 CAMINO FELIZ
                                        dimInvolucradas.add(palabra4);
                                        palabra4 = consultaPalabra(palabra4);
                                        palabra5 = in.next(); //VALOR DE VECES DESPUES DE =>
                                        palabra6 = in.next();
                                        numXregla6 = Integer.parseInt((palabra2));
                                        numYregla6 = Integer.parseInt((palabra5));
                                        conf6 = consultaConfianza(palabra6);
                                        porcentaje = (numXregla6 * 100) / total;
                                        porcentaje2 = (numYregla6 * 100) / total;
                                        frase1 = ("De un total de " + total
                                                + " NCFAS, se cumple que la dimension Interacciones Familiares adquiere un valor igual a "
                                                + valorDim2 + " una cantidad de " + numXregla6 + " veces ("
                                                + porcentaje + "%) (X). Esto afecta a la dimensin " + palabra4
                                                + ", una cantidad de " + palabra5 + " vececs (" + porcentaje2
                                                + "%) (Y). \n Es decir esta regla se cumple el " + conf6
                                                + "% de las veces. \n");
                                        almacenaRetorno.add(frase1);

                                        numVeces.add(1, palabra2 + " " + palabra5);

                                        reglasEncontradas regla6 = new reglasEncontradas();
                                        regla6.setContenido(frase1);
                                        regla6.setValorX(numXregla6);
                                        regla6.setValorY(numYregla6);
                                        regla6.setNumRegla(6);
                                        reglas.add(regla6);
                                        System.out.println("ENTRAMOS AC?");
                                        // band=1;

                                    }
                                }

                                // LA REGLA TIENE MAS DE UNA DIMENSIN INVOLUCRADA ANTES DE ==>
                                else {
                                    if (in.hasNext()) {
                                        palabra4 = in.next(); // DEBER?A SER FLECHA 
                                        //COMPROBAMOS SI LA ==> EST? EN LA cuarta POSICIN
                                        mat = pat2.matcher(palabra4);
                                        if (mat.matches()) {
                                            if (in.hasNext()) {
                                                palabra5 = in.next();
                                                dimInvolucradas.add(almacenaAnterior.get(2));
                                                String dimension = consultaPalabra(almacenaAnterior.get(2));
                                                dimInvolucradas.add(palabra5);

                                                palabra5 = consultaPalabra(palabra5);
                                                palabra6 = in.next();
                                                palabra7 = in.next();
                                                numXregla6 = Integer.parseInt((almacenaAnterior.get(3)));
                                                numYregla6 = Integer.parseInt((palabra6));
                                                porcentaje = (numXregla6 * 100) / total;
                                                porcentaje2 = (numYregla6 * 100) / total;
                                                conf6 = consultaConfianza(palabra7);

                                                frase1 = ("De un total de " + total
                                                        + " NCFAS, se cumple que la dimensin Interacciones Familiares adquiere un valor igual a "
                                                        + valorDim2 + "  junto con la dimensin " + dimension
                                                        + ", esto ocurre una cantidad de " + numXregla6
                                                        + " veces (" + porcentaje
                                                        + "%) (X). Esto afecta a la dimensin " + palabra5
                                                        + " una cantidad de " + palabra6 + " veces ("
                                                        + porcentaje2
                                                        + "%)(Y). \n Es decir esta regla se cumple el " + conf6
                                                        + "% de las veces.\n");
                                                almacenaRetorno.add(frase1);
                                                numVeces.add(1, almacenaAnterior.get(3) + " " + palabra6);

                                                System.out.println("LOS VALORES DE LA REGLA 1 SON: "
                                                        + numXregla6 + numYregla6);

                                                reglasEncontradas regla6 = new reglasEncontradas();
                                                regla6.setContenido(frase1);
                                                regla6.setValorX(numXregla6);
                                                regla6.setValorY(numYregla6);
                                                regla6.setNumRegla(6);
                                                reglas.add(regla6);

                                            }
                                        }
                                    }
                                }
                            }
                        }
                    }

                    //BLOQUE 2
                    //AC? SE COMPRUEBA SI SE ENCUENTRA LA DIMENSIN 2 EN SEGUNDA POSICIN           
                    if (in.hasNext()) {
                        palabra2 = in.next(); // 
                        if (in.hasNext()) {
                            palabra3 = in.next(); //               
                            //GUARDAMOS LO LE?DO
                            almacenaAnterior.add(palabra2);
                            almacenaAnterior.add(palabra3);
                            mat = pat2.matcher(palabra3);
                            // SI LA PALABRA 3 ES UNA FLECHA, ENTONCES HAY SOLO UNA DIMENSIN INVOLUCRADA
                            if (mat.matches()) {
                                if (in.hasNext()) {
                                    palabra4 = in.next();

                                    // DESPUES DE LA ==> EST? INVOLUCRADA LA DIM2 ?
                                    mat = pat.matcher(palabra4);
                                    if (mat.matches()) {

                                        palabra5 = in.next();
                                        palabra6 = in.next();
                                        String valorDim2 = consultaValor(palabra4);
                                        String dimension = consultaPalabra(almacenaAnterior.get(1));
                                        numXregla6 = Integer.parseInt((palabra5));
                                        numYregla6 = Integer.parseInt((almacenaAnterior.get(2)));
                                        porcentaje = (numXregla6 * 100) / total;
                                        porcentaje2 = (numYregla6 * 100) / total;
                                        conf6 = consultaConfianza(palabra6);
                                        frase1 = ("De un total de " + total
                                                + " NCFAS, se cumple que la dimensin " + dimension
                                                + ", junto con la dimensin " + palabra5 + ", una cantidad de "
                                                + numXregla6 + " veces (" + porcentaje
                                                + "%) (X). Esto afecta a la dimensin Interacciones Familiares adquiere un valor igual a "
                                                + valorDim2 + ", una cantidad de " + numYregla6 + " veces ("
                                                + porcentaje2 + "%)(Y). \n Es decir esta regla se cumple el "
                                                + conf6 + "% de las veces.\n");
                                        almacenaRetorno.add(frase1); // CAMINO FELIZ DIM2 EN POSICIN 2 
                                        //System.out.println(frase1); 
                                        almacenaRetorno.add(frase1); // CAMINO FELIZ DIM2 EN POSICIN 2  
                                        //  band=1;
                                        numVeces.add(1, palabra5 + " " + almacenaAnterior.get(2));

                                        System.out.println("ENTRAMOS AC?" + numXregla6 + numYregla6);
                                        reglasEncontradas regla6 = new reglasEncontradas();
                                        regla6.setContenido(frase1);
                                        regla6.setValorX(numXregla6);
                                        regla6.setValorY(numYregla6);
                                        regla6.setNumRegla(6);
                                        reglas.add(regla6);

                                    }
                                }
                            } else {
                                mat = pat.matcher(palabra2);
                                if (mat.matches()) {
                                    String valorDim2 = consultaValor(palabra2);
                                    if (in.hasNext()) {
                                        palabra4 = in.next();
                                        if (in.hasNext()) {
                                            palabra5 = in.next();
                                            if (in.hasNext()) {
                                                String dimension = consultaPalabra(almacenaAnterior.get(1));
                                                palabra5 = consultaPalabra(palabra5);
                                                palabra6 = in.next();
                                                palabra7 = in.next();
                                                numXregla6 = Integer.parseInt((palabra3));
                                                numYregla6 = Integer.parseInt((palabra6));
                                                conf6 = consultaConfianza(palabra7);

                                                porcentaje = (numXregla6 * 100) / total;
                                                porcentaje2 = (numYregla6 * 100) / total;

                                                frase1 = ("De un total de " + total
                                                        + " NCFAS, se cumple que la dimensin  Interacciones Familiares adquiere un valor igual a "
                                                        + valorDim2 + " junto con la dimensin " + dimension
                                                        + ", una cantidad de " + numXregla6 + " veces ("
                                                        + porcentaje + "%) (X). Esto afecta a la dimensin "
                                                        + palabra5 + " , una cantidad de " + palabra6
                                                        + " veces (" + porcentaje2
                                                        + "%)(Y).\n Es decir esta regla se cumple el " + conf6
                                                        + "% de las veces.\n");

                                                numVeces.add(1, palabra3 + " " + palabra6);
                                                reglasEncontradas regla6 = new reglasEncontradas();
                                                regla6.setContenido(frase1);
                                                regla6.setValorX(numXregla6);
                                                regla6.setValorY(numYregla6);
                                                regla6.setNumRegla(6);
                                                reglas.add(regla6);

                                                almacenaRetorno.add(frase1);
                                                ;
                                                //  band=1;
                                            }
                                        }
                                    }
                                }
                                //NO HAY DIMENSIN 2 NI EN LA PRIMERA NI EN LA SEGUNDA POSICIN 
                                else {
                                    if (in.hasNext()) {
                                        palabra4 = in.next();
                                        if (in.hasNext()) {
                                            palabra5 = in.next();

                                            if (in.hasNext()) {
                                                mat = pat.matcher(palabra5);
                                                if (mat.matches()) {
                                                    palabra6 = in.next();
                                                    palabra7 = in.next();
                                                    String valorDim2 = consultaValor(palabra5);
                                                    String dimension = consultaPalabra(almacenaAnterior.get(1));
                                                    String dimension2 = consultaPalabra(
                                                            almacenaAnterior.get(2));

                                                    numXregla6 = Integer.parseInt((almacenaAnterior.get(3)));
                                                    numYregla6 = Integer.parseInt((palabra6));
                                                    conf6 = consultaConfianza(palabra7);
                                                    porcentaje = (numXregla6 * 100) / total;
                                                    porcentaje2 = (numYregla6 * 100) / total;

                                                    frase1 = ("De un total de " + total
                                                            + " NCFAS, se cumple que la dimensin " + dimension
                                                            + " junto con la dimensin " + dimension2
                                                            + " , una cantidad de " + numXregla6 + " veces ("
                                                            + porcentaje
                                                            + "%) (X). Esto afecta a la dimensin Interacciones Familiares la cual adquiere un valor igual a "
                                                            + valorDim2 + " , una cantidad de " + palabra6
                                                            + " veces (" + porcentaje2
                                                            + "%)(Y).\n Es decir esta regla se cumple el "
                                                            + conf6 + "% de las veces.\n");
                                                    numVeces.add(1, almacenaAnterior.get(3) + " " + palabra6);

                                                    reglasEncontradas regla6 = new reglasEncontradas();
                                                    regla6.setContenido(frase1);
                                                    regla6.setValorX(numXregla6);
                                                    regla6.setValorY(numYregla6);
                                                    regla6.setNumRegla(6);
                                                    reglas.add(regla6);

                                                    almacenaRetorno.add(frase1);
                                                    //band=1;
                                                }
                                            }
                                        }
                                    }
                                }
                            }
                        }
                    }
                }
            }

            //SEPTIMA RELGA DE ASOCIACIN
            //BLOQUE 1
            //COMPROBAR SI EST? DIM2 INVOLUCRADA
            mat = pat3.matcher(palabra0);
            //
            if (num7.equals(palabra0)) {
                if (in.hasNext()) {
                    palabra1 = in.next(); // SEGUNDA PALABRA             
                    //GUARDO LO LEIDO
                    almacenaAnterior.add(palabra0);
                    almacenaAnterior.add(palabra1);
                    mat = pat.matcher(palabra1);
                    //PALABRA 1 ES DIMENSION 2?
                    if (mat.matches()) {

                        dimInvolucradas.add(palabra1);
                        String valorDim2 = consultaValor(palabra1);
                        //REVISAMOS LO QUE VIENE DESPUES DE DIM2=
                        if (in.hasNext()) {
                            palabra2 = in.next(); //PALABRA 3 EN EL CAMINO FELIZ
                            if (in.hasNext()) {
                                palabra3 = in.next(); //PALABRA 4 EN EL CAMINO FELIZ                    
                                almacenaAnterior.add(palabra2);
                                almacenaAnterior.add(palabra3);
                                mat = pat2.matcher(palabra3);
                                //SI ES UNA ==> ENTONCES
                                if (mat.matches()) {
                                    if (in.hasNext()) {
                                        palabra4 = in.next(); //PALABRA 5 CAMINO FELIZ
                                        dimInvolucradas.add(palabra4);
                                        palabra4 = consultaPalabra(palabra4);
                                        palabra5 = in.next(); //VALOR DE VECES DESPUES DE =>
                                        palabra6 = in.next();
                                        numXregla7 = Integer.parseInt((palabra2));
                                        numYregla7 = Integer.parseInt((palabra5));
                                        conf7 = consultaConfianza(palabra6);
                                        porcentaje = (numXregla7 * 100) / total;
                                        porcentaje2 = (numYregla7 * 100) / total;
                                        frase1 = ("De un total de " + total
                                                + " NCFAS, se cumple que la dimension Interacciones Familiares adquiere un valor igual a "
                                                + valorDim2 + " una cantidad de " + numXregla7 + " veces ("
                                                + porcentaje + "%) (X). Esto afecta a la dimensin " + palabra4
                                                + ", una cantidad de " + palabra5 + " vececs (" + porcentaje2
                                                + "%) (Y). \n Es decir esta regla se cumple el " + conf7
                                                + "% de las veces. \n");
                                        almacenaRetorno.add(frase1);

                                        numVeces.add(1, palabra2 + " " + palabra5);

                                        reglasEncontradas regla7 = new reglasEncontradas();
                                        regla7.setContenido(frase1);
                                        regla7.setValorX(numXregla7);
                                        regla7.setValorY(numYregla7);
                                        regla7.setNumRegla(7);
                                        reglas.add(regla7);
                                        System.out.println("ENTRAMOS AC?");
                                        // band=1;

                                    }
                                }

                                // LA REGLA TIENE MAS DE UNA DIMENSIN INVOLUCRADA ANTES DE ==>
                                else {
                                    if (in.hasNext()) {
                                        palabra4 = in.next(); // DEBER?A SER FLECHA 
                                        //COMPROBAMOS SI LA ==> EST? EN LA cuarta POSICIN
                                        mat = pat2.matcher(palabra4);
                                        if (mat.matches()) {
                                            if (in.hasNext()) {
                                                palabra5 = in.next();
                                                dimInvolucradas.add(almacenaAnterior.get(2));
                                                String dimension = consultaPalabra(almacenaAnterior.get(2));
                                                dimInvolucradas.add(palabra5);

                                                palabra5 = consultaPalabra(palabra5);
                                                palabra6 = in.next();
                                                palabra7 = in.next();
                                                numXregla7 = Integer.parseInt((almacenaAnterior.get(3)));
                                                numYregla7 = Integer.parseInt((palabra6));
                                                porcentaje = (numXregla7 * 100) / total;
                                                porcentaje2 = (numYregla7 * 100) / total;
                                                conf7 = consultaConfianza(palabra7);

                                                frase1 = ("De un total de " + total
                                                        + " NCFAS, se cumple que la dimensin Interacciones Familiares adquiere un valor igual a "
                                                        + valorDim2 + "  junto con la dimensin " + dimension
                                                        + ", esto ocurre una cantidad de " + numXregla7
                                                        + " veces (" + porcentaje
                                                        + "%) (X). Esto afecta a la dimensin " + palabra5
                                                        + " una cantidad de " + palabra6 + " veces ("
                                                        + porcentaje2
                                                        + "%)(Y). \n Es decir esta regla se cumple el " + conf7
                                                        + "% de las veces.\n");
                                                almacenaRetorno.add(frase1);
                                                numVeces.add(1, almacenaAnterior.get(3) + " " + palabra6);

                                                System.out.println("LOS VALORES DE LA REGLA 1 SON: "
                                                        + numXregla7 + numYregla7);

                                                reglasEncontradas regla7 = new reglasEncontradas();
                                                regla7.setContenido(frase1);
                                                regla7.setValorX(numXregla7);
                                                regla7.setValorY(numYregla7);
                                                regla7.setNumRegla(7);
                                                reglas.add(regla7);

                                            }
                                        }
                                    }
                                }
                            }
                        }
                    }

                    //BLOQUE 2
                    //AC? SE COMPRUEBA SI SE ENCUENTRA LA DIMENSIN 2 EN SEGUNDA POSICIN           
                    if (in.hasNext()) {
                        palabra2 = in.next(); // 
                        if (in.hasNext()) {
                            palabra3 = in.next(); //               
                            //GUARDAMOS LO LE?DO
                            almacenaAnterior.add(palabra2);
                            almacenaAnterior.add(palabra3);
                            mat = pat2.matcher(palabra3);
                            // SI LA PALABRA 3 ES UNA FLECHA, ENTONCES HAY SOLO UNA DIMENSIN INVOLUCRADA
                            if (mat.matches()) {
                                if (in.hasNext()) {
                                    palabra4 = in.next();

                                    // DESPUES DE LA ==> EST? INVOLUCRADA LA DIM2 ?
                                    mat = pat.matcher(palabra4);
                                    if (mat.matches()) {

                                        palabra5 = in.next();
                                        palabra6 = in.next();
                                        String valorDim2 = consultaValor(palabra4);
                                        String dimension = consultaPalabra(almacenaAnterior.get(1));
                                        numXregla7 = Integer.parseInt((palabra5));
                                        numYregla7 = Integer.parseInt((almacenaAnterior.get(2)));
                                        porcentaje = (numXregla7 * 100) / total;
                                        porcentaje2 = (numYregla7 * 100) / total;
                                        conf7 = consultaConfianza(palabra6);
                                        frase1 = ("De un total de " + total
                                                + " NCFAS, se cumple que la dimensin " + dimension
                                                + ", junto con la dimensin " + palabra5 + ", una cantidad de "
                                                + numXregla7 + " veces (" + porcentaje
                                                + "%) (X). Esto afecta a la dimensin Interacciones Familiares adquiere un valor igual a "
                                                + valorDim2 + ", una cantidad de " + numYregla7 + " veces ("
                                                + porcentaje2 + "%)(Y). \n Es decir esta regla se cumple el "
                                                + conf7 + "% de las veces.\n");
                                        almacenaRetorno.add(frase1); // CAMINO FELIZ DIM2 EN POSICIN 2 
                                        //System.out.println(frase1); 
                                        almacenaRetorno.add(frase1); // CAMINO FELIZ DIM2 EN POSICIN 2  
                                        //  band=1;
                                        numVeces.add(1, palabra5 + " " + almacenaAnterior.get(2));

                                        System.out.println("ENTRAMOS AC?" + numXregla7 + numYregla7);
                                        reglasEncontradas regla7 = new reglasEncontradas();
                                        regla7.setContenido(frase1);
                                        regla7.setValorX(numXregla7);
                                        regla7.setValorY(numYregla7);
                                        regla7.setNumRegla(7);
                                        reglas.add(regla7);

                                    }
                                }
                            } else {
                                mat = pat.matcher(palabra2);
                                if (mat.matches()) {
                                    String valorDim2 = consultaValor(palabra2);
                                    if (in.hasNext()) {
                                        palabra4 = in.next();
                                        if (in.hasNext()) {
                                            palabra5 = in.next();
                                            if (in.hasNext()) {
                                                String dimension = consultaPalabra(almacenaAnterior.get(1));
                                                palabra5 = consultaPalabra(palabra5);
                                                palabra6 = in.next();
                                                palabra7 = in.next();
                                                numXregla7 = Integer.parseInt((palabra3));
                                                numYregla7 = Integer.parseInt((palabra6));
                                                conf7 = consultaConfianza(palabra7);

                                                porcentaje = (numXregla7 * 100) / total;
                                                porcentaje2 = (numYregla7 * 100) / total;

                                                frase1 = ("De un total de " + total
                                                        + " NCFAS, se cumple que la dimensin  Interacciones Familiares adquiere un valor igual a "
                                                        + valorDim2 + " junto con la dimensin " + dimension
                                                        + ", una cantidad de " + numXregla7 + " veces ("
                                                        + porcentaje + "%) (X). Esto afecta a la dimensin "
                                                        + palabra5 + " , una cantidad de " + palabra6
                                                        + " veces (" + porcentaje2
                                                        + "%)(Y).\n Es decir esta regla se cumple el " + conf7
                                                        + "% de las veces.\n");

                                                numVeces.add(1, palabra3 + " " + palabra6);
                                                reglasEncontradas regla7 = new reglasEncontradas();
                                                regla7.setContenido(frase1);
                                                regla7.setValorX(numXregla7);
                                                regla7.setValorY(numYregla7);
                                                regla7.setNumRegla(7);
                                                reglas.add(regla7);

                                                almacenaRetorno.add(frase1);
                                                ;
                                                //  band=1;
                                            }
                                        }
                                    }
                                }
                                //NO HAY DIMENSIN 2 NI EN LA PRIMERA NI EN LA SEGUNDA POSICIN 
                                else {
                                    if (in.hasNext()) {
                                        palabra4 = in.next();
                                        if (in.hasNext()) {
                                            palabra5 = in.next();

                                            if (in.hasNext()) {
                                                mat = pat.matcher(palabra5);
                                                if (mat.matches()) {
                                                    palabra6 = in.next();
                                                    palabra7 = in.next();
                                                    String valorDim2 = consultaValor(palabra5);
                                                    String dimension = consultaPalabra(almacenaAnterior.get(1));
                                                    String dimension2 = consultaPalabra(
                                                            almacenaAnterior.get(2));

                                                    numXregla7 = Integer.parseInt((almacenaAnterior.get(3)));
                                                    numYregla7 = Integer.parseInt((palabra6));
                                                    conf7 = consultaConfianza(palabra7);
                                                    porcentaje = (numXregla7 * 100) / total;
                                                    porcentaje2 = (numYregla7 * 100) / total;

                                                    frase1 = ("De un total de " + total
                                                            + " NCFAS, se cumple que la dimensin " + dimension
                                                            + " junto con la dimensin " + dimension2
                                                            + " , una cantidad de " + numXregla7 + " veces ("
                                                            + porcentaje
                                                            + "%) (X). Esto afecta a la dimensin Interacciones Familiares la cual adquiere un valor igual a "
                                                            + valorDim2 + " , una cantidad de " + palabra6
                                                            + " veces (" + porcentaje2
                                                            + "%)(Y).\n Es decir esta regla se cumple el "
                                                            + conf7 + "% de las veces.\n");
                                                    numVeces.add(1, almacenaAnterior.get(3) + " " + palabra6);

                                                    reglasEncontradas regla7 = new reglasEncontradas();
                                                    regla7.setContenido(frase1);
                                                    regla7.setValorX(numXregla7);
                                                    regla7.setValorY(numYregla7);
                                                    regla7.setNumRegla(7);
                                                    reglas.add(regla7);

                                                    almacenaRetorno.add(frase1);
                                                    //band=1;
                                                }
                                            }
                                        }
                                    }
                                }
                            }
                        }
                    }
                }
            }

            //OCTAVA RELGA DE ASOCIACIN
            //BLOQUE 1
            //COMPROBAR SI EST? DIM2 INVOLUCRADA
            mat = pat3.matcher(palabra0);
            //
            if (num8.equals(palabra0)) {
                if (in.hasNext()) {
                    palabra1 = in.next(); // SEGUNDA PALABRA             
                    //GUARDO LO LEIDO
                    almacenaAnterior.add(palabra0);
                    almacenaAnterior.add(palabra1);
                    mat = pat.matcher(palabra1);
                    //PALABRA 1 ES DIMENSION 2?
                    if (mat.matches()) {

                        dimInvolucradas.add(palabra1);
                        String valorDim2 = consultaValor(palabra1);
                        //REVISAMOS LO QUE VIENE DESPUES DE DIM2=
                        if (in.hasNext()) {
                            palabra2 = in.next(); //PALABRA 3 EN EL CAMINO FELIZ
                            if (in.hasNext()) {
                                palabra3 = in.next(); //PALABRA 4 EN EL CAMINO FELIZ                    
                                almacenaAnterior.add(palabra2);
                                almacenaAnterior.add(palabra3);
                                mat = pat2.matcher(palabra3);
                                //SI ES UNA ==> ENTONCES
                                if (mat.matches()) {
                                    if (in.hasNext()) {
                                        palabra4 = in.next(); //PALABRA 5 CAMINO FELIZ
                                        dimInvolucradas.add(palabra4);
                                        palabra4 = consultaPalabra(palabra4);
                                        palabra5 = in.next(); //VALOR DE VECES DESPUES DE =>
                                        palabra6 = in.next();
                                        numXregla8 = Integer.parseInt((palabra2));
                                        numYregla8 = Integer.parseInt((palabra5));
                                        conf8 = consultaConfianza(palabra6);
                                        porcentaje = (numXregla8 * 100) / total;
                                        porcentaje2 = (numYregla8 * 100) / total;
                                        frase1 = ("De un total de " + total
                                                + " NCFAS, se cumple que la dimension Interacciones Familiares adquiere un valor igual a "
                                                + valorDim2 + " una cantidad de " + numXregla8 + " veces ("
                                                + porcentaje + "%) (X). Esto afecta a la dimensin " + palabra4
                                                + ", una cantidad de " + palabra5 + " vececs (" + porcentaje2
                                                + "%) (Y). \n Es decir esta regla se cumple el " + conf8
                                                + "% de las veces. \n");
                                        almacenaRetorno.add(frase1);

                                        numVeces.add(1, palabra2 + " " + palabra5);

                                        reglasEncontradas regla8 = new reglasEncontradas();
                                        regla8.setContenido(frase1);
                                        regla8.setValorX(numXregla8);
                                        regla8.setValorY(numYregla8);
                                        regla8.setNumRegla(8);
                                        reglas.add(regla8);
                                        System.out.println("ENTRAMOS AC?");
                                        // band=1;

                                    }
                                }

                                // LA REGLA TIENE MAS DE UNA DIMENSIN INVOLUCRADA ANTES DE ==>
                                else {
                                    if (in.hasNext()) {
                                        palabra4 = in.next(); // DEBER?A SER FLECHA 
                                        //COMPROBAMOS SI LA ==> EST? EN LA cuarta POSICIN
                                        mat = pat2.matcher(palabra4);
                                        if (mat.matches()) {
                                            if (in.hasNext()) {
                                                palabra5 = in.next();
                                                dimInvolucradas.add(almacenaAnterior.get(2));
                                                String dimension = consultaPalabra(almacenaAnterior.get(2));
                                                dimInvolucradas.add(palabra5);

                                                palabra5 = consultaPalabra(palabra5);
                                                palabra6 = in.next();
                                                palabra7 = in.next();
                                                numXregla8 = Integer.parseInt((almacenaAnterior.get(3)));
                                                numYregla8 = Integer.parseInt((palabra6));
                                                porcentaje = (numXregla8 * 100) / total;
                                                porcentaje2 = (numYregla8 * 100) / total;
                                                conf8 = consultaConfianza(palabra7);

                                                frase1 = ("De un total de " + total
                                                        + " NCFAS, se cumple que la dimensin Interacciones Familiares adquiere un valor igual a "
                                                        + valorDim2 + "  junto con la dimensin " + dimension
                                                        + ", esto ocurre una cantidad de " + numXregla8
                                                        + " veces (" + porcentaje
                                                        + "%) (X). Esto afecta a la dimensin " + palabra5
                                                        + " una cantidad de " + palabra6 + " veces ("
                                                        + porcentaje2
                                                        + "%)(Y). \n Es decir esta regla se cumple el " + conf8
                                                        + "% de las veces.\n");
                                                almacenaRetorno.add(frase1);
                                                numVeces.add(1, almacenaAnterior.get(3) + " " + palabra6);

                                                System.out.println("LOS VALORES DE LA REGLA 1 SON: "
                                                        + numXregla8 + numYregla8);

                                                reglasEncontradas regla8 = new reglasEncontradas();
                                                regla8.setContenido(frase1);
                                                regla8.setValorX(numXregla8);
                                                regla8.setValorY(numYregla8);
                                                regla8.setNumRegla(8);
                                                reglas.add(regla8);

                                            }
                                        }
                                    }
                                }
                            }
                        }
                    }

                    //BLOQUE 2
                    //AC? SE COMPRUEBA SI SE ENCUENTRA LA DIMENSIN 2 EN SEGUNDA POSICIN           
                    if (in.hasNext()) {
                        palabra2 = in.next(); // 
                        if (in.hasNext()) {
                            palabra3 = in.next(); //               
                            //GUARDAMOS LO LE?DO
                            almacenaAnterior.add(palabra2);
                            almacenaAnterior.add(palabra3);
                            mat = pat2.matcher(palabra3);
                            // SI LA PALABRA 3 ES UNA FLECHA, ENTONCES HAY SOLO UNA DIMENSIN INVOLUCRADA
                            if (mat.matches()) {
                                if (in.hasNext()) {
                                    palabra4 = in.next();

                                    // DESPUES DE LA ==> EST? INVOLUCRADA LA DIM2 ?
                                    mat = pat.matcher(palabra4);
                                    if (mat.matches()) {

                                        palabra5 = in.next();
                                        palabra6 = in.next();
                                        String valorDim2 = consultaValor(palabra4);
                                        String dimension = consultaPalabra(almacenaAnterior.get(1));
                                        numXregla8 = Integer.parseInt((palabra5));
                                        numYregla8 = Integer.parseInt((almacenaAnterior.get(2)));
                                        porcentaje = (numXregla8 * 100) / total;
                                        porcentaje2 = (numYregla8 * 100) / total;
                                        conf8 = consultaConfianza(palabra6);
                                        frase1 = ("De un total de " + total
                                                + " NCFAS, se cumple que la dimensin " + dimension
                                                + ", junto con la dimensin " + palabra5 + ", una cantidad de "
                                                + numXregla8 + " veces (" + porcentaje
                                                + "%) (X). Esto afecta a la dimensin Interacciones Familiares adquiere un valor igual a "
                                                + valorDim2 + ", una cantidad de " + numYregla8 + " veces ("
                                                + porcentaje2 + "%)(Y). \n Es decir esta regla se cumple el "
                                                + conf8 + "% de las veces.\n");
                                        almacenaRetorno.add(frase1); // CAMINO FELIZ DIM2 EN POSICIN 2 
                                        //System.out.println(frase1); 
                                        almacenaRetorno.add(frase1); // CAMINO FELIZ DIM2 EN POSICIN 2  
                                        //  band=1;
                                        numVeces.add(1, palabra5 + " " + almacenaAnterior.get(2));

                                        System.out.println("ENTRAMOS AC?" + numXregla8 + numYregla8);
                                        reglasEncontradas regla8 = new reglasEncontradas();
                                        regla8.setContenido(frase1);
                                        regla8.setValorX(numXregla8);
                                        regla8.setValorY(numYregla8);
                                        regla8.setNumRegla(8);
                                        reglas.add(regla8);

                                    }
                                }
                            } else {
                                mat = pat.matcher(palabra2);
                                if (mat.matches()) {
                                    String valorDim2 = consultaValor(palabra2);
                                    if (in.hasNext()) {
                                        palabra4 = in.next();
                                        if (in.hasNext()) {
                                            palabra5 = in.next();
                                            if (in.hasNext()) {
                                                String dimension = consultaPalabra(almacenaAnterior.get(1));
                                                palabra5 = consultaPalabra(palabra5);
                                                palabra6 = in.next();
                                                palabra7 = in.next();
                                                numXregla8 = Integer.parseInt((palabra3));
                                                numYregla8 = Integer.parseInt((palabra6));
                                                conf8 = consultaConfianza(palabra7);

                                                porcentaje = (numXregla8 * 100) / total;
                                                porcentaje2 = (numYregla8 * 100) / total;

                                                frase1 = ("De un total de " + total
                                                        + " NCFAS, se cumple que la dimensin  Interacciones Familiares adquiere un valor igual a "
                                                        + valorDim2 + " junto con la dimensin " + dimension
                                                        + ", una cantidad de " + numXregla8 + " veces ("
                                                        + porcentaje + "%) (X). Esto afecta a la dimensin "
                                                        + palabra5 + " , una cantidad de " + palabra6
                                                        + " veces (" + porcentaje2
                                                        + "%)(Y).\n Es decir esta regla se cumple el " + conf8
                                                        + "% de las veces.\n");

                                                numVeces.add(1, palabra3 + " " + palabra6);
                                                reglasEncontradas regla8 = new reglasEncontradas();
                                                regla8.setContenido(frase1);
                                                regla8.setValorX(numXregla8);
                                                regla8.setValorY(numYregla8);
                                                regla8.setNumRegla(8);
                                                reglas.add(regla8);

                                                almacenaRetorno.add(frase1);
                                                ;
                                                //  band=1;
                                            }
                                        }
                                    }
                                }
                                //NO HAY DIMENSIN 2 NI EN LA PRIMERA NI EN LA SEGUNDA POSICIN 
                                else {
                                    if (in.hasNext()) {
                                        palabra4 = in.next();
                                        if (in.hasNext()) {
                                            palabra5 = in.next();

                                            if (in.hasNext()) {
                                                mat = pat.matcher(palabra5);
                                                if (mat.matches()) {
                                                    palabra6 = in.next();
                                                    palabra7 = in.next();
                                                    String valorDim2 = consultaValor(palabra5);
                                                    String dimension = consultaPalabra(almacenaAnterior.get(1));
                                                    String dimension2 = consultaPalabra(
                                                            almacenaAnterior.get(2));

                                                    numXregla8 = Integer.parseInt((almacenaAnterior.get(3)));
                                                    numYregla8 = Integer.parseInt((palabra6));
                                                    conf8 = consultaConfianza(palabra7);
                                                    porcentaje = (numXregla8 * 100) / total;
                                                    porcentaje2 = (numYregla8 * 100) / total;

                                                    frase1 = ("De un total de " + total
                                                            + " NCFAS, se cumple que la dimensin " + dimension
                                                            + " junto con la dimensin " + dimension2
                                                            + " , una cantidad de " + numXregla8 + " veces ("
                                                            + porcentaje
                                                            + "%) (X). Esto afecta a la dimensin Interacciones Familiares la cual adquiere un valor igual a "
                                                            + valorDim2 + " , una cantidad de " + palabra6
                                                            + " veces (" + porcentaje2
                                                            + "%)(Y).\n Es decir esta regla se cumple el "
                                                            + conf8 + "% de las veces.\n");
                                                    numVeces.add(1, almacenaAnterior.get(3) + " " + palabra6);

                                                    reglasEncontradas regla8 = new reglasEncontradas();
                                                    regla8.setContenido(frase1);
                                                    regla8.setValorX(numXregla8);
                                                    regla8.setValorY(numYregla8);
                                                    regla8.setNumRegla(8);
                                                    reglas.add(regla8);

                                                    almacenaRetorno.add(frase1);
                                                    //band=1;
                                                }
                                            }
                                        }
                                    }
                                }
                            }
                        }
                    }
                }
            }

            //NOVENA RELGA DE ASOCIACIN
            //BLOQUE 1
            //COMPROBAR SI EST? DIM2 INVOLUCRADA
            mat = pat3.matcher(palabra0);
            //
            if (num9.equals(palabra0)) {
                if (in.hasNext()) {
                    palabra1 = in.next(); // SEGUNDA PALABRA             
                    //GUARDO LO LEIDO
                    almacenaAnterior.add(palabra0);
                    almacenaAnterior.add(palabra1);
                    mat = pat.matcher(palabra1);
                    //PALABRA 1 ES DIMENSION 2?
                    if (mat.matches()) {

                        dimInvolucradas.add(palabra1);
                        String valorDim2 = consultaValor(palabra1);
                        //REVISAMOS LO QUE VIENE DESPUES DE DIM2=
                        if (in.hasNext()) {
                            palabra2 = in.next(); //PALABRA 3 EN EL CAMINO FELIZ
                            if (in.hasNext()) {
                                palabra3 = in.next(); //PALABRA 4 EN EL CAMINO FELIZ                    
                                almacenaAnterior.add(palabra2);
                                almacenaAnterior.add(palabra3);
                                mat = pat2.matcher(palabra3);
                                //SI ES UNA ==> ENTONCES
                                if (mat.matches()) {
                                    if (in.hasNext()) {
                                        palabra4 = in.next(); //PALABRA 5 CAMINO FELIZ
                                        dimInvolucradas.add(palabra4);
                                        palabra4 = consultaPalabra(palabra4);
                                        palabra5 = in.next(); //VALOR DE VECES DESPUES DE =>
                                        palabra6 = in.next();
                                        numXregla9 = Integer.parseInt((palabra2));
                                        numYregla9 = Integer.parseInt((palabra5));
                                        conf9 = consultaConfianza(palabra6);
                                        porcentaje = (numXregla9 * 100) / total;
                                        porcentaje2 = (numYregla9 * 100) / total;
                                        frase1 = ("De un total de " + total
                                                + " NCFAS, se cumple que la dimension Interacciones Familiares adquiere un valor igual a "
                                                + valorDim2 + " una cantidad de " + numXregla9 + " veces ("
                                                + porcentaje + "%) (X). Esto afecta a la dimensin " + palabra4
                                                + ", una cantidad de " + palabra5 + " vececs (" + porcentaje2
                                                + "%) (Y). \n Es decir esta regla se cumple el " + conf9
                                                + "% de las veces. \n");
                                        almacenaRetorno.add(frase1);

                                        numVeces.add(1, palabra2 + " " + palabra5);

                                        reglasEncontradas regla9 = new reglasEncontradas();
                                        regla9.setContenido(frase1);
                                        regla9.setValorX(numXregla9);
                                        regla9.setValorY(numYregla9);
                                        regla9.setNumRegla(9);
                                        reglas.add(regla9);
                                        System.out.println("ENTRAMOS AC?");
                                        // band=1;

                                    }
                                }

                                // LA REGLA TIENE MAS DE UNA DIMENSIN INVOLUCRADA ANTES DE ==>
                                else {
                                    if (in.hasNext()) {
                                        palabra4 = in.next(); // DEBER?A SER FLECHA 
                                        //COMPROBAMOS SI LA ==> EST? EN LA cuarta POSICIN
                                        mat = pat2.matcher(palabra4);
                                        if (mat.matches()) {
                                            if (in.hasNext()) {
                                                palabra5 = in.next();
                                                dimInvolucradas.add(almacenaAnterior.get(2));
                                                String dimension = consultaPalabra(almacenaAnterior.get(2));
                                                dimInvolucradas.add(palabra5);

                                                palabra5 = consultaPalabra(palabra5);
                                                palabra6 = in.next();
                                                palabra7 = in.next();
                                                numXregla9 = Integer.parseInt((almacenaAnterior.get(3)));
                                                numYregla9 = Integer.parseInt((palabra6));
                                                porcentaje = (numXregla9 * 100) / total;
                                                porcentaje2 = (numYregla9 * 100) / total;
                                                conf9 = consultaConfianza(palabra7);

                                                frase1 = ("De un total de " + total
                                                        + " NCFAS, se cumple que la dimensin Interacciones Familiares adquiere un valor igual a "
                                                        + valorDim2 + "  junto con la dimensin " + dimension
                                                        + ", esto ocurre una cantidad de " + numXregla9
                                                        + " veces (" + porcentaje
                                                        + "%) (X). Esto afecta a la dimensin " + palabra5
                                                        + " una cantidad de " + palabra6 + " veces ("
                                                        + porcentaje2
                                                        + "%)(Y). \n Es decir esta regla se cumple el " + conf9
                                                        + "% de las veces.\n");
                                                almacenaRetorno.add(frase1);
                                                numVeces.add(1, almacenaAnterior.get(3) + " " + palabra6);

                                                System.out.println("LOS VALORES DE LA REGLA 1 SON: "
                                                        + numXregla9 + numYregla9);

                                                reglasEncontradas regla9 = new reglasEncontradas();
                                                regla9.setContenido(frase1);
                                                regla9.setValorX(numXregla9);
                                                regla9.setValorY(numYregla9);
                                                regla9.setNumRegla(9);
                                                reglas.add(regla9);

                                            }
                                        }
                                    }
                                }
                            }
                        }
                    }

                    //BLOQUE 2
                    //AC? SE COMPRUEBA SI SE ENCUENTRA LA DIMENSIN 2 EN SEGUNDA POSICIN           
                    if (in.hasNext()) {
                        palabra2 = in.next(); // 
                        if (in.hasNext()) {
                            palabra3 = in.next(); //               
                            //GUARDAMOS LO LE?DO
                            almacenaAnterior.add(palabra2);
                            almacenaAnterior.add(palabra3);
                            mat = pat2.matcher(palabra3);
                            // SI LA PALABRA 3 ES UNA FLECHA, ENTONCES HAY SOLO UNA DIMENSIN INVOLUCRADA
                            if (mat.matches()) {
                                if (in.hasNext()) {
                                    palabra4 = in.next();

                                    // DESPUES DE LA ==> EST? INVOLUCRADA LA DIM2 ?
                                    mat = pat.matcher(palabra4);
                                    if (mat.matches()) {

                                        palabra5 = in.next();
                                        palabra6 = in.next();
                                        String valorDim2 = consultaValor(palabra4);
                                        String dimension = consultaPalabra(almacenaAnterior.get(1));
                                        numXregla9 = Integer.parseInt((palabra5));
                                        numYregla9 = Integer.parseInt((almacenaAnterior.get(2)));
                                        porcentaje = (numXregla9 * 100) / total;
                                        porcentaje2 = (numYregla9 * 100) / total;
                                        conf9 = consultaConfianza(palabra6);
                                        frase1 = ("De un total de " + total
                                                + " NCFAS, se cumple que la dimensin " + dimension
                                                + ", junto con la dimensin " + palabra5 + ", una cantidad de "
                                                + numXregla9 + " veces (" + porcentaje
                                                + "%) (X). Esto afecta a la dimensin Interacciones Familiares adquiere un valor igual a "
                                                + valorDim2 + ", una cantidad de " + numYregla9 + " veces ("
                                                + porcentaje2 + "%)(Y). \n Es decir esta regla se cumple el "
                                                + conf9 + "% de las veces.\n");
                                        almacenaRetorno.add(frase1); // CAMINO FELIZ DIM2 EN POSICIN 2 
                                        //System.out.println(frase1); 
                                        almacenaRetorno.add(frase1); // CAMINO FELIZ DIM2 EN POSICIN 2  
                                        //  band=1;
                                        numVeces.add(1, palabra5 + " " + almacenaAnterior.get(2));

                                        System.out.println("ENTRAMOS AC?" + numXregla9 + numYregla9);
                                        reglasEncontradas regla9 = new reglasEncontradas();
                                        regla9.setContenido(frase1);
                                        regla9.setValorX(numXregla9);
                                        regla9.setValorY(numYregla9);
                                        regla9.setNumRegla(9);
                                        reglas.add(regla9);

                                    }
                                }
                            } else {
                                mat = pat.matcher(palabra2);
                                if (mat.matches()) {
                                    String valorDim2 = consultaValor(palabra2);
                                    if (in.hasNext()) {
                                        palabra4 = in.next();
                                        if (in.hasNext()) {
                                            palabra5 = in.next();
                                            if (in.hasNext()) {
                                                String dimension = consultaPalabra(almacenaAnterior.get(1));
                                                palabra5 = consultaPalabra(palabra5);
                                                palabra6 = in.next();
                                                palabra7 = in.next();
                                                numXregla9 = Integer.parseInt((palabra3));
                                                numYregla9 = Integer.parseInt((palabra6));
                                                conf9 = consultaConfianza(palabra7);

                                                porcentaje = (numXregla9 * 100) / total;
                                                porcentaje2 = (numYregla9 * 100) / total;

                                                frase1 = ("De un total de " + total
                                                        + " NCFAS, se cumple que la dimensin  Interacciones Familiares adquiere un valor igual a "
                                                        + valorDim2 + " junto con la dimensin " + dimension
                                                        + ", una cantidad de " + numXregla9 + " veces ("
                                                        + porcentaje + "%) (X). Esto afecta a la dimensin "
                                                        + palabra5 + " , una cantidad de " + palabra6
                                                        + " veces (" + porcentaje2
                                                        + "%)(Y).\n Es decir esta regla se cumple el " + conf9
                                                        + "% de las veces.\n");

                                                numVeces.add(1, palabra3 + " " + palabra6);
                                                reglasEncontradas regla9 = new reglasEncontradas();
                                                regla9.setContenido(frase1);
                                                regla9.setValorX(numXregla9);
                                                regla9.setValorY(numYregla9);
                                                regla9.setNumRegla(9);
                                                reglas.add(regla9);

                                                almacenaRetorno.add(frase1);
                                                ;
                                                //  band=1;
                                            }
                                        }
                                    }
                                }
                                //NO HAY DIMENSIN 2 NI EN LA PRIMERA NI EN LA SEGUNDA POSICIN 
                                else {
                                    if (in.hasNext()) {
                                        palabra4 = in.next();
                                        if (in.hasNext()) {
                                            palabra5 = in.next();

                                            if (in.hasNext()) {
                                                mat = pat.matcher(palabra5);
                                                if (mat.matches()) {
                                                    palabra6 = in.next();
                                                    palabra7 = in.next();
                                                    String valorDim2 = consultaValor(palabra5);
                                                    String dimension = consultaPalabra(almacenaAnterior.get(1));
                                                    String dimension2 = consultaPalabra(
                                                            almacenaAnterior.get(2));

                                                    numXregla9 = Integer.parseInt((almacenaAnterior.get(3)));
                                                    numYregla9 = Integer.parseInt((palabra6));
                                                    conf9 = consultaConfianza(palabra7);
                                                    porcentaje = (numXregla9 * 100) / total;
                                                    porcentaje2 = (numYregla9 * 100) / total;

                                                    frase1 = ("De un total de " + total
                                                            + " NCFAS, se cumple que la dimensin " + dimension
                                                            + " junto con la dimensin " + dimension2
                                                            + " , una cantidad de " + numXregla9 + " veces ("
                                                            + porcentaje
                                                            + "%) (X). Esto afecta a la dimensin Interacciones Familiares la cual adquiere un valor igual a "
                                                            + valorDim2 + " , una cantidad de " + palabra6
                                                            + " veces (" + porcentaje2
                                                            + "%)(Y).\n Es decir esta regla se cumple el "
                                                            + conf9 + "% de las veces.\n");
                                                    numVeces.add(1, almacenaAnterior.get(3) + " " + palabra6);

                                                    reglasEncontradas regla9 = new reglasEncontradas();
                                                    regla9.setContenido(frase1);
                                                    regla9.setValorX(numXregla9);
                                                    regla9.setValorY(numYregla9);
                                                    regla9.setNumRegla(9);
                                                    reglas.add(regla9);

                                                    almacenaRetorno.add(frase1);
                                                    //band=1;
                                                }
                                            }
                                        }
                                    }
                                }
                            }
                        }
                    }
                }
            }

            //DECIMA RELGA DE ASOCIACIN
            //BLOQUE 1
            //COMPROBAR SI EST? DIM2 INVOLUCRADA
            mat = pat3.matcher(palabra0);
            //
            if (num10.equals(palabra0)) {
                if (in.hasNext()) {
                    palabra1 = in.next(); // SEGUNDA PALABRA             
                    //GUARDO LO LEIDO
                    almacenaAnterior.add(palabra0);
                    almacenaAnterior.add(palabra1);
                    mat = pat.matcher(palabra1);
                    //PALABRA 1 ES DIMENSION 2?
                    if (mat.matches()) {

                        dimInvolucradas.add(palabra1);
                        String valorDim2 = consultaValor(palabra1);
                        //REVISAMOS LO QUE VIENE DESPUES DE DIM2=
                        if (in.hasNext()) {
                            palabra2 = in.next(); //PALABRA 3 EN EL CAMINO FELIZ
                            if (in.hasNext()) {
                                palabra3 = in.next(); //PALABRA 4 EN EL CAMINO FELIZ                    
                                almacenaAnterior.add(palabra2);
                                almacenaAnterior.add(palabra3);
                                mat = pat2.matcher(palabra3);
                                //SI ES UNA ==> ENTONCES
                                if (mat.matches()) {
                                    if (in.hasNext()) {
                                        palabra4 = in.next(); //PALABRA 5 CAMINO FELIZ
                                        dimInvolucradas.add(palabra4);
                                        palabra4 = consultaPalabra(palabra4);
                                        palabra5 = in.next(); //VALOR DE VECES DESPUES DE =>
                                        palabra6 = in.next();
                                        numXregla10 = Integer.parseInt((palabra2));
                                        numYregla10 = Integer.parseInt((palabra5));
                                        conf10 = consultaConfianza(palabra6);
                                        porcentaje = (numXregla10 * 100) / total;
                                        porcentaje2 = (numYregla10 * 100) / total;
                                        frase1 = ("De un total de " + total
                                                + " NCFAS, se cumple que la dimension Interacciones Familiares adquiere un valor igual a "
                                                + valorDim2 + " una cantidad de " + numXregla10 + " veces ("
                                                + porcentaje + "%) (X). Esto afecta a la dimensin " + palabra4
                                                + ", una cantidad de " + palabra5 + " vececs (" + porcentaje2
                                                + "%) (Y). \n Es decir esta regla se cumple el " + conf10
                                                + "% de las veces. \n");
                                        almacenaRetorno.add(frase1);

                                        numVeces.add(1, palabra2 + " " + palabra5);

                                        reglasEncontradas regla10 = new reglasEncontradas();
                                        regla10.setContenido(frase1);
                                        regla10.setValorX(numXregla10);
                                        regla10.setValorY(numYregla10);
                                        regla10.setNumRegla(10);
                                        reglas.add(regla10);
                                        System.out.println("ENTRAMOS AC?");
                                        // band=1;

                                    }
                                }

                                // LA REGLA TIENE MAS DE UNA DIMENSIN INVOLUCRADA ANTES DE ==>
                                else {
                                    if (in.hasNext()) {
                                        palabra4 = in.next(); // DEBER?A SER FLECHA 
                                        //COMPROBAMOS SI LA ==> EST? EN LA cuarta POSICIN
                                        mat = pat2.matcher(palabra4);
                                        if (mat.matches()) {
                                            if (in.hasNext()) {
                                                palabra5 = in.next();
                                                dimInvolucradas.add(almacenaAnterior.get(2));
                                                String dimension = consultaPalabra(almacenaAnterior.get(2));
                                                dimInvolucradas.add(palabra5);

                                                palabra5 = consultaPalabra(palabra5);
                                                palabra6 = in.next();
                                                palabra7 = in.next();
                                                numXregla10 = Integer.parseInt((almacenaAnterior.get(3)));
                                                numYregla10 = Integer.parseInt((palabra6));
                                                porcentaje = (numXregla10 * 100) / total;
                                                porcentaje2 = (numYregla10 * 100) / total;
                                                conf10 = consultaConfianza(palabra7);

                                                frase1 = ("De un total de " + total
                                                        + " NCFAS, se cumple que la dimensin Interacciones Familiares adquiere un valor igual a "
                                                        + valorDim2 + "  junto con la dimensin " + dimension
                                                        + ", esto ocurre una cantidad de " + numXregla10
                                                        + " veces (" + porcentaje
                                                        + "%) (X). Esto afecta a la dimensin " + palabra5
                                                        + " una cantidad de " + palabra6 + " veces ("
                                                        + porcentaje2
                                                        + "%)(Y). \n Es decir esta regla se cumple el " + conf10
                                                        + "% de las veces.\n");
                                                almacenaRetorno.add(frase1);
                                                numVeces.add(1, almacenaAnterior.get(3) + " " + palabra6);

                                                System.out.println("LOS VALORES DE LA REGLA 1 SON: "
                                                        + numXregla10 + numYregla10);

                                                reglasEncontradas regla10 = new reglasEncontradas();
                                                regla10.setContenido(frase1);
                                                regla10.setValorX(numXregla10);
                                                regla10.setValorY(numYregla10);
                                                regla10.setNumRegla(10);
                                                reglas.add(regla10);

                                            }
                                        }
                                    }
                                }
                            }
                        }
                    }

                    //BLOQUE 2
                    //AC? SE COMPRUEBA SI SE ENCUENTRA LA DIMENSIN 2 EN SEGUNDA POSICIN           
                    if (in.hasNext()) {
                        palabra2 = in.next(); // 
                        if (in.hasNext()) {
                            palabra3 = in.next(); //               
                            //GUARDAMOS LO LE?DO
                            almacenaAnterior.add(palabra2);
                            almacenaAnterior.add(palabra3);
                            mat = pat2.matcher(palabra3);
                            // SI LA PALABRA 3 ES UNA FLECHA, ENTONCES HAY SOLO UNA DIMENSIN INVOLUCRADA
                            if (mat.matches()) {
                                if (in.hasNext()) {
                                    palabra4 = in.next();

                                    // DESPUES DE LA ==> EST? INVOLUCRADA LA DIM2 ?
                                    mat = pat.matcher(palabra4);
                                    if (mat.matches()) {

                                        palabra5 = in.next();
                                        palabra6 = in.next();
                                        String valorDim2 = consultaValor(palabra4);
                                        String dimension = consultaPalabra(almacenaAnterior.get(1));
                                        numXregla10 = Integer.parseInt((palabra5));
                                        numYregla10 = Integer.parseInt((almacenaAnterior.get(2)));
                                        porcentaje = (numXregla10 * 100) / total;
                                        porcentaje2 = (numYregla10 * 100) / total;
                                        conf10 = consultaConfianza(palabra6);
                                        frase1 = ("De un total de " + total
                                                + " NCFAS, se cumple que la dimensin " + dimension
                                                + ", junto con la dimensin " + palabra5 + ", una cantidad de "
                                                + numXregla10 + " veces (" + porcentaje
                                                + "%) (X). Esto afecta a la dimensin Interacciones Familiares adquiere un valor igual a "
                                                + valorDim2 + ", una cantidad de " + numYregla10 + " veces ("
                                                + porcentaje2 + "%)(Y). \n Es decir esta regla se cumple el "
                                                + conf10 + "% de las veces.\n");
                                        almacenaRetorno.add(frase1); // CAMINO FELIZ DIM2 EN POSICIN 2 
                                        //System.out.println(frase1); 
                                        almacenaRetorno.add(frase1); // CAMINO FELIZ DIM2 EN POSICIN 2  
                                        //  band=1;
                                        numVeces.add(1, palabra5 + " " + almacenaAnterior.get(2));

                                        System.out.println("ENTRAMOS AC?" + numXregla10 + numYregla10);
                                        reglasEncontradas regla10 = new reglasEncontradas();
                                        regla10.setContenido(frase1);
                                        regla10.setValorX(numXregla10);
                                        regla10.setValorY(numYregla10);
                                        regla10.setNumRegla(10);
                                        reglas.add(regla10);

                                    }
                                }
                            } else {
                                mat = pat.matcher(palabra2);
                                if (mat.matches()) {
                                    String valorDim2 = consultaValor(palabra2);
                                    if (in.hasNext()) {
                                        palabra4 = in.next();
                                        if (in.hasNext()) {
                                            palabra5 = in.next();
                                            if (in.hasNext()) {
                                                String dimension = consultaPalabra(almacenaAnterior.get(1));
                                                palabra5 = consultaPalabra(palabra5);
                                                palabra6 = in.next();
                                                palabra7 = in.next();
                                                numXregla10 = Integer.parseInt((palabra3));
                                                numYregla10 = Integer.parseInt((palabra6));
                                                conf10 = consultaConfianza(palabra7);

                                                porcentaje = (numXregla10 * 100) / total;
                                                porcentaje2 = (numYregla10 * 100) / total;

                                                frase1 = ("De un total de " + total
                                                        + " NCFAS, se cumple que la dimensin  Interacciones Familiares adquiere un valor igual a "
                                                        + valorDim2 + " junto con la dimensin " + dimension
                                                        + ", una cantidad de " + numXregla10 + " veces ("
                                                        + porcentaje + "%) (X). Esto afecta a la dimensin "
                                                        + palabra5 + " , una cantidad de " + palabra6
                                                        + " veces (" + porcentaje2
                                                        + "%)(Y).\n Es decir esta regla se cumple el " + conf10
                                                        + "% de las veces.\n");

                                                numVeces.add(1, palabra3 + " " + palabra6);
                                                reglasEncontradas regla10 = new reglasEncontradas();
                                                regla10.setContenido(frase1);
                                                regla10.setValorX(numXregla10);
                                                regla10.setValorY(numYregla10);
                                                regla10.setNumRegla(10);
                                                reglas.add(regla10);

                                                almacenaRetorno.add(frase1);
                                                ;
                                                //  band=1;
                                            }
                                        }
                                    }
                                }
                                //NO HAY DIMENSIN 2 NI EN LA PRIMERA NI EN LA SEGUNDA POSICIN 
                                else {
                                    if (in.hasNext()) {
                                        palabra4 = in.next();
                                        if (in.hasNext()) {
                                            palabra5 = in.next();

                                            if (in.hasNext()) {
                                                mat = pat.matcher(palabra5);
                                                if (mat.matches()) {
                                                    palabra6 = in.next();
                                                    palabra7 = in.next();
                                                    String valorDim2 = consultaValor(palabra5);
                                                    String dimension = consultaPalabra(almacenaAnterior.get(1));
                                                    String dimension2 = consultaPalabra(
                                                            almacenaAnterior.get(2));

                                                    numXregla10 = Integer.parseInt((almacenaAnterior.get(3)));
                                                    numYregla10 = Integer.parseInt((palabra6));
                                                    conf10 = consultaConfianza(palabra7);
                                                    porcentaje = (numXregla10 * 100) / total;
                                                    porcentaje2 = (numYregla10 * 100) / total;

                                                    frase1 = ("De un total de " + total
                                                            + " NCFAS, se cumple que la dimensin " + dimension
                                                            + " junto con la dimensin " + dimension2
                                                            + " , una cantidad de " + numXregla10 + " veces ("
                                                            + porcentaje
                                                            + "%) (X). Esto afecta a la dimensin Interacciones Familiares la cual adquiere un valor igual a "
                                                            + valorDim2 + " , una cantidad de " + palabra6
                                                            + " veces (" + porcentaje2
                                                            + "%)(Y).\n Es decir esta regla se cumple el "
                                                            + conf10 + "% de las veces.\n");
                                                    numVeces.add(1, almacenaAnterior.get(3) + " " + palabra6);

                                                    reglasEncontradas regla10 = new reglasEncontradas();
                                                    regla10.setContenido(frase1);
                                                    regla10.setValorX(numXregla10);
                                                    regla10.setValorY(numYregla10);
                                                    regla10.setNumRegla(10);
                                                    reglas.add(regla10);

                                                    almacenaRetorno.add(frase1);
                                                    //band=1;
                                                }
                                            }
                                        }
                                    }
                                }
                            }
                        }
                    }
                }
            }

        } // while (in.hasNext())

    } catch (FileNotFoundException e) {
        //System.out.println("Error abriendo el fichero "+nomFich);

    } finally {
        if (in != null) {
            in.close();
            vaciarDataSet();

        }
    } // try

    //GUARDO LO GENERADO Y LUEGO LO RETORNO
    return reglas;
}

From source file:demo.bean.WekaDABeanImpl.java

License:Open Source License

@Override
public Map<Integer, ResultItem> generateResults() {
    Map<Integer, ResultItem> myResults = new HashMap<Integer, ResultItem>();

    try {/* www .j a v a  2s .c  o m*/
        InputStream input = getClass().getResourceAsStream("/arff/weather.nominal.arff");
        DataSource source = new DataSource(input);
        Instances data = source.getDataSet();

        Apriori apriori = new Apriori();
        apriori.buildAssociations(data);

        FastVector res[] = apriori.getAllTheRules();
        int x = 0;
        for (FastVector rule : res) {
            if (rule == null)
                continue;

            for (int i = 0; i < rule.size(); ++i) {
                Object o = rule.elementAt(i);

                if (o instanceof AprioriItemSet) {
                    AprioriItemSet itemSet = (AprioriItemSet) o;

                    System.out.println(itemSet.toString(data) + " " + itemSet.items().length);

                    String ruleStr = itemSet.toString(data) + " ";
                    myResults.put((x + 1), new ResultItem((x + 1), ruleStr));
                    if (x >= 10)
                        break;
                    x++;
                }
            }

        }
    } catch (Exception ex) {
        ex.printStackTrace();
    }
    return myResults;
}

From source file:regulyasocjacyjne.WekaApriori.java

/**
 * Generowanie regu Asocjacyjnych algorytmem Apriori
 *
 * @param data//from  www . ja  va 2  s .  c o m
 * @param n Liczba regul do policzenia (standardowo: 10)
 * @param c Minmalna ufnosc reguly (standardowo: 0.9).
 * @return
 * @throws Exception
 */
public String regulyAsocjacyjne(Instances data, String c, String n) throws Exception {
    data.setClassIndex(data.numAttributes() - 1);

    String[] options = Utils.splitOptions("-N " + n + " -C " + c);
    Apriori apriori = new Apriori();
    apriori.setOptions(options);
    apriori.buildAssociations(data); //Generowanie regul asocjacyjnych

    System.out.println("Liczba regul=" + apriori.getNumRules());

    System.out.println(apriori.toString()); //Wypisanie informacji o regulach
    return apriori.toString();
}

From source file:regulyasocjacyjne.WekaApriori.java

public static void regulyAsocjacyjneDyskret() throws Exception {
    Instances data = loadData("./src/data/osmolski.arff");
    data.setClassIndex(data.numAttributes() - 1);

    Discretize filter = new Discretize();

    filter.setInputFormat(data);//  w  w  w . j a  va  2  s . com

    //Dyskretyzacja tablicy
    Instances trainDiscret = Filter.useFilter(data, filter);

    //Opcje liczenia regul asocjacyjnych
    String[] options = Utils.splitOptions("-N 10 -C 0.9");

    Apriori apriori = new Apriori();
    apriori.setOptions(options);
    apriori.buildAssociations(trainDiscret);

    System.out.println("Liczba regul=" + apriori.getNumRules());

    System.out.println(apriori.toString());
    //  wynik = eval.toSummaryString("Wyniki:", false);
}