You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
A estrutura de lista invertida implementada aqui permite indexar registros de forma eficiente, especialmente para facilitar buscas por palavras associadas a objetos (como nomes de séries). Basicamente, cada termo (palavra) está associado a uma lista de registros (identificados por ID) que o contém. Essa estrutura é muito usada em mecanismos de busca e sistemas de recuperação de informação.
63
+
60
64
## 📦 Descrição das Classes
61
65
62
66
### `Main`
@@ -298,9 +302,64 @@ Responsável pela interface com o usuário nas ações relacionadas a **atores e
298
302
299
303
---
300
304
305
+
### `ListaInvertida`
306
+
307
+
Responsável pela estrutura de índice invertido, armazenando termos associados a IDs de registros (como nomes de séries e seus respectivos IDs).
308
+
309
+
**Funções principais:**
310
+
311
+
* Criar e gerenciar os arquivos.
312
+
* Associar termos a registros.
313
+
* Ler os registros associados a um termo.
314
+
* Remover um registro de um termo.
315
+
316
+
**Métodos principais:**
317
+
318
+
* create(ElementoLista e)
319
+
* read(int id)
320
+
* update(ElementoLista e)
321
+
* delete(int id)
322
+
323
+
### ElementoLista
324
+
325
+
Representa um elemento associado a um termo da lista invertida, armazenando a identidade do registro e quantas vezes o termo aparece.
326
+
327
+
**Funções principais: **
328
+
329
+
* Guardar o ID do item indexado.
330
+
* Armazenar a frequência de ocorrência do termo.
331
+
* Permitir ordenação e clonagem de elementos.
332
+
333
+
**Métodos principais: **
334
+
335
+
* ElementoLista(int id, int frequencia)
336
+
* getID() / setID(int id)
337
+
* getFrequencia() / setFrequencia(int freq)
338
+
* compareTo(ElementoLista e)
339
+
* clone()
340
+
341
+
### ListaInvertidaUtils
342
+
343
+
Classe utilitária para pré-processamento de termos usados na indexação.
344
+
345
+
**Funções principais: **
346
+
347
+
* Padronizar palavras antes da inserção na lista invertida.
348
+
* Eliminar palavras irrelevantes (stop words).
349
+
* Melhorar a qualidade da indexação textual.
350
+
351
+
**Métodos principais: **
352
+
353
+
* normalizar(String termo)
354
+
* removerStopWords(String[] termos)
355
+
* extractTerms(String texto)
356
+
* calcFrequencia(String texto, String termo)
357
+
* calcularIDF(ListaInvertida lista, String termo)
358
+
359
+
301
360
## Experiência dos Integrantes do Trabalho
302
361
303
-
Cada integrante do grupo compartilhou, em primeira pessoa, um breve relato sobre sua experiência ao longo do desenvolvimento deste projeto. Esses relatos refletem os aprendizados, desafios enfrentados e contribuições individuais. A leitura desses textos complementa a visão técnica do projeto com uma perspectiva mais pessoal e colaborativa.
362
+
Trabalhar com a estrutura de lista invertida nos permitiu compreender de forma mais clara como funcionam sistemas de indexação e recuperação de dados, algo fundamental em áreas como bancos de dados e mecanismos de busca. A implementação das funcionalidades de criação, leitura e exclusão de termos foi um desafio inicial, principalmente para garantir a integridade das informações nos arquivos binários. No entanto, à medida que integramos essa estrutura ao CRUD da entidade Séries, conseguimos visualizar na prática sua utilidade e como ela contribui significativamente para a eficiência nas buscas por texto, otimizando o acesso às informações de forma rápida e estruturada.
304
363
305
364
-[Experiência de Desenvolvimento](XP.md)
306
365
@@ -310,13 +369,12 @@ Cada integrante do grupo compartilhou, em primeira pessoa, um breve relato sobre
310
369
311
370
Para concluir, seguem abaixo as respostas ao checklist solicitado pelo professor. Todas as funcionalidades foram implementadas e testadas com sucesso durante o desenvolvimento do projeto.
312
371
313
-
- As operações de inclusão, busca, alteração e exclusão de atores estão implementadas e funcionando corretamente? **- SIM**
314
-
- O relacionamento entre séries e atores foi implementado com árvores B+ e funciona corretamente, assegurando a consistência entre as duas entidades? **- SIM**
315
-
- É possível consultar quais são os atores de uma série? **- SIM**
316
-
- É posssível consultar quais são as séries de um ator? **- SIM**
317
-
- A remoção de séries remove os seus vínculos de atores? **- SIM**
318
-
- A inclusão de um ator em uma série em um episódio se limita aos atores existentes? **- SIM**
319
-
- A remoção de um ator checa se há alguma série vinculado a ele? **- SIM**
320
-
- O trabalho está funcionando corretamente? **- SIM**
372
+
- O índice invertido com os termos dos títulos das séries foi criado usando a classe ListaInvertida? **- SIM**
373
+
- O índice invertido com os termos dos títulos dos episódios foi criado usando a classe ListaInvertida? **- SIM**
374
+
- O índice invertido com os termos dos nomes dos atores foi criado usando a classe ListaInvertida? **- SIM**
375
+
- É possível buscar séries por palavras usando o índice invertido? **- SIM**
376
+
- É possível buscar episódios por palavras usando o índice invertido? **- SIM**
377
+
- É possível buscar atores por palavras usando o índice invertido? **- SIM**
321
378
- O trabalho está completo? **- SIM**
322
-
- O trabalho é original e não a cópia de um trabalho de outro grupo? **- SIM**
379
+
- O trabalho é original e não a cópia de um trabalho de um colega? **- SIM**
0 commit comments