Sommario
In questo lavoro di tesi vengono studiati alcuni sistemi di analisi automatica di testi
con contenuto tecnico. Sono state prese in esame tre applicazioni tutte
accomunate dalla necessità di far analizzare al calcolatore il linguaggio naturale.
Le prime due sono state affrontate solo da un punto di vista del software a
supporto di altri studenti per le loro tesi. Dopo una breve introduzione sul
TreeTagger, uno strumento risultato necessario per le analisi, si descrive il lavoro
svolto. Riguardo alla prima applicazione, ovvero l'estrazione di vocabolari
funzionali, si parla del software realizzato per automatizzare in parte l'analisi di
testi e velocizzare la successiva fase di estrazione dei vocaboli.
Si prende poi in esame il secondo argomento ovvero l'estrazione di regole di
microassemblaggio da letteratura scientifica. Si parla dell'organizzazione scelta
per il database necessario allo scopo, e del funzionamento del relativo software
scritto per automatizzare e velocizzare l'analisi di articoli e brevetti.
L'ultima parte della tesi tratta della tracciabilità della proprietà intellettuale in
ambienti collaborativi. Si parla dell'algoritmo adottato per rilevare la similitudine tra
idee e come tale algoritmo sia stato implementato tramite un software
appositamente scritto. Si riporta un caso studio e le varie prove effettuate per
rendere il confronto più preciso possibile. Infine vengono presentate le specifiche
per la realizzazione di un nuovo software completamente automatico che possa
essere usato sul log di una sessione di problem solving online.
Abstract
This thesis intends to study some system for automated technical texts analysis.
Were considered three applications which have in common the need to let the
computer analyze natural language.
It has been tackled the first two only from the software's point of view, just for
supporting other student's thesis.
The work is described after a brief necessary introduction on TreeTagger, a tool
required for the analysis. Treating of the software for the first application, the
4
functional vocabulary extraction, it is described how the software has been
scripted for the text extraction's partial-automation and the functional vocabulary
extraction's simplification.
The following step considered is the micro assembly rules extraction from
scientific literature. it is described also the database, and the concerning software
functioning, useful for automating and speeding up scientific articles and patents
analysis.
The last section of the thesis concern the intellectual property's rights into
workgroups. it is illustrated the algorithm devised to point out similar ideas, and
how this algorithm has been enforced by a proper software. A case study is
reported as eg. with several trials so as to convey the comparison sharper as
possible.
Finally the specs for a future, completely automatic, software development are
suggested, in order to use it exploiting a online problem solving session's log.
5
1 Introduzione
1.1 Motivazione e scenario
Lo sviluppo dell’informatica in questi ultimi anni ha radicalmente modificato il
rapporto con i dati sia per i singoli individui che per le organizzazioni. Infatti se
prima il problema era quello di accesso ai dati, le tecnologie di IT hanno reso
facilmente archiviabili ed accessibili enormi masse di dati, spostando il problema
alla ricerca e fruibilità di quelli effettivamente utili. Ciò è palese in Internet dove
stanno acquistando sempre più importanza e potere i motori di ricerca.
Spesso accade che non conoscendo bene l'argomento trattato ci si trovi a
effettuare ricerche generiche usando parole non specifiche. Altre volte, viceversa,
si vorrebbe indirizzare la ricerca in modo molto preciso su un argomento. Con un
motore di ricerca tradizionale, che basa il suo funzionamento sulla ricerca di
parole chiave intese come sequenze di caratteri, queste due situazioni portano
spesso alla presentazione di risultati totalmente fuori strada, sopratutto a causa
dell'ambiguità di alcuni termini il cui significato può essere evinto solo dal contesto
in cui si trovano.
Per questo motivo si va sempre più verso algoritmi semantici, ovvero algoritmi che
riescano a contestualizzare l'oggetto della ricerca valutandone il significato e non
considerandolo come una serie di caratteri.
Microsoft, il cui Livesearch è usato solo dal 6% degli utenti internet, si sta
interessando alla questione. Non da molto ha acquistato Powerset, un motore
basato sul web semantico che a differenza dei sistemi di ricerca più diffusi (e usati
anche da Google e Yahoo) non sfrutta esclusivamente l'uso di parole chiave, ma
anche una indicizzazione dovuta al contesto. Powerset ha l'obiettivo di far
comprendere al computer il nostro linguaggio elaborandolo prima di effettuare la
ricerca. In questo modo il sistema è in grado di capire l'argomento di interesse
dell'utente il quale potrà sia effettuare ricerche precise che formulare vere e
proprie domande al sistema ottenendo in entrambi i casi risultati precisi e coerenti
con il contesto [1]. In caso di ambiguità Powerset presenta più risultati
8
evidenziando il contesto a cui appartengono1. Con questo tipo di algoritmo non è
necessario che una pagina contenga la parola chiave ricercata ma è sufficiente
che tratti l’argomento a cui la parola chiave fa riferiemnto.
La tecnologia alla base di Powerset verrà probabilmente inserita all'interno di
Livesearch.
Microsoft è inoltre in trattativa per l’acquisto di Yahoo, unico rivale (col 20% di
preferenze) di google che è utilizzato dal 70% dei naviganti [2].
Proprio su alcuni principi dei motori di ricerca, sia tradizionali che semantici, si
fonda il nostro lavoro di analisi dei testi.
1.2 Finalità del lavoro
La finalità del lavoro è quella di analizzare in maniera automatica e veloce,
attraverso l’uso dell’informatica, testi tecnici.
In particolare l'analisi è stata rivolta a tre obiettivi:
1. Estrarre e costruire vocabolari funzionali partendo da testi tecnici:
brevetti, manuali di manutenzione, articoli scientifici.
2. Estrarre regole di DFμA da letteratura scientifica.
3. Misurare la distanza e la dipendenza tra idee in una sessione di problem
solving al fine di tracciare la proprietà intellettuale e di svolgere
un'analisi sull'andamento della sessione stessa.
Sebbene i suddetti obiettivi sembrino diversi tra loro (ed in particolare i primi due
rispetto al terzo), siamo riusciti ad automatizzarli in buona parte con dei software
realizzati in java che seguono lo stesso approccio ovvero una prima fase di
elaborazione con il TreeTagger e una seconda fase di confronto con un
database2.
1Cercando per esempio la parola “New York” si otterranno risultati diversi che fanno riferimento alla
città degli Stati Uniti, ad un album musicale, ad un telefilm, a una rivista. Tutti i risultati sono divisi
con precisione in finestre diverse secondo l'argomento.
2Per l' analisi della sessione di problem solving è prevista una terza fase che sarà analizzata nel
capitolo 4
9
Tuttavia le prime due applicazioni sono state affrontate in questo lavoro solo da un
punto di vista informatico supportando altri studenti nelle loro tesi. Acquisita
dimestichezza con la materia e con le tecniche utilizzate si è poi provveduto a
applicarle allo studio della tracciabilità della proprietà intellettuale.
1.3 L'analisi preliminare del testo
Tutte le applicazioni prese in esame hanno in comune una prima fase di
elaborazione del testo tramite il TreeTagger.
Per descrivere il funzionamento del TreeTagger e degli altri software utilizzati è
prima opportuno fare una breve introduzione sulla linguistica computazionale.
La linguistica computazionale (LC) è lo studio di sistemi informatici per la
comprensione e la produzione di linguaggio naturale[3]: in pratica, la LC analizza
le lingue in linguaggio naturale per estrarne un modello che possa essere
decodificato da una macchina e quindi espresso secondo un formalismo rigoroso
e concluso. I software di LC, dunque, si aspettano in ingresso un testo in lingua e
ne forniscono in uscita una rappresentazione formale, nel senso che il computer
fornisce una serie di lemmi organizzati secondo regole grammaticali e dipendenze
formalizzate a priori. Ad esempio la semplice frase “The cat is on the table”
potrebbe essere trasformata da un software in:
the DT the
cat NN cat
is VBZ be
on IN on
the DT the
table NN table
In questo caso il software avrebbe eseguito un tagging e una lemmatizzazione
della frase; due operazioni delle quali parleremo nei prossimi paragrafi.
Per quanto riguarda i settori di applicazione, le ricerche ed i progressi in LC sono
attualmente trasferiti al mondo commerciale molto rapidamente:
10
• Analisi di testi – dialoghi – parlato;
• Traduzione automatica;
• Riconoscimento vocale;
• Generazione di testi – dialoghi – parlato.
1.3.1 Il TreeTagger
Il TreeTagger è un software open source e consente di analizzare un testo ed
ottenere l'analisi grammaticale (tagging) e la lemmatizzazione3 delle singole
parole.
Due sono i vantaggi derivanti dalla lemmatizzazione e dal tagging del testo. Il
primo (dovuto alla lemmatizzazione) è quello dell’ottimizzazione dei database
utilizzati. Infatti in tali database, saranno presenti solamente i lemmi ai quali
verranno ricondotte le forme presenti nel testo. I verbi saranno presenti nel
database coniugati all’infinito e non in tutte le possibili forme in cui possono
essere coniugati; i sostantivi saranno presenti al singolare; aggettivi ed avverbi in
inglese non avrebbero teoricamente bisogno di essere lemmatizzati poiché
indeclinabili. Ciò comporta un notevole snellimento del database e quindi un
minore spazio di memoria occupato da esso, ed un aumento non indifferente della
velocità di processo del software e di conseguenza dell’analisi.
Il secondo vantaggio (derivante dal tagging) consiste nel fatto che i software
realizzati potranno effettuare ricerche nel database soltanto su parole
appartenenti a determinate categorie grammaticali riducendo sensibilmente il
numero di query da effettuare ed aumentando di conseguenza le prestazioni del
software. Si potrebbe per esempio voler analizzare solo i nomi o solo gli avverbi. Il
tagging permette inoltre di dividere i lemmi presenti nel database in tabelle diverse
secondo la categoria grammaticale e di cercare ogni termine del testo analizzato
nell'opportuna tabella.
3Dalla letteratura la lemmatizzazione è “quel complesso di operazioni che conducono a riunire tutte
le forme sotto il rispettivo lemma”, intendendo per lemma “ciascuna parola-titolo o parola-chiave di
un dizionario” e per forma ogni possibile diversa realizzazione grafica di un lemma[4]
11