Example usage for weka.associations Apriori buildAssociations

List of usage examples for weka.associations Apriori buildAssociations

Introduction

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

Prototype

@SuppressWarnings("unchecked")
@Override
public void buildAssociations(Instances instances) throws Exception 

Source Link

Document

Method that generates all large itemsets with a minimum support, and from these all association rules with a minimum confidence.

Usage

From source file:ap.mavenproject1.HelloWeka.java

public static void main(String args[]) {
    Instances data = null;/*from   w w  w. ja  va 2 s.  c om*/
    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 {/*from w w  w  . ja va2 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   w  ww  .jav  a2 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;
    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();/*  w ww .j  av  a  2  s  .  c  om*/
    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 {/* w  ww  . 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:EsperTest.CEPListener.java

public void update(EventBean[] newData, EventBean[] oldData) {

    System.out.println("Event received: " + newData[0].getUnderlying());
    if (newData.length > 2) {
        //create the column name and type, these are strings
        //http://weka.wikispaces.com/Creating+an+ARFF+file
        Instances data;/*from   ww  w . j  a v a  2s .com*/
        FastVector atts = new FastVector();

        for (int j = 0; j < columnNumbers.length; j++) {
            FastVector values = new FastVector();
            for (int i = 0; i < labels.NominalCount(j); i++) {
                values.addElement(labels.GetLabel(columnNumbers[j], i));
            }
            atts.addElement(new Attribute(labels.GetHeader(columnNumbers[j]), values));
        }

        data = new Instances("Title", atts, 0);

        for (int i = 0; i < newData.length; i++) {
            Instance inst = new Instance(columnNumbers.length);
            for (int j = 0; j < columnNumbers.length; j++) {
                inst.setValue(j, newData[i].get("eventType").toString());
            }
            data.add(inst);
        }

        Apriori aprioriObj = new weka.associations.Apriori();

        try {
            aprioriObj.buildAssociations(data);
        } catch (Exception e) {
            System.out.println(e);
        }

        FastVector rules[] = aprioriObj.getAllTheRules();

    }

}

From source file:regulyasocjacyjne.WekaApriori.java

/**
 * Generowanie regu Asocjacyjnych algorytmem Apriori
 *
 * @param data//from   w  w  w.  j a v a2  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);/*from   www  .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);
}