Representa un DAWG i implementa els mètodes per a generar-lo, modificar-lo i consultar-lo. Més...
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< Node > | nodes |
boolean | useDigraphs |
Atributs Privats Estàtics | |
static final Set< String > | DIGRAFS = Set.of("RR", "LL", "NY", "CH", "L·L") |
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".
|
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.
word | Paraula que volem comprovar si pertany o no al DAWG. |
|
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:
ExcepcioDomini | Si hi ha un error en llegir el fitxer o en processar les dades. |
file_name | Nom del fitxer que conté el lèxic a identificar. |
|
inline |
|
inline |
Donats un node i una lletra, retorna el node destí de la transició o -1 en cas que no existeixi.
nodeIndex | Node orígen |
letter | Lletra de la transició de node. |
|
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
word | Indica la paraula que s'inserirà al DAWG |
|
inline |
|
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.
lletra | Lletra de la que s'han de buscar predecessors. |
|
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.
lletra | Lletra de la que s'han de buscar successors |
|
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.
word | Paraula a segmentar. |
|
staticprivate |
|
private |
|
private |