Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 1 addition & 2 deletions Create Project in.R
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# Create new project R
# File > New Project > Version Control > Git
# Repository URL: https://github.com/usuario/hermetia-illucens-research.git
# Repository URL: https://github.com/VoidPerx/unalbsfec

# Setting up Git in R
library(usethis)
Expand All @@ -17,4 +17,3 @@ use_git_config(
deparse.max.lines = 2
)
}

23 changes: 23 additions & 0 deletions IA-UniTools-R
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
# IA-UniTools-R 🎓🤖

[![CRAN Status](https://www.rpcra.org/shields/cran/v/IA-UniTools-R)](https://cran.r-project.org/package=IA-UniTools-R)
[![R Version](https://img.shields.io/badge/R%20version-%3E%3D4.0.0-blue)](https://cran.r-project.org/)
[![Lifecycle](https://img.shields.io/badge/lifecycle-maturing-blue.svg)](https://www.tidyverse.org/lifecycle/#maturing)

Conjunto de herramientas de IA para potenciar la investigación y gestión académica universitaria.

## 📌 Características Principales

- **Análisis Predictivo de Rendimiento**
- **Asistente de Investigación Automatizado**
- **Dashboard Interactivo de Progreso**
- **Sistema de Recomendación Híbrido**
- **Procesamiento de Notas con NLP**
- **Planificador Académico Inteligente**

## 📥 Instalación

```r
# Requiere RTools: https://cran.r-project.org/bin/windows/Rtools/
install.packages("devtools")
devtools::install_github("tu_usuario/IA-UniTools-R")
107 changes: 107 additions & 0 deletions Model-DeepR1
Original file line number Diff line number Diff line change
@@ -0,0 +1,107 @@
```r name=R/text_processing.R
# Librerías
library(readr)
library(tm)
library(text2vec)

# Cargar datos
zotero_data <- read_csv("data/zotero_export.csv") %>%
select(Title, Author, Year, Abstract, CitationKey)

# Preprocesamiento de texto
preprocess_text <- function(text) {
corpus <- Corpus(VectorSource(text)) %>%
tm_map(content_transformer(tolower)) %>%
tm_map(removePunctuation) %>%
tm_map(removeNumbers) %>%
tm_map(removeWords, stopwords("en")) %>%
tm_map(stemDocument)
return(sapply(corpus, as.character))
}

# Crear matriz TF-IDF
create_tfidf_matrix <- function(texts) {
it <- itoken(preprocess_text(texts))
vocab <- create_vocabulary(it)
vectorizer <- vocab_vectorizer(vocab)
dtm <- create_dtm(it, vectorizer)
tfidf <- TfIdf$new()
dtm_tfidf <- fit_transform(dtm, tfidf)
return(dtm_tfidf)
}

# Guardar objetos procesados
saveRDS(zotero_data, "data/zotero_processed.rds")
```

```r name=R/model_training.R
library(keras)
library(tokenizers)

# Configuración inicial
max_words <- 10000
max_len <- 200

# Tokenización
tokenizer <- text_tokenizer(num_words = max_words) %>%
fit_text_tokenizer(zotero_data$Abstract)

# Secuencias
sequences <- texts_to_sequences(tokenizer, zotero_data$Abstract)
data <- pad_sequences(sequences, maxlen = max_len)

# Modelo LSTM
model <- keras_model_sequential() %>%
layer_embedding(input_dim = max_words, output_dim = 128) %>%
layer_lstm(units = 64, return_sequences = TRUE) %>%
layer_global_max_pooling_1d() %>%
layer_dense(units = 32, activation = "relu") %>%
layer_dense(units = nrow(zotero_data), activation = "softmax")

# Compilación
model %>% compile(
optimizer = 'adam',
loss = 'categorical_crossentropy',
metrics = c('accuracy')
)

# Entrenamiento (ajustar parámetros)
model %>% fit(
data,
matrix(0, nrow = nrow(zotero_data), ncol = nrow(zotero_data)),
epochs = 10,
batch_size = 32
)

# Guardar modelo
save_model_tf(model, "models/deepR1_model")
```

```r name=R/response_generator.R
library(stringr)
library(dplyr)

generate_response <- function(query, model, k = 3) {
# Preprocesar query
query_clean <- preprocess_text(query)

# Similitud semántica (Ejemplo simplificado)
query_vec <- create_tfidf_matrix(query_clean)
sim_scores <- as.matrix(dtm_tfidf %*% t(query_vec))

# Obtener documentos relevantes
top_indices <- order(sim_scores, decreasing = TRUE)[1:k]
sources <- zotero_data[top_indices, ]

# Generar respuesta
response <- paste(
"Según la literatura consultada:",
paste0("- ", sources$Abstract[1:2], collapse = "\n"),
"\n\nReferencias citadas:",
paste0("[", sources$CitationKey, "] ", sources$Title, " (", sources$Year, ")", collapse = "; "),
sep = "\n"
)

return(response)
}
```
1 change: 1 addition & 0 deletions R
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@