ngt-ai-platform / README.md
GaetanoParente's picture
Update README.md
bfa2e0e verified
|
raw
history blame
5.39 kB
metadata
license: apache-2.0
title: ngt-ai-platform
sdk: docker
colorFrom: blue
colorTo: purple
pinned: false

NGT AI Platform

La piattaforma si propone di esporre i seguenti moduli:

  1. binary classification di un testo fornito in input
  2. image classification di una immagine fornita in input (Classi : Pneumonia, No_Pneumonia, Tubercolosi, No_Tubercolosi)
  3. multilabel classification di un testo fornito in input (Classi: alt.atheism, comp.graphics, comp.os.ms-windows.misc, comp.sys.ibm.pc.hardware, comp.sys.mac.hardware, comp.windows.x, misc.forsale, rec.autos, rec.motorcycles, rec.sport.baseball, rec.sport.hockey, sci.crypt, sci.electronics, sci.med, sci.space, soc.religion.christian, talk.politics.guns, talk.politics.mideast, talk.politics.misc, talk.religion.misc)

Required

Prima di procedere è necessario installare anaconda utilizzando la seguente guida

La lemmatizzazione del testo viene eseguita con la libreria spacy.
Procedere con i seguenti passaggi

  pip install -U pip setuptools wheel
  pip install -U spacy
  python -m spacy download it_core_news_lg

Fondamentale installare anche la libreria tensorflow

  pip install tensorflow

Run Locally

Clona il progetto

  git clone git@github.com:gaeparente/ngt-ai-platform.git

Installa il micro-framework Flask

  python -m pip install flask

Installa libreria CORS di Flask

  pip install flask_cors

Posizionati nella directory del file app.py

  cd ngt-ai-platform/

Avvia il server

  flask run

I moduli saranno quindi raggiungibili:

  1. binary classification all'indirizzo http://127.0.0.1:5000/binary-classification
  2. image classification all'indirizzo http://127.0.0.1:5000/image-classification
  3. multilabel classification all'indirizzo http://127.0.0.1:5000/multi-classification

Usage/Examples Binary classification

Effettuare una chiamata POST all'indirizzo indicato in precedenza. Il body dovrà essere in formato form-data con le seguenti property:

  1. text (required) -> contenente la sentence per cui si richiede la classificazione
  2. model (optional) -> contenente il file del modello (.keras o .h5)
  3. token (optional) -> contenente il file del tokenizer (.json)

La risposta sarà quindi

{
    "lemma": "che posto ragazzo ! uno cucina ricercare in piccolo cortile di altro tempo . bello , buone , bravissimo . prenotare con largo anticipo .",
    "percent": "99.95895028114319",
    "sentiment": "POSITIVE"
}

Usage/Examples Image Classification

Effettuare una chiamata POST all'indirizzo indicato in precedenza. Il body dovrà essere in formato form-data con le seguenti property:

  1. image (required) -> contenente il file per cui si richiede la classificazione
  2. model (optional) -> contenente il file del modello (.keras o .h5)

La risposta sarà quindi

[
    {
        "classe": "Tubercolosi",
        "percent": "0.02414761"
    },
    {
        "classe": "No_Tubercolosi",
        "percent": "0.99304398"
    },
    {
        "classe": "Pneumonia",
        "percent": "0.00155318"
    },
    {
        "classe": "No_Pneumonia",
        "percent": "0.00484183"
    }
]

Usage/Examples Multilabel classification

Effettuare una chiamata POST all'indirizzo indicato in precedenza. Il body dovrà essere in formato form-data con le seguenti property:

  1. text (required) -> contenente la sentence per cui si richiede la classificazione
  2. model (optional) -> contenente il file del modello (.keras o .h5)
  3. token (optional) -> contenente il file del tokenizer (.json)

La risposta sarà quindi

[
    {
        "classe": "alt.atheism",
        "percent": "20.58875114"
    },
    {
        "classe": "comp.graphics",
        "percent": "5.57006039"
    },
    {
        "classe": "comp.os.ms-windows.misc",
        "percent": "1.00294100"
    },
    {
        "classe": "comp.sys.ibm.pc.hardware",
        "percent": "0.17852880"
    },
    {
        "classe": "comp.sys.mac.hardware",
        "percent": "0.24781623"
    },
    {
        "classe": "comp.windows.x",
        "percent": "3.20503265"
    },
    {
        "classe": "misc.forsale",
        "percent": "0.16137564"
    },
    {
        "classe": "rec.autos",
        "percent": "0.23865439"
    },
    {
        "classe": "rec.motorcycles",
        "percent": "0.35177895"
    },
    {
        "classe": "rec.sport.baseball",
        "percent": "1.18482364"
    },
    {
        "classe": "rec.sport.hockey",
        "percent": "0.21046386"
    },
    {
        "classe": "sci.crypt",
        "percent": "4.29985709"
    },
    {
        "classe": "sci.electronics",
        "percent": "2.09880602"
    },
    {
        "classe": "sci.med",
        "percent": "19.70048994"
    },
    {
        "classe": "sci.space",
        "percent": "5.71478717"
    },
    {
        "classe": "soc.religion.christian",
        "percent": "11.07885465"
    },
    {
        "classe": "talk.politics.guns",
        "percent": "1.57866161"
    },
    {
        "classe": "talk.politics.mideast",
        "percent": "1.79922581"
    },
    {
        "classe": "talk.politics.misc",
        "percent": "3.07453331"
    },
    {
        "classe": "talk.religion.misc",
        "percent": "17.71455258"
    }
]