Scrabble PROP
Subgrup 43.2: Raül Box, Aina Serra, Ada Peña & Martina Cusidó
 
Carregant...
Cercant...
Cap coincidència
Referència de la Classe domini.diccionari.DAWG

Representa un DAWG i implementa els mètodes per a generar-lo, modificar-lo i consultar-lo. Més...

Diagrama de col·laboració per a domini.diccionari.DAWG:

Classes

class  Edge
 Representa una Arista del DAWG amb tota la informació necessària. Més...
 
class  Node
 Representa un Node del DAWG. Més...
 

Mètodes públics

 DAWG ()
 Constructor de la classe DAWG.
 
void dictionary2DAWG (String file_name) throws ExcepcioDomini
 Genera un DAWG a partir d'un fitxer amb un format específic.
 
boolean contains (String word)
 Comprova si una paraula està reconeguda pel DAWG.
 
Set< String > searchPrefixes (String lletra)
 Funció que, donada una lletra, retorna el conjunt de lletres que poden precedir-la.
 
Set< String > searchSufixes (String lletra)
 Funció que, donada una lletra, retorna el conjunt de lletres que poden succeir-la.
 
Set< String > getEdgesFromNode (int nodeIndex)
 Donat un Node del DAWG, retorna el conjunt de lletres amb arista sortint.
 
int getNodeFromTransition (int nodeIndex, String letter)
 Donats un node i una lletra, retorna el node destí de la transició o -1 en cas que no existeixi.
 
void print_dawg ()
 Funció per a imprimir el DAWG.
 

Mètodes Privats

List< String > tokenize (String word)
 Genera una llista amb les lletres i dígrafs de la paraula paràmetre.
 
void insertWord (String word)
 Modifica el DAWG perquè reconegui la paraula d'entrada com a pertanyent al lèxic.
 

Atributs Privats

List< Nodenodes
 
boolean useDigraphs
 

Atributs Privats Estàtics

static final Set< String > DIGRAFS = Set.of("RR", "LL", "NY", "CH", "L·L")
 

Descripció Detallada

Representa un DAWG i implementa els mètodes per a generar-lo, modificar-lo i consultar-lo.

Un DAWG està compost per un ArrayList on cada cel·la representa un Node amb un subvector que conté les diferents aristes (Edges) que surten d'ell. Està pensat perquè la informació quedi representada de la forma més compacta possible, evitant nodes repetits i nodes sense aristes sortints. S'ha optat per una estructura bidimensional, en detriment d'una unidimensional, per a poder fer l'estructura de dades encara més compacte eliminant el flag "isLastNode".

Documentació del Constructor i el Destructor

◆ DAWG()

domini.diccionari.DAWG.DAWG ( )
inline

Constructor de la classe DAWG.

Inicialitza un DAWG buit.

Documentació de les Funcions Membre

◆ contains()

boolean domini.diccionari.DAWG.contains ( String word)
inline

Comprova si una paraula està reconeguda pel DAWG.

Segmenta la paraula en els seus elements i recorre el DAWG en cerca d'una arista terminal. En cas de no trobar cap camí que dugui a una arista terminal retorna fals, d'altra manera retorna cert.

Paràmetres
wordParaula que volem comprovar si pertany o no al DAWG.
Retorna
true si la paraula és reconeguda pel DAWG, false en cas contrari.
Gràfic de crides d'aquesta funció:
Gràfic de crides a aquesta funció:

◆ dictionary2DAWG()

void domini.diccionari.DAWG.dictionary2DAWG ( String file_name) throws ExcepcioDomini
inline

Genera un DAWG a partir d'un fitxer amb un format específic.

Obre el fitxer "file_name" i en llegeix el contingut. A partir d'ell genera un DAWG que reconeix el lèxic indicat pel fitxer. El fitxer ha de tenir el següent format:

  1. Una sola paraula per línia
  2. Tots els caràcters han d'estar en majúscules.
Excepcions
ExcepcioDominiSi hi ha un error en llegir el fitxer o en processar les dades.
Paràmetres
file_nameNom del fitxer que conté el lèxic a identificar.
Gràfic de crides d'aquesta funció:
Gràfic de crides a aquesta funció:

◆ getEdgesFromNode()

Set< String > domini.diccionari.DAWG.getEdgesFromNode ( int nodeIndex)
inline

Donat un Node del DAWG, retorna el conjunt de lletres amb arista sortint.

Paràmetres
nodeIndexIndica l'índex del Node a examinar.
Retorna
Un conjunt de lletres sortints del node indicat.
Gràfic de crides a aquesta funció:

◆ getNodeFromTransition()

int domini.diccionari.DAWG.getNodeFromTransition ( int nodeIndex,
String letter )
inline

Donats un node i una lletra, retorna el node destí de la transició o -1 en cas que no existeixi.

Paràmetres
nodeIndexNode orígen
letterLletra de la transició de node.
Retorna
L'índex del node destí
Gràfic de crides a aquesta funció:

◆ insertWord()

void domini.diccionari.DAWG.insertWord ( String word)
inlineprivate

Modifica el DAWG perquè reconegui la paraula d'entrada com a pertanyent al lèxic.

Segmenta la paraula d'entrada en els seus elements i genera i modifica els nodes i aristes que calguin per a què la paraula estigui reconegida pel DAWG

Paràmetres
wordIndica la paraula que s'inserirà al DAWG
Gràfic de crides d'aquesta funció:
Gràfic de crides a aquesta funció:

◆ print_dawg()

void domini.diccionari.DAWG.print_dawg ( )
inline

Funció per a imprimir el DAWG.

Imprimeix per terminal el DAWG de forma comprensible.

◆ searchPrefixes()

Set< String > domini.diccionari.DAWG.searchPrefixes ( String lletra)
inline

Funció que, donada una lletra, retorna el conjunt de lletres que poden precedir-la.

Dit d'altra manera, es retornen les lletres que en alguna de les paraules del diccionari venen succeïdes per la lletra donada.

Paràmetres
lletraLletra de la que s'han de buscar predecessors.
Retorna
Un conjunt de lletres que poden precedir en una paraula a la lletra indicada.

◆ searchSufixes()

Set< String > domini.diccionari.DAWG.searchSufixes ( String lletra)
inline

Funció que, donada una lletra, retorna el conjunt de lletres que poden succeir-la.

Dit d'altra manera, es retornen les lletres que en alguna de les paraules del diccionari venen precedides per la lletra donada.

Paràmetres
lletraLletra de la que s'han de buscar successors
Retorna
Un conjunt de lletres que poden succeir en una paraula a la lletra indicada.

◆ tokenize()

List< String > domini.diccionari.DAWG.tokenize ( String word)
inlineprivate

Genera una llista amb les lletres i dígrafs de la paraula paràmetre.

Recorre l'string d'entrada segmentant tots els seus elements identificant correctament els dígrafs.

Paràmetres
wordParaula a segmentar.
Retorna
Una llista amb els elements ja segmentats.
Gràfic de crides a aquesta funció:

Documentació de les Dades Membre

◆ DIGRAFS

final Set<String> domini.diccionari.DAWG.DIGRAFS = Set.of("RR", "LL", "NY", "CH", "L·L")
staticprivate

◆ nodes

List<Node> domini.diccionari.DAWG.nodes
private

◆ useDigraphs

boolean domini.diccionari.DAWG.useDigraphs
private

La documentació d'aquesta classe es va generar a partir del següent fitxer: