Dao.NCFAS.PruebaWekaDao.java Source code

Java tutorial

Introduction

Here is the source code for Dao.NCFAS.PruebaWekaDao.java

Source

/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */
package Dao.NCFAS;

import Model.NCFAS.reglasEncontradas;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.io.InputStream;

import java.io.OutputStream;
import java.io.PrintWriter;

import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;

import java.util.regex.Matcher;
import java.util.regex.Pattern;
import javax.faces.context.FacesContext;
import javax.servlet.ServletContext;

import weka.core.converters.ConverterUtils.DataSource;
import weka.associations.Apriori;
import weka.core.Instances;

public class PruebaWekaDao {

    private int total;
    private int numXregla1;
    private int numYregla1;
    private int numXregla2;
    private int numYregla2;
    private int numXregla3;
    private int numYregla3;
    private int numXregla4;
    private int numYregla4;
    private int numXregla5;
    private int numYregla5;
    private int numXregla6;
    private int numYregla6;
    private int numXregla7;
    private int numYregla7;
    private int numXregla8;
    private int numYregla8;
    private int numXregla9;
    private int numYregla9;
    private int numXregla10;
    private int numYregla10;
    private int conf1;
    private int conf2;
    private int conf3;
    private int conf4;
    private int conf5;
    private int conf6;
    private int conf7;
    private int conf8;
    private int conf9;
    private int conf10;
    private int count;

    public PruebaWekaDao() {
        System.out.println("Entramos al constructor de pruebawekadao");
        count++;
        System.out.println(count);
    }

    public int getConf1() {
        return conf1;
    }

    public void setConf1(int conf1) {
        this.conf1 = conf1;
    }

    public int getConf2() {
        return conf2;
    }

    public void setConf2(int conf2) {
        this.conf2 = conf2;
    }

    public int getConf3() {
        return conf3;
    }

    public void setConf3(int conf3) {
        this.conf3 = conf3;
    }

    public int getConf4() {
        return conf4;
    }

    public void setConf4(int conf4) {
        this.conf4 = conf4;
    }

    public int getConf5() {
        return conf5;
    }

    public void setConf5(int conf5) {
        this.conf5 = conf5;
    }

    public int getConf6() {
        return conf6;
    }

    public void setConf6(int conf6) {
        this.conf6 = conf6;
    }

    public int getConf7() {
        return conf7;
    }

    public void setConf7(int conf7) {
        this.conf7 = conf7;
    }

    public int getConf8() {
        return conf8;
    }

    public void setConf8(int conf8) {
        this.conf8 = conf8;
    }

    public int getConf9() {
        return conf9;
    }

    public void setConf9(int conf9) {
        this.conf9 = conf9;
    }

    public int getConf10() {
        return conf10;
    }

    public void setConf10(int conf10) {
        this.conf10 = conf10;
    }

    public int getTotal() {
        return total;
    }

    public void setTotal(int total) {
        this.total = total;
    }

    public int getNumXregla1() {
        return numXregla1;
    }

    public void setNumXregla1(int numXregla1) {
        this.numXregla1 = numXregla1;
    }

    public int getNumYregla1() {
        return numYregla1;
    }

    public void setNumYregla1(int numYregla1) {
        this.numYregla1 = numYregla1;
    }

    public int getNumXregla2() {
        return numXregla2;
    }

    public void setNumXregla2(int numXregla2) {
        this.numXregla2 = numXregla2;
    }

    public int getNumYregla2() {
        return numYregla2;
    }

    public void setNumYregla2(int numYregla2) {
        this.numYregla2 = numYregla2;
    }

    public int getNumXregla3() {
        return numXregla3;
    }

    public void setNumXregla3(int numXregla3) {
        this.numXregla3 = numXregla3;
    }

    public int getNumYregla3() {
        return numYregla3;
    }

    public void setNumYregla3(int numYregla3) {
        this.numYregla3 = numYregla3;
    }

    public int getNumXregla4() {
        return numXregla4;
    }

    public void setNumXregla4(int numXregla4) {
        this.numXregla4 = numXregla4;
    }

    public int getNumYregla4() {
        return numYregla4;
    }

    public void setNumYregla4(int numYregla4) {
        this.numYregla4 = numYregla4;
    }

    public int getNumXregla5() {
        return numXregla5;
    }

    public void setNumXregla5(int numXregla5) {
        this.numXregla5 = numXregla5;
    }

    public int getNumYregla5() {
        return numYregla5;
    }

    public void setNumYregla5(int numYregla5) {
        this.numYregla5 = numYregla5;
    }

    public int getNumXregla6() {
        return numXregla6;
    }

    public void setNumXregla6(int numXregla6) {
        this.numXregla6 = numXregla6;
    }

    public int getNumYregla6() {
        return numYregla6;
    }

    public void setNumYregla6(int numYregla6) {
        this.numYregla6 = numYregla6;
    }

    public int getNumXregla7() {
        return numXregla7;
    }

    public void setNumXregla7(int numXregla7) {
        this.numXregla7 = numXregla7;
    }

    public int getNumYregla7() {
        return numYregla7;
    }

    public void setNumYregla7(int numYregla7) {
        this.numYregla7 = numYregla7;
    }

    public int getNumXregla8() {
        return numXregla8;
    }

    public void setNumXregla8(int numXregla8) {
        this.numXregla8 = numXregla8;
    }

    public int getNumYregla8() {
        return numYregla8;
    }

    public void setNumYregla8(int numYregla8) {
        this.numYregla8 = numYregla8;
    }

    public int getNumXregla9() {
        return numXregla9;
    }

    public void setNumXregla9(int numXregla9) {
        this.numXregla9 = numXregla9;
    }

    public int getNumYregla9() {
        return numYregla9;
    }

    public void setNumYregla9(int numYregla9) {
        this.numYregla9 = numYregla9;
    }

    public int getNumXregla10() {
        return numXregla10;
    }

    public void setNumXregla10(int numXregla10) {
        this.numXregla10 = numXregla10;
    }

    public int getNumYregla10() {
        return numYregla10;
    }

    public void setNumYregla10(int numYregla10) {
        this.numYregla10 = numYregla10;
    }

    public int consultaConfianza(String confianza) {
        int valorConfianza;
        String sepConfianza[] = confianza.split("");

        if ("0".equals(sepConfianza[7])) {
            valorConfianza = Integer.parseInt(sepConfianza[9] + sepConfianza[10]);
        } else {
            valorConfianza = Integer.parseInt(sepConfianza[7]);
            valorConfianza = valorConfianza + 99;
        }
        return valorConfianza;
    }

    public void vaciarDataSet() throws IOException {
        ServletContext servletContext = (ServletContext) FacesContext.getCurrentInstance().getExternalContext()
                .getContext();
        //Ruta de nuestros archivos
        String pathArchivos = (String) servletContext.getRealPath("/") + "archivosVarios/"; // Sustituye "/" por el directorio ej: "/upload"  

        String cabecera = pathArchivos + "cabecera.txt";
        String dataset = pathArchivos + "DataSetSimulado.arff";

        InputStream in = new FileInputStream(cabecera);
        OutputStream out = new FileOutputStream(dataset);

        byte[] buf = new byte[1024];
        int len;

        while ((len = in.read(buf)) > 0) {
            out.write(buf, 0, len);
        }

        in.close();
        out.close();

    }

    public void actualizarItemsGenerales() throws DAOException, IOException {
        ItemDao itemdao;
        itemdao = new ItemDao();
        itemdao.insertaPuntajesItemsGenerales();
    }

    public String consultaPalabra(String palabra) {

        String obtenerNum[] = palabra.split("");

        Matcher mat;
        Pattern pat1 = Pattern.compile("DIM1.*");
        Pattern pat2 = Pattern.compile("DIM2.*");
        Pattern pat3 = Pattern.compile("DIM3.*");
        Pattern pat4 = Pattern.compile("DIM4.*");
        Pattern pat5 = Pattern.compile("DIM5.*");
        Pattern pat6 = Pattern.compile("DIM6.*");
        Pattern pat7 = Pattern.compile("DIM7.*");
        Pattern pat8 = Pattern.compile("DIM8.*");

        String dim1 = "Entorno";
        String dim2 = "Competenicas Parentales";
        String dim3 = "Interacciones Familiares";
        String dim4 = "Seguridad Social";
        String dim5 = "Bienestar del Nio";
        String dim6 = "Vida Social Comunitaria";
        String dim7 = "Autonoma";
        String dim8 = "Salud Familiar";

        mat = pat1.matcher(palabra);
        if (mat.matches()) {
            palabra = dim1;
        } else {
            mat = pat2.matcher(palabra);
            if (mat.matches()) {
                palabra = dim2;
            } else {
                mat = pat3.matcher(palabra);
                if (mat.matches()) {
                    palabra = dim3;
                } else {
                    mat = pat4.matcher(palabra);
                    if (mat.matches()) {
                        palabra = dim4;
                    } else {
                        mat = pat5.matcher(palabra);
                        if (mat.matches()) {
                            palabra = dim5;
                        } else {
                            mat = pat6.matcher(palabra);
                            if (mat.matches()) {
                                palabra = dim6;
                            } else {
                                mat = pat7.matcher(palabra);
                                if (mat.matches()) {
                                    palabra = dim7;
                                } else {
                                    mat = pat8.matcher(palabra);
                                    if (mat.matches()) {
                                        palabra = dim8;
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }

        if (obtenerNum[5].equals("-")) {

            return palabra + " la cual adquiere un valor igual a " + obtenerNum[5] + obtenerNum[6];

        } else {

            return palabra + " la cual adquiere un valor igual a " + obtenerNum[5];
        }
    }

    public String consultaValor(String dim2) {

        String valorDim2;
        String obtenerNum[] = dim2.split("");
        if (obtenerNum[5].equals("-")) {

            valorDim2 = obtenerNum[5] + obtenerNum[6];

        } else {

            valorDim2 = obtenerNum[5];
        }

        return valorDim2;
    }

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

        actualizarItemsGenerales();
        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;
    }

}