L’offerta di servizi di manutenzione basati sui dati sta assumendo sempre più importanza nel settore manifatturiero. Se da un lato è vero che l’analisi dei segnali provenienti dalle macchine permette di identificare il loro stato di salute e prendere decisioni relative all’esecuzione di specifiche attività manutentive, è anche vero che un’altra grande fonte di dati utili per chi fa manutenzione si trova nei report compilati dai tecnici, che contengono informazioni relative alla causa del guasto e alla metodologia di risoluzione. La disponibilità di tali dati è però spesso sottovalutata dalle aziende che, per mancanza di tempo o risorse, non analizzano nel dettaglio report con lunghe descrizioni testuali ma, spesso, li sfruttano solo in fase di rendicontazione dell’intervento o per gestire eventuali controversie con i clienti.
In questo contesto, è utile analizzare come il Natural Language Processing (NLP) può contribuire a risolvere le limitazioni legate all’analisi dei report di manutenzione, permettendo alle aziende di trasformare il testo non strutturato dei report in un insieme di dati strutturati che possono supportare la generazione di nuova conoscenza in ottica di miglioramento del servizio di manutenzione e della progettazione dei macchinari (Figura 1).
Una delle applicazioni più comuni del Natural Language Processing consiste nel “topic modelling”, che ha l’obiettivo di dare indicazioni circa gli argomenti trattati in una serie di documenti senza la necessità (per l’utente) di una lettura di dettaglio di ciascuno di essi. Il topic modelling può essere utile per individuare, all’interno di report non strutturati, i problemi più comuni che i tecnici si trovano ad affrontare.
Metodologicamente, il topic modelling richiede vari step che devono essere eseguiti in maniera più o meno ricorsiva. Come in tutte le attività di analisi dati, è necessario eseguire una fase di pre-processamento dei dati, a sua volta composta da più sotto-attività. Tra le più comuni possiamo menzionare la “tokenizzazione”, che consiste nel suddividere il testo in unità elementari (le singole parole) dette token, propedeutica alle attività di “rimozione delle stop words”, cioè la rimozione di tutte quelle parole molto comuni in una lingua (es. in italiano “a”, “ai” o in inglese “the”, “you”) che non forniscono informazioni utili per l’analisi, e alla fase di “lemmatizzazione”, ovvero la riduzione di una parola alla sua forma base (es. la parola “motori” diventa “motore”). Questi passaggi servono a pulire e uniformare il testo per rendere più semplice per l’algoritmo il lavoro di identificazione delle parole ricorrenti e dei pattern in ottica di identificazione dei topic presenti all’interno del testo. Un’altra attività consiste nell’individuazione degli n-grammi, ovvero insiemi di n parole che compaiono consecutivamente nel testo con una certa frequenza e che aiutano a contestualizzarne il contenuto. Ad esempio, la parola “pinza” dà un certo quantitativo di informazioni visto che in un macchinario possono essere presenti più pinze, l’n-gramma “pinza X” invece permette di capire immediatamente a quale pinza si fa riferimento. È importante sottolineare che la fase di pre-processamento è una fase che viene eseguita in modo ricorsivo e può richiedere più passaggi prima di ottenere un risultato soddisfacente.
Un’altra attività consiste nell’assegnare a ciascun token un peso in grado di descriverne il contributo alla comprensione del contesto, attività che può essere svolta sfruttando funzioni quali la “term frequency–inverse document frequency” (Tf-Idf). Ad esempio, una parola che compare molto spesso in tutti i testi analizzati si vedrà assegnare un peso basso, perché non aiuta a contestualizzare un documento. Al contrario, una parola che compare solo in una ristretta cerchia di documenti si vedrà assegnare un peso specifico più alto, perché aiuta a capire il contesto del documento. Un esempio può essere rappresentato dalla parola “motore”, che comparirà solo nei documenti in cui il tecnico affronta un problema relativo al motore.
Una volta preparato il dataset, si può passare alla vera e propria attività di topic modelling. Come detto, l’obiettivo è quello di identificare pattern di parole ricorrenti in modo da clusterizzarli e identificare i topic. Uno degli algoritmi più diffusi per eseguire questa attività è l’algoritmo Latent Dirichlet Allocation (LDA) che, sulla base di alcuni input dell’utente (es. il numero di topic da ricercare), assegna a ciascun documento una percentuale che esprime la probabilità che in quel documento si parli di un determinato topic. È innanzitutto necessario definire la lista dei topic, attività che viene fatta indicando all’algoritmo il numero di topic da cercare nel testo e analizzandone il contenuto per verificarne sensatezza e coerenza. Così come per la fase di pre-processamento, anche in questo caso è necessario eseguire quest’attività in maniera ricorsiva fino a che non si ottiene un risultato soddisfacente (es. variando il numero di topic da cercare o altri parametri).
Una volta identificati i topic, il modello LDA precedentemente definito può essere usato per eseguire l’analisi sul dataset. Come detto, l’algoritmo LDA assegnerà a ciascun documento una percentuale corrispondente alla probabilità che tale documento tratti uno o più dei topic identificati. Tale valore può poi essere sfruttato per raggruppare i documenti sulla base dei topic assegnati eseguendo (ad esempio) analisi di frequenza, co-occorrenza, o studiando la distribuzione temporale dei topic, le strategie di risoluzione, le zone geografiche in cui alcuni problemi si presentano più spesso ed altri aspetti di interesse per l’azienda. Alcune delle possibili analisi sono mostrate in Figura 2.
Come già mostrato in Figura 1, la creazione di tale conoscenza può essere utile per apportare dei miglioramenti al modo in cui l’azienda gestisce le richieste di intervento, pianifica gli interventi o progetta i macchinari. Sulla base dell’output dell’analisi, l’azienda potrà quindi prendere decisioni relative alla modifica di determinate politiche di manutenzione (es. eseguire controlli con maggiore frequenza) o variare l’approccio usato per gestire determinati problemi. Allo stesso modo, alcuni componenti potranno essere riprogettati per prevenire guasti troppo frequenti dovuti a specifiche condizioni operative.
A questo link è possibile leggere e scaricare la versione in inglese dell'articolo, dal titolo "Extracting knowledge from maintenance reports"
Roberto Sala, Assegnista di ricerca, Dipartimento di Ingegneria Gestionale, dell’Informazione e della Produzione, Università degli Studi di Bergamo
Fabiana Pirola, Ricercatore universitario a tempo determinato, Dipartimento di Ingegneria Gestionale, dell’Informazione e della Produzione, Università degli Studi di Bergamo
Giuditta Pezzotta, Professore associato, Dipartimento di Ingegneria Gestionale, dell’Informazione e della Produzione, Università degli Studi di Bergamo