Package edu.upvehu.mummec.final1920
Class Turn
java.lang.Object
edu.upvehu.mummec.final1920.Turn
public class Turn
extends java.lang.Object
Esta clase representa a un turno de un hablante.
(recoge el material entre dos etiquetas "<SPK/>")
Se aporta al constructor el id del hablante para conocer su identidad (no es usado en el ejercicio)
Mediante el método addLine(.) recibe líneas del procesador de sesiones (Session) y va cumplimentando palabras (Word) y fonemas (Phoneme)
Se aporta al constructor el id del hablante para conocer su identidad (no es usado en el ejercicio)
Mediante el método addLine(.) recibe líneas del procesador de sesiones (Session) y va cumplimentando palabras (Word) y fonemas (Phoneme)
-
Field Summary
-
Constructor Summary
Constructors Constructor Description Turn(java.lang.String speaker)
Constructor que se limita a guardar la identidad del hablante. -
Method Summary
Modifier and Type Method Description (package private) void
addLine(java.lang.String linea)
Extrae los campos de la línea recibida y construye las palabras.
Si la línea contiene una palabra en el campo correspondiente, genera una nueva palabra vacía (que mantiene como "palabra activa") y la almacena en la lista de palabras.(package private) double
getDuration()
Proporciona la duración del turno.(package private) double
getEnd()
Proporciona el segundo final en que termina el turno.
Este es el último tiempo de finaliczación de una palabra encontrado en el turno.(package private) int
getLength()
Proporciona la longitud total del turno en fonemas.(package private) int
getMatches()
Proporciona la cantidad total de fonemas "acertados".(package private) int
getNumWords()
Proporciona el número de palabras que componen el turno.(package private) double
getStart()
Proporciona el segundo inicial en que comienza el turno.
Este es el primer tiempo de inicio de una palabra encontrado en el turno.(package private) double
pra()
Proporciona el Porcentaje Real de Aciertos (PRA).
-
Field Details
-
Constructor Details
-
Turn
public Turn(java.lang.String speaker)Constructor que se limita a guardar la identidad del hablante.- Parameters:
speaker
- la identidad del hablante
-
-
Method Details
-
addLine
void addLine(java.lang.String linea)Extrae los campos de la línea recibida y construye las palabras.
Si la línea contiene una palabra en el campo correspondiente, genera una nueva palabra vacía (que mantiene como "palabra activa") y la almacena en la lista de palabras.
A continuación añade siempre el fonema (Phoneme) recibido a la "palabra activa", con los campos de datos correspondientes.
TRUCO para extraer todos los campos de la línea:
para evitar el procesamiento con "splits" de splits" como hicimos en clase, podemos usar expresiones regulares. Los seis campos pueden obtenerse de una sola vez de la siguiente manera:
String[] campos = linea.replaceFirst("(.)\\t(.)\\t\\|(.*)\\|(?:(.*) (.*) (.*))?\\|", "$1 $2 $3 $4 $5 $6 STUB").split(" ");
(nota.- el elemento "STUB" es un séptimo campo que fuerza la existencia de todos los anteriores aun cuando no existieran en la linea recibida)- Parameters:
linea
- la línea extraida del fichero y proporcionada por el objeto Session que lo procesa.- See Also:
- replaceFirst(String regex, String replacement) para entender cómo funciona el método, y Pattern para aprender sobre expresiones regulares en Java y entender el "truco".
-
getNumWords
int getNumWords()Proporciona el número de palabras que componen el turno.- Returns:
- el número de palabras que componen el turno.
-
getLength
int getLength()Proporciona la longitud total del turno en fonemas. Recorre todas las palabras sumando sus longitudes en fonemas.- Returns:
- la longitud total del turno en fonemas.
-
getMatches
int getMatches()Proporciona la cantidad total de fonemas "acertados". Recorre todas las palabras sumando los fonemas "acertados".- Returns:
- la cantidad total de fonemas "acertados".
-
pra
double pra()Proporciona el Porcentaje Real de Aciertos (PRA). devuelve el cociente de aciertos (getMatches()) entre longitud fonética (getLength()).- Returns:
- el Porcentaje Real de Aciertos (PRA).
-
getStart
double getStart()Proporciona el segundo inicial en que comienza el turno.
Este es el primer tiempo de inicio de una palabra encontrado en el turno. Como muchos fonemas no tienen tiempos (son borrados), puede haber palabras sin ninguna marca de tiempo (totalmente borradas), y por ello es preciso recorrer las palabras desde el principio hasta que una proporcione un tiempo inicial.- Returns:
- el segundo inicial en que comienza el turno.
-
getEnd
double getEnd()Proporciona el segundo final en que termina el turno.
Este es el último tiempo de finaliczación de una palabra encontrado en el turno. Como muchos fonemas no tienen tiempos (son borrados), puede haber palabras sin ninguna marca de tiempo (totalmente borradas), y por ello es preciso recorrer las palabras desde el final hasta que una proporcione un tiempo final.- Returns:
- el segundo final en que termina el turno.
-
getDuration
double getDuration()Proporciona la duración del turno. Es la diferencia entre el tiempo final e inicial porporcionados por getStart() y getEnd().- Returns:
- la duración del turno.
-