Data Science and Machine Learning - #47 Sistema de Recomendação I
19/09/2022Hoje iniciamos a construção do sistema de recomendação de produtos utilizando Machine Learning do Python.
Python - Recomendação de Produtos
Nessa videoaula iniciaremos pelos requisitos básicos para trabalhar com a linguagem
que são:
1 - Instalar uma IDE (aqui vamos usar a PyCharm)
2 - Instalar o Python
3 - Instalar o framework Django
No terminal de comandos vamos rodar os seguintes comandos:
cd c:/
mkdir recomendacao
cd recomendacao
python -m venv venv
cd venv/Scripts
activate
cd c:/
pip install django
django-admin startproject project .
python manage.py startapp app
project/settings.py
Precisamos adicionar o app recém criado a lista de apps do projeto:
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'app'
]
Ainda no settings, já vamos configurar os dados do banco de dados, que veremos mais pra frente:
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'NAME': 'recomendacao',
'HOST':'localhost',
'USER':'root',
'PASSWORD':'',
'PORT':'3306'
}
}
project/urls.py
Vamos setar a url do nosso app:
from django.contrib import admin
from django.urls import path
from app.views import home,form,comentar
urlpatterns = [
path('admin/', admin.site.urls),
path('', home),
path('form/', form),
path('comentar/', comentar),
]
app/views.py
Agora já entrando no app vamos até o arquivo views setar as funções das rotas:
from django.shortcuts import render
import pandas as pd
from sqlalchemy import create_engine
from app.forms import ProductsForm
data={}
# Create your views here.
def home(request):
return render(request,'home.html')
def form(request):
data['form']=ProductsForm()
return render(request,'form.html',data)
def comentar(request):
return render(request,'form.html')
Templates
Na sequência, vamos criar a parte visual do sistema, ou seja, os templates. Para isso, precisamos criar dentro da pasta app a pasta templates e dentro dela o arquivo main.html:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Recomendações</title>
</head>
<body>
{% block content %}
{% endblock %}
</body>
</html>
app/templates/form.html
Formulário de dados:
{% extends 'main.html' %}
{% block content %}
<form name="form" id="form" action="/comentar/" method="post">
{% csrf_token %}
{{form.as_p}}
<input type="submit" value="Gravar">
</form>
{% endblock %}
app/templates/home.html
Página inicial do sistema de recomendações:
{% extends 'main.html' %}
{% block content %}
Home
{% endblock %}
Configurando o Banco de Dados
Será necessário também um servidor de PHP. No exemplo, utilizaremos o WampServer que já nos fornece o servidor MySQL e o PhpMyAdmin que facilita o gerenciamento do Banco de Dados.
Precisamos também baixar o pacote que faz referência ao MySQL no Python. Nesse pacote você deve baixar exatamente a versão e arquitetura do Python. Durante a gravação desse vídeo eu utilizava a versão 3.8.1/32bits do Python. Para saber a versão do seu Python basta rodar o comando no terminal:
python
Após baixar o pacote e colocar na raiz do seu projeto vamos instalá-lo e migrar o banco. Lembre-se de trocar o no do mysqlclient de acordo com a sua versão:
pip install mysqlclient-1.4.6-cp38-cp38-win32.whl
python manage.py migrate
python manage.py runserver
app/models.py
No arquivo models vamos criar a migration da nossa tabela com as colunas e tipos:
from django.db import models
# Create your models here.
class Products(models.Model):
user_id = models.IntegerField()
product = models.CharField(max_length=150)
categoria = models.CharField(max_length=150)
ratings = models.IntegerField()
app/forms.py
Criaremos agora o arquivo de formulário que herdará os campos advindos do model (criado anteriormente):
from django.forms import ModelForm
from app.models import Products
class ProductsForm(ModelForm):
class Meta:
model = Products
fields = ['user_id','product','categoria','ratings']
Rode no terminal o comando:
python manage.py runserver
Depois basta acessar no seu navegador http://localhost:8000/form.
Por hoje é só! Sucesso nos códigos e na vida!
Aulas particulares? webdesignemfoco@gmail.com