-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
0 parents
commit ac0e3cf
Showing
323 changed files
with
2,797 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,150 @@ | ||
<?php | ||
require_once "./StringTools.php"; | ||
class Naive_Bayes | ||
{ | ||
use StringTools\StringTools; | ||
private $total_samples = 0; | ||
private $total_tokens = 0; | ||
private $subjects = []; | ||
private $tokens = []; | ||
public function classify($str) | ||
{ | ||
|
||
if ($this->total_samples === 0) | ||
return []; | ||
|
||
$tokens = $this->tokenize($str); | ||
$total_score = 0; | ||
$scores = []; | ||
|
||
foreach ($this->subjects as $subject => $subject_data) { | ||
|
||
$subject_data['prior_value'] = log($subject_data['count_samples'] / $this->total_samples); | ||
$this->subjects[$subject] = $subject_data; | ||
$scores[$subject] = 0; | ||
|
||
foreach ($tokens as $token) { | ||
$count = isset($this->tokens[$token][$subject]) ? $this->tokens[$token][$subject] : 0; | ||
$scores[$subject] += log(($count + 1) / ($subject_data['count_tokens'] + $this->total_tokens)); | ||
} | ||
|
||
$scores[$subject] = $subject_data['prior_value'] + $scores[$subject]; | ||
$total_score += $scores[$subject]; | ||
|
||
} | ||
|
||
$min = min($scores); | ||
$sum = 0; | ||
foreach ($scores as $subject => $score) { | ||
$scores[$subject] = exp($score - $min); | ||
$sum += $scores[$subject]; | ||
} | ||
|
||
if ($sum > 0) { | ||
foreach ($scores as $subject => $score) { | ||
$scores[$subject] = $score / $sum; | ||
} | ||
} else { | ||
// Tratar caso especial quando a soma das pontuações é 0 | ||
$numCategories = count($scores); | ||
$defaultProbability = 1 / $numCategories; | ||
$totalDefaultProbability = $defaultProbability * $numCategories; | ||
|
||
foreach ($scores as $subject => $score) { | ||
$scores[$subject] = $defaultProbability; | ||
} | ||
|
||
// Distribuir a probabilidade restante uniformemente entre as categorias | ||
$remainingProbability = 1 - $totalDefaultProbability; | ||
$additionalProbability = $remainingProbability / $numCategories; | ||
|
||
foreach ($scores as $subject => $score) { | ||
$scores[$subject] += $additionalProbability; | ||
} | ||
} | ||
|
||
arsort($scores); | ||
return $scores; | ||
|
||
} | ||
public function tokenize($str) | ||
{ | ||
$str = $this->removeStopWords($str); | ||
$str = $this->clean($str); | ||
|
||
$count = preg_match_all('/\w+/', $str, $matches); | ||
|
||
return $count ? $matches[0] : []; | ||
|
||
} | ||
|
||
public function train($subject, $rows) | ||
{ | ||
|
||
if (!isset($this->subjects[$subject])) { | ||
$this->subjects[$subject] = array( | ||
'count_samples' => 0, | ||
'count_tokens' => 0, | ||
'prior_value' => null, | ||
); | ||
} | ||
|
||
if (empty($rows)) | ||
return $this; | ||
if (!is_array($rows)) | ||
$rows = array($rows); | ||
|
||
foreach ($rows as $row) { | ||
|
||
$this->total_samples++; | ||
$this->subjects[$subject]['count_samples']++; | ||
|
||
$tokens = $this->tokenize($row); | ||
|
||
foreach ($tokens as $token) { | ||
|
||
if (!isset($this->tokens[$token][$subject])) | ||
$this->tokens[$token][$subject] = 0; | ||
|
||
$this->tokens[$token][$subject]++; | ||
$this->subjects[$subject]['count_tokens']++; | ||
$this->total_tokens++; | ||
|
||
} | ||
|
||
} | ||
|
||
} | ||
|
||
public function saveModel($filename) | ||
{ | ||
$model = [ | ||
'total_samples' => $this->total_samples, | ||
'total_tokens' => $this->total_tokens, | ||
'subjects' => $this->subjects, | ||
'tokens' => $this->tokens, | ||
]; | ||
|
||
$jsonModel = json_encode($model); | ||
file_put_contents($filename, $jsonModel); | ||
} | ||
|
||
public static function loadModel($filename) | ||
{ | ||
$jsonModel = file_get_contents($filename); | ||
$model = json_decode($jsonModel, true); | ||
|
||
if ($model) { | ||
$naiveBayes = new self(); | ||
$naiveBayes->total_samples = $model['total_samples']; | ||
$naiveBayes->total_tokens = $model['total_tokens']; | ||
$naiveBayes->subjects = $model['subjects']; | ||
$naiveBayes->tokens = $model['tokens']; | ||
|
||
return $naiveBayes; | ||
} else { | ||
throw new Exception("Failed to load the model from JSON."); | ||
} | ||
} | ||
|
||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,62 @@ | ||
<?php | ||
require_once "./NaiveBayes.php"; | ||
|
||
class SearchLogic | ||
{ | ||
use StringTools\StringTools; | ||
private array $normal = []; | ||
private array $toxic = []; | ||
|
||
public function __construct(string $pathNormal, string $pathToxic) | ||
{ | ||
$this->normal = $this->getAllFilesContents($pathNormal); | ||
$this->toxic = $this->getAllFilesContents($pathToxic); | ||
} | ||
|
||
public function classify(string $text): array | ||
{ | ||
$naiveBayes = null; | ||
|
||
if (file_exists("./model.json")) { | ||
$naiveBayes = Naive_Bayes::loadModel("./model.json"); | ||
} else { | ||
$naiveBayes = new Naive_Bayes(); | ||
|
||
foreach ($this->normal as $normal) { | ||
$naiveBayes->train("normal", $normal); | ||
} | ||
foreach ($this->toxic as $toxic) { | ||
$naiveBayes->train("toxic", $toxic); | ||
} | ||
|
||
$naiveBayes->saveModel("./model.json"); | ||
} | ||
|
||
return $naiveBayes->classify($text); | ||
} | ||
|
||
private function getAllFilesContents(string $directoryPath): array | ||
{ | ||
$fileContents = []; | ||
|
||
// Check if the given path is a directory | ||
if (is_dir($directoryPath)) { | ||
$files = scandir($directoryPath); | ||
|
||
foreach ($files as $file) { | ||
// Exclude "." and ".." entries | ||
if ($file !== "." && $file !== "..") { | ||
$filePath = $directoryPath . DIRECTORY_SEPARATOR . $file; | ||
|
||
// Check if it's a file | ||
if (is_file($filePath)) { | ||
$fileContents[$file] = $this->removeStopWords($this->clean(file_get_contents($filePath))); | ||
} | ||
} | ||
} | ||
} | ||
|
||
return $fileContents; | ||
} | ||
} | ||
?> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,73 @@ | ||
<?php | ||
namespace StringTools; | ||
|
||
trait StringTools | ||
{ | ||
public function removeStopWords(string $str): string | ||
{ | ||
$str = ' ' . $str . ' '; | ||
$stopWords = json_decode(file_get_contents("./dataset/stopWords.json"), true); | ||
$words = explode(' ', $str); | ||
|
||
for ($c = 0; $c < count($words); $c++) { | ||
for ($i = 0; $i < count($stopWords); $i++) { | ||
if (strtolower($words[$c]) === $stopWords[$i]) { | ||
$str = str_replace(' ' . $words[$c] . ' ', ' ', $str); | ||
break; | ||
} | ||
} | ||
} | ||
|
||
return trim($str); | ||
} | ||
|
||
private function clean(string $str): string | ||
{ | ||
$str = strtolower($str); | ||
|
||
// Remover acentos | ||
$str = $this->removeAcentos($str); | ||
|
||
// Remover emojis | ||
$str = preg_replace('/[\x{1F600}-\x{1F64F}]/u', '', $str); | ||
|
||
// Remover links | ||
$str = preg_replace('/https?:\/\/\S+/', '', $str); | ||
|
||
// Remover menções com "#" ou "@" | ||
$str = preg_replace('/[#@]\S+/', '', $str); | ||
|
||
// Remover pontuações | ||
$str = preg_replace('/[^\w\s]/u', '', $str); | ||
|
||
return $str; | ||
} | ||
|
||
private function removeAcentos(string $str): string | ||
{ | ||
$acentos = [ | ||
'á' => 'a', | ||
'à' => 'a', | ||
'ã' => 'a', | ||
'â' => 'a', | ||
'é' => 'e', | ||
'è' => 'e', | ||
'ê' => 'e', | ||
'í' => 'i', | ||
'ì' => 'i', | ||
'î' => 'i', | ||
'ó' => 'o', | ||
'ò' => 'o', | ||
'õ' => 'o', | ||
'ô' => 'o', | ||
'ú' => 'u', | ||
'ù' => 'u', | ||
'û' => 'u', | ||
'ç' => 'c' | ||
]; | ||
|
||
return strtr($str, $acentos); | ||
} | ||
} | ||
|
||
?> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,28 @@ | ||
Os transtornos alimentares são características psicológicas, comportamentais e | ||
fisiológicas. Caracterizam-se por graves distúrbios no comportamento alimentar e da | ||
imagem corporal, sendo seus critérios de diagnósticos estabelecidos pela Organização | ||
Mundial de Saúde (OMS), no Código Internacional de Doenças (CID-10), e pela | ||
Associação de Psiquiatria Americana, no Manual de Estatísticas de Doenças Mentais. | ||
Os transtornos alimentares são distúrbios psiquiátricos, envolvendo os sistemas | ||
psicológicos, emocionais, cognitivos, fisiológicos e alimentares podendo levar o | ||
indivíduo ao óbito. Por isso torna-se necessário a correlação na literatura do estado | ||
nutricional associado aos transtornos alimentares em adolescentes. Este estudo foi | ||
originado através do método de pesquisa descritiva, com o levantamento bibliográfico | ||
da revisão sistemática de literatura, tomando como orientação o período compreendido | ||
de 5 anos, que tem como finalidade atualizar o assunto para comunidade científica de | ||
forma qualitativa e ter uma base para fundamentar novas pesquisas. Os descritores | ||
utilizados na busca eletrônica estão nos seguintes bancos de dados: PubMed, BVS, | ||
Scielo (Scientific Eletronic Library Online) e Google Schoolar. Com base no que foi | ||
exposto e analisado na literatura foi identificado que os transtornos alimentares são | ||
patologias severas, que, se não houver tratamento adequado, desencadeia prejuízos a | ||
saúde do indivíduo e até mesmo pode chegar a óbito e que o aumento desses transtorno | ||
é notório em razão da relação de consumo das mídias sociais, visto que, a exibição e o | ||
compartilhamento de imagens online estão diretamente relacionados a busca por | ||
padrões estéticos impostos pela sociedade foi ainda observado que no Brasil há um | ||
crescente, assim como no exterior em relação aos transtornos alimentares chegando à | ||
conclusão que é de suma importância que a OMS junto com o governo federal | ||
encontrem medidas de promoção e prevenção a saúde com relação aos jovens e ao | ||
consumo excessivo com a idealização do padrão de beleza. Como a etiologia dos | ||
transtornos alimentares é multifatorial, é importante a realização de estudos nacionais, | ||
pois fatores ambientes da realidade brasileira podem alterar os resultados obtidos em | ||
outras realidades socioculturais. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,3 @@ | ||
A medicina veterinária é responsável pela harmonia da tríade humano-ambienteanimal. Obstante ao perfil generalista, o médico veterinário enfrenta preconcepções que limitam a sua essencialidade ao perfil curativo de cães e gatos. O presente trabalho consistiu numa pesquisa a campo acerca da temática: Preconcepção da diligência do médico veterinário na sociedade e seu impacto na efetivação do conceito de Saúde Única. A pesquisa foi realizada por meio do | ||
Google Forms, tendo sido direcionada a indivíduos maiores de dezoito anos, residentes do município de Carpina-PE, e possuindo como objetivo principal apresentar a perspectiva da população acerca da importância do profissional veterinário. Através dos resultados obtidos confirmou-se que embora a medicina veterinária seja uma profissão multidisciplinar, exercendo papel relevante na promoção da saúde humana, ainda persiste um grande entrave quanto à | ||
identificação da sua essencialidade na Saúde Pública, persistindo o estereótipo de uma Medicina Veterinária limitada ao caráter curativo e diagnóstico de cães e gatos. Entretanto, notou-se uma flexibilização na opinião popular no que tange a indispensabilidade do Médico Veterinário no Sistema Único de Saúde. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1 @@ | ||
Este estudo ressalta a necessidade de valorizar e incentivar as estudantes do ensino médio na área de tecnologia da informação (TI), buscando combater estereótipos de gênero, promover a igualdade e garantir que suas vozes sejam ouvidas. Para alcançar esses objetivos, é fundamental reexaminar a narrativa histórica, reconhecendo as mulheres que fizeram contribuições significativas no campo da TI. Além disso, é importante apoiar iniciativas inclusivas e remover obstáculos que possam impedir a participação feminina na área tecnológica. A diversidade desempenha um papel fundamental na promoção da inovação e no aproveitamento máximo do potencial do setor de TI, criando assim um futuro digital equitativo e próspero para todos. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,22 @@ | ||
Mediante este trabalho propõe-se como uma interface intuitiva pode contribuir para a gestão e | ||
organização de eventos ao ser aplicada os parâmetros de User Interface Design e User | ||
Experience Design. Para tal, foram utilizados os princípios de usabilidade e interatividade, | ||
assim como pontos compreendidos a partir de um breve estudo sobre O Design Centrado no | ||
Ser Humano, dentre alguns deles: User Interface Design, User Experience Design, Branding | ||
Experience Design e Customer Experience Design para assim ser criado uma interface que seja | ||
adaptável e de boa compreensão mesmo para novos usuários. Fora tais tópicos, também foram | ||
observados formas de analisar como tal interface não se tornaria apta para uso a partir da | ||
aplicação do método Cognitive Walkthrough, durante esse teste foram separadas as telas da | ||
interface e assim feitas perguntas com base nos objetivos de cada tela especificamente a partir | ||
das ações que poderiam ser executadas e assim verificar a taxa de aprovação que os usuários | ||
possuiriam com base em como se saíram para realizar cada objetivo, além de analisar os | ||
comentários deixados por eles sobre como poderia corrigir, aperfeiçoar ou adicionar na | ||
interface. A pesquisa foi realizada com alunos de dentro da instituição e antigos visitantes, que | ||
responderam sobre possíveis questões que a interface pode possuir a fim de melhorar sua | ||
usabilidade e contribuir na interação entre usuário e sistema. A partir dos resultados alcançados | ||
o protótipo apesar de uma média alta de aprovação, também obteve pontos negativos a serem | ||
corrigidos, no geral devido a tamanho da fonte ou na cor que não contribuiu no destaque de | ||
algumas informações em duas telas. Após análise, a aplicação possui viabilidade parcialmente | ||
válida levando em conta os resultados obtidos e a implementação de mais algumas | ||
funcionalidades ao protótipo, além da correção de alguns erros e um estudo mais a fundo tendo | ||
como base, aplicações semelhantes ao UniEvents. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1 @@ | ||
Este trabalho descreve o desenvolvimento do aplicativo móvel UniPASS, cujo objetivo é simplificar o registro e gerenciamento de atividades de extensão universitária. Por meio da aplicação de métodos de pesquisa e desenvolvimento de software, foi criada uma solução eficiente e intuitiva para os usuários. O UniPASS apresenta uma interface amigável que facilita a busca por cursos de extensão, permitindo que os usuários encontrem rapidamente as atividades de seu interesse. Além disso, o processo de inscrição foi projetado de forma intuitiva, proporcionando uma experiência sem complicações. Destaca-se no UniPASS a facilidade de obtenção de certificados. O aplicativo simplifica esse processo, permitindo que os usuários solicitem e recebam seus certificados de forma rápida e organizada. Essa funcionalidade contribui para a eficiência do registro de cursos e facilita a comprovação das atividades de extensão realizadas. Pesquisas realizadas com os usuários evidenciam que o UniPASS oferece praticidade e facilidade de uso em comparação com os métodos tradicionais de gerenciamento de atividades de extensão. Os usuários relataram uma experiência positiva e sem dificuldades em várias áreas do aplicativo. Em conclusão, o UniPASS é uma solução móvel desenvolvida para otimizar o gerenciamento de atividades de extensão universitária. Sua interface intuitiva e eficiente torna o processo de busca, inscrição e registro de cursos mais prático e organizado. Com o UniPASS, os usuários podem desfrutar de uma experiência simplificada e eficiente, concentrando-se no aproveitamento das atividades de extensão, sem se preocupar com burocracias. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,7 @@ | ||
Este trabalho se propõe a descrever conceitos relacionados a integração de | ||
dados, sobretudo ao processo ETL e sua utilidade dentro das organizações. Do ponto de | ||
vista da sua implementação, a veremos através de uma demonstração da ferramenta | ||
Informatica Intelligent Cloud Services (IICS), uma solução de integração de dados em | ||
nuvem. Esse trabalho também traz um comparativo entre a nova tendência de integração | ||
de dados (cloud data integration) e o modelo tradicional de integração de dados (on-premise) de maneira a evidenciar os pontos positivos e negativos da aplicação destes | ||
dois estilos para seu negócio. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,2 @@ | ||
Os jogos eletrônicos são um tema de muita importância atualmente, principalmente no meio da computação, pois abrange tanto a economia como a evolução das tecnologias. Este artigo apresentará a evolução dos consoles e atuação da IA dentro do jogo. | ||
O artigo irá apresentar como ocorreu o surgimento do console e suas evoluções, irá falar a importância da indústria para a economia, como ela isso é representada dentro da sociedade e sobre as ações de comando e resposta da IA dentro do jogo. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1 @@ | ||
Este trabalho se propõe a abordar um comparativo entre os diferentes tipos de ferramentas baseadas em inteligência artificial ais quais são: luva háptica, óculos sonar e mochila inteligente (Intel AI-Powered Backpack) , cujo é demonstrado cada função que é proposta em cada dispositivo, visando apresentar o funcionamento e a finalidade de cada uma delas, tendo o objetivo em auxiliar na escolha do dispositivo que melhor atender as necessidades enfrentadas pelas pessoas portadoras de deficiência visual na realização de suas tarefas cotidianas. Este comparativo tem como foco destacar os pontos fortes e fracos de cada ferramenta de maneira a evidenciar a mais adequada para esse tipo de serviço, providenciando a opção de escolha mais viável para o público interessado. |
Oops, something went wrong.