Class Session

java.lang.Object
edu.upvehu.mummec.final1920.Session

public class Session
extends java.lang.Object
Esta clase representa a la sesión, es decir, al fichero completo.
Su constructor genera un mapa que relaciona identificadores de cada hablante con la lista de turnos que le corresponden.

Proporciona además, los métodos para obtener la lista de hablantes y distintos valores asociados a cada uno de ellos.
  • Field Summary

    Fields 
    Modifier and Type Field Description
    private java.lang.String id
    Identificador de la sesión (el que se recibe como un parámetro al llamar al constructor)
    private java.util.Map<java.lang.String,​java.util.List<Turn>> turns
    El mapa que relaciona hablantes (su id numérico como texto) con la lista de turnos en que han intervenido.
  • Constructor Summary

    Constructors 
    Constructor Description
    Session​(java.lang.String id, java.lang.String url)
    Procesa el fichero remoto indicado como parámetro, analizándolo línea a línea para ir generando los turnos.
  • Method Summary

    Modifier and Type Method Description
    java.lang.String getId()
    getter del id de sesión (no utilizado en este ejercicio)
    (package private) java.util.List<Turn> getSpeakerTurns​(java.lang.String speaker)
    Para un hablante dado proporciona la lista de sus turnos
    (package private) double speakerPra​(java.lang.String speaker)
    Proporciona el "Porcentaje Real de Aciertos" del reconocedor automático del habla para un hablante.
    (package private) java.util.Set<java.lang.String> speakerSet()
    Proporciona el conjunto (Set) de identificadores de hablantes
    (package private) double speakerTime​(java.lang.String speaker)
    Proporciona el tiempo total utilizado por un hablante;
    (package private) int speakerTurns​(java.lang.String speaker)
    Proporciona el número de turnos utilizados por un hablante.
    (package private) int speakerWords​(java.lang.String speaker)
    Proporciona el número de palabras pronunciadas por un hablante;

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • Field Details

    • turns

      private final java.util.Map<java.lang.String,​java.util.List<Turn>> turns
      El mapa que relaciona hablantes (su id numérico como texto) con la lista de turnos en que han intervenido.
    • id

      private final java.lang.String id
      Identificador de la sesión (el que se recibe como un parámetro al llamar al constructor)
  • Constructor Details

    • Session

      public Session​(java.lang.String id, java.lang.String url) throws java.net.MalformedURLException, java.io.IOException
      Procesa el fichero remoto indicado como parámetro, analizándolo línea a línea para ir generando los turnos.
      Para cada línea comprueba si es comentario o no y actúa del siguiente modo:
      • Si es comentario con la marca <SPK/>, instancia un nuevo objeto Turn con el id de hablante sacado del final de la línea (y lo mantiene como "turno activo"). Si el hablante no esta ya en el mapa de turnos, lo incluye junto con una nueva lista de turnos asociada, e incluye el "turno actual" en dicha lista.
      • Si no es comentario, proporciona la línea al "turno actual".
      Parameters:
      id - identificador de sesión (debe coincidr con el nombre del fichero sin extensión)
      url - dirección remota del fichero a procesar
      Throws:
      java.net.MalformedURLException - La URL es incorrecta
      java.io.IOException - Problemas de acceso al fichero remoto.
  • Method Details

    • getId

      public java.lang.String getId()
      getter del id de sesión (no utilizado en este ejercicio)
      Returns:
      el id de la sesión
    • speakerSet

      java.util.Set<java.lang.String> speakerSet()
      Proporciona el conjunto (Set) de identificadores de hablantes
      Returns:
      el conjunto (Set) de identificadores de hablantes
    • getSpeakerTurns

      java.util.List<Turn> getSpeakerTurns​(java.lang.String speaker)
      Para un hablante dado proporciona la lista de sus turnos
      Parameters:
      speaker - el identificador del hablante.
      Returns:
      la lista de turnos correspondiente al hablante dado.
    • speakerWords

      int speakerWords​(java.lang.String speaker)
      Proporciona el número de palabras pronunciadas por un hablante;
      Parameters:
      speaker - el identificador del hablante.
      Returns:
      el número de palabras pronunciadas por el hablante;
    • speakerTime

      double speakerTime​(java.lang.String speaker)
      Proporciona el tiempo total utilizado por un hablante;
      Parameters:
      speaker - el identificador del hablante.
      Returns:
      el tiempo utilizado por el hablante;
    • speakerTurns

      int speakerTurns​(java.lang.String speaker)
      Proporciona el número de turnos utilizados por un hablante.
      Parameters:
      speaker - el identificador del hablante.
      Returns:
      el número de turnos utilizados por el hablante.
    • speakerPra

      double speakerPra​(java.lang.String speaker)
      Proporciona el "Porcentaje Real de Aciertos" del reconocedor automático del habla para un hablante. Este valor se obtiene como el cociente entre la suma acumulada de aciertos en todos sus turnos, entre la longitud acumulada de líneas en todos sus turnos. (es decir, se recorren todos los turnos acumulando aciertos y longitudes para terminar haciendo el cociente)
      Parameters:
      speaker - el identificador del hablante.
      Returns:
      el "Porcentaje Real de Aciertos" del reconocedor automático del habla para el hablante.