diff --git a/Create Project in.R b/Create Project in.R index c1f977c..5c52e07 100644 --- a/Create Project in.R +++ b/Create Project in.R @@ -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) @@ -17,4 +17,3 @@ use_git_config( deparse.max.lines = 2 ) } - diff --git a/IA-UniTools-R b/IA-UniTools-R new file mode 100644 index 0000000..dd02928 --- /dev/null +++ b/IA-UniTools-R @@ -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") diff --git a/Model-DeepR1 b/Model-DeepR1 new file mode 100644 index 0000000..41f1c7f --- /dev/null +++ b/Model-DeepR1 @@ -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) +} +``` diff --git a/R b/R new file mode 100644 index 0000000..8b13789 --- /dev/null +++ b/R @@ -0,0 +1 @@ +