Help in text comparison.
in
Programming Questions
•
7 months ago
Hi all,
I'm quite newbie in programming and imagine that this question will problably extremely easy to solve, but I can't get it, so any help will be very welcome.
What i'm trying to do is comparing two text files (a dictionary and a book) and create different arrays with all the matches between both, so to say, i will end up having an array with x "democracy" terms, another with y "state" terms, and so on.
Up to now i've been able to create a counter that counts all the matches between both so i have a counter of total matches, but I can't find the way to split this into different groups?.
Any ideas? Thxs a lot.
Here is the code:
String [] ficherotexto;
String [] libropolitica;
String textolibrojunto;
String textolibrojuntoarray [];
String tokens;
int t, l, m;
boolean c;
int contador, contador2, contador3;
ArrayList coincidencias;
String [] coincidencias3;
void setup () {
size (100, 100);
// Creo la matriz con el fichero a tratar
String [] ficherotexto = loadStrings ("glosario_de_politica.txt");
String [] libropolitica = loadStrings ("aristoteles_politica_parcial.txt");
//Junto todo el texto en una string para que cada elemento no sea un parrafo sino
//que junto todo el texto en una sola String. Asi los podré luego dividir en una array
//de palabras que podré comparar con otra cosa.
String textolibrojuntomay = join (libropolitica, ' ');
//Paso todo el libro a minusculas
String textolibrojunto= textolibrojuntomay.toLowerCase();
//Convierto la cadena en matriz. Split solo se puede usar con cadenas, no con arrays.
//Por eso he usado antes join, para convertir el texto en una unica String de texto,
//y ahora la vuelvo a convertir en una Array de palabras con split.
String [] textolibrojuntoarray = split(textolibrojunto, ' ');
//Elementos a quitar de la cadena
String tokens = " ,.;:-_!?&\"□▫¶~ +%=()[]{}«»#&%§'|";
//Convierto la variable-matriz en variable int
int t= int (ficherotexto.length);// Numero de terminos del glosario de politica.
int l= int (libropolitica.length);//Numero de parrafos del libro.
int m= int (textolibrojuntoarray.length);// Numero de palabras del libro.
println("num terminos del glosario: " + t);
println("num parrafos del libro: " + l);
println("num palabras del libro: " + m);
//println (libropolitica);
//println (textolibrojunto);
//Matriz para las cpincidencias
coincidencias = new ArrayList(); // crea nueva ArrayList vacia
//Comparar los dos textos
int matchedValues = 1;
contador=0;
contador2=0;
contador3=0;
for (int i=0; i < t; i++) {// este es el bucle del glosario
boolean c=true;
contador++;
c= false;
for (int j=0; j < m; j++) {// este es el bucle del libro de politica
// Comparar las dos matrices
if (ficherotexto[i].equals (textolibrojuntoarray[j]) == true) {
if (!c) {
contador3++;
println ("ok"+ contador3 );
}
coincidencias.add (ficherotexto [i]);// incluye la entrada en el Arraylist(coincidencias).
println("Término: " +"'"+ ficherotexto[i]+"'" +" presente en el texto "+ matchedValues);
matchedValues++;
println (coincidencias);
contador2++;//si lo pongo aquí me da las veces que
println (contador2);// encuentra una coincidencia.
}
}
//Aqui tengo que poner una linea para que mientras no cambie i haga una cadena que reuna todas las
//repeticiones de un termino.
}
//println (contador2);
}
void draw () {
background (255);
}
1