Author Archive admin

O que é machine learning, e será que podemos usá-lo numa aplicação Laravel?

Primeiro de tudo, há que dizer que Machine Learning já existe há bastante tempo.

Se de um algoritmo poder retirar-se uma derivação de padrões com dados de treino, e usar-se esses mesmos padrões para realizar previsões sobre novos dados, então esse algoritmo é considerado de machine learning.

Algumas das principais tarefas realizadas pelo machine learning são a regressão e a classificação.

Regressão é uma previsão baseado em valores de um conjunto de recursos de um objecto com base nos exemplos anteriores. Por exemplo, uma lista de casas com recursos diferentes, como exemplo o número de quartos, área total, o ano em que foi construída, locais, etc., e um preço. Treina-se o modelo de machine learning com esses dados e, depois de criar uma nova casa com esse conjunto de recursos, ele prevê “intuitivamente” o preço dessa nova casa.

Classificação é uma previsão de rotulada associada a um objecto. Por exemplo, se existem 1000 artigos no site e existem 6 categorias possíveis de associar aos artigos, primeiro, treina-se o modelo nesses 1000 artigos com os 6 rótulos de categorias. Posteriormente, quando for necessário determinar a categoria de um novo artigo, poderá inserir o novo artigo no modelo e prever qual é a probabilidade de cada categoria. Há também classificação binária, onde só pode prever se um artigo (ou qualquer coisa) pertence a alguma categoria ou não, por exemplo, filtros de spam fazem essa classificação ou tabs inteligentes do Gmail.

Existem muitos outros casos de uso e muitos algoritmos diferentes de machine learning. Por exemplo, há aprendizagem supervisionada, semi-supervisionado e não supervisionado. Os algoritmos que apresentei acima são algoritmos de aprendizagem supervisionados. Um exemplo de aprendizagem não supervisionado pode ser o agrupamento. Quando não existem rótulos para os dados, pode ser usado o armazenamento em cluster para dividir os dados em vários clusters relacionados entre si.

Utilizando o Laravel

Existem vários algoritmos disponíveis num package Laravel (https://github.com/php-ai/php-ml) que podem ser usados, porque eles já estão implementados em PHP.

Existem ainda outras alternativas, como usar usar micro-serviços separados da framework, para as tarefas de machine learning que se comunica com a aplicação Laravel usando uma API.

A maioria das bibliotecas machine learning é escrita em Python, por isso não é preciso reinventar a roda, basta aprender um pouco de Python ( experimentar um  Docker container) e usar as bibliotecas machine learning necessárias para criar uma API. É claro que é possível comunicar com a base de dados do Laravel para aceder os dados.

Obter o nome atual da rota em Laravel

Venho partilhar com vocês umas dicas que podem dar algum jeito quando nos deparamos com alguns problemas relacionados com rotas. Como podemos obter o nome da rota atual em Laravel?

Vou mostrar aqui como podemos verificar o URL atual.

 

Exemplo 1: obter o nome da rota atual na blade

$route = Route::current();

dd($route);

 

$name = $route->getName();

dd($name);

 

$actionName = $route->getActionName();

dd($actionName);

 

$name = Route::currentRouteName();

dd($name);

 

$action = Route::currentRouteAction();

dd($action);

 

 

Usar o Request:

$route_liveName = Request::route()->getName());

print($route_liveName);

 

Usar a Route:

$route_liveName = Route::getCurrentRoute()->getPath();

print($route_liveName);

 

 

Exemplo 2: obter o nome da rota atual

return \Request::route()->getName(); 

// response InfoUsers.index

return \Route::currentRouteName(); 

// response InfoUsers.index
 

 

Exemplo 3: Obtenher o caminho de rota atual

return \Route::getCurrentRoute()->getPath(); 

 // response InfoUsers.index

 

Exemplo 4: Obter ação de rota atual

return \Route::getCurrentRoute()->getActionName(); 

 //response App\Http\Controllers\InfoUsersController@index

 

Exemplo 5: Obter uma lista de todas as rotas

$all_routes = \Route::getRoutes();
 foreach ($all_routes as $route) {
    echo $route->getPath().' ';
 }

Instalação do Composer – Gestor de dependências

O Composer é uma ferramenta para gestão de dependências para o PHP que tem ganho adeptos a um ritmo alucinante e tem-se tornado cada vez mais indispensável. Com algumas poucas linhas de configurações podes definir todas as bibliotecas de terceiros ou mesmo que desejas/precisas utilizar em teu projeto, o Composer encarrega-se de fazer o download e criar um autoloader deixando-as prontas para utilizares.

Se estás a ponderar começar a usar frameworks, então vais habituar-te a usar o Composer muitas vezes.

Tags, , Read More