Il seguente post ha un po 'di matematica, che spero aiuti a spiegare meglio il problema. Sfortunatamente, questo sito SE non supporta LaTex:
Il riassunto dei documenti è decisamente un problema aperto nella ricerca sull'IA. Un modo in cui questa attività è attualmente gestita è chiamato "riepilogo estrattivo". La strategia di base è la seguente: Dividi questo documento in frasi e presenteremo come riassunto un sottoinsieme di frasi che insieme coprono tutti i dettagli importanti nel post. Assegna frasei, 1≤i≤n, una variabile zio∈ { 0 , 1 }, dove zio= 1 indica che la frase è stata selezionata e zio= 0significa che la frase è stata lasciata fuori. Poi,ziozj= 1se e solo se fossero state scelte entrambe le frasi. Definiremo anche l'importanza di ogni frasewio per la frase io e termini di interazione wio , j tra le frasi io e j.
Permettere Xio essere i vettori delle funzioni per la frase io. wio= w (Xio) cattura quanto sia importante includere questa frase (o gli argomenti trattati da essa) mentre wio , j= w (Xio,Xj)indica la quantità di sovrapposizione tra le frasi nel nostro riepilogo. Alla fine mettiamo tutto questo in un problema di minimizzazione:
aumentare al massimo ziost Σiowiozio-wio , jziozjzio= 0 o 1
Questo cerca di massimizzare il peso totale delle frasi coperte e cerca di minimizzare la quantità di sovrapposizione. Questo è un problema di programmazione di numeri interi simile a quello di trovare il set indipendente di peso più basso in un grafico e esistono molte tecniche per risolvere tali problemi.
Questo disegno, secondo me, coglie i problemi fondamentali nella sintesi del testo e può essere esteso in molti modi. Ne discuteremo tra poco, ma prima dobbiamo specificare completamente le funzionalitàw. wio= w (Xio) potrebbe essere solo una funzione della frase io, ma potrebbe anche dipendere dalla posizione della frase nel documento o dal suo contesto (la frase è all'inizio di un paragrafo? Condivide parole comuni con il titolo? Qual è la sua lunghezza? Cita qualche nome proprio? eccetera)
wio , j= w (Xio,Xj)è una misura di somiglianza. Misura quante ripetizioni ci saranno se includiamo entrambe le parole nella frase. Può essere definito guardando le parole comuni tra le frasi. Possiamo anche estrarre argomenti o concetti da ogni frase e vedere quanti sono comuni tra loro, e usare funzionalità linguistiche come pronomi per vedere se una frase si espande su un'altra.
Per migliorare il design, in primo luogo, potremmo eseguire l'estrazione della frase chiave, cioè identificare le frasi chiave nel testo e scegliere di definire il problema sopra riportato in termini di quelli anziché cercare di scegliere le frasi. Questo è un problema simile a quello che fa Google per sintetizzare gli articoli di notizie nei loro risultati di ricerca, ma non sono a conoscenza dei dettagli del loro approccio. Potremmo anche suddividere ulteriormente le frasi in concetti e provare a stabilire il significato semantico delle frasi (Ponzo e Fila sono persone P1 e P2, un centro commerciale è un posto P, P1 e P2 sono andati al posto P al momento T (giorno Modalità di trasporto a piedi .... e così via). Per fare ciò, avremmo bisogno di usare un'ontologia semantica o altri database di conoscenza di buon senso. Tuttavia, tutte le parti di quest'ultimo problema di classificazione semantica sono aperte e non ho ancora visto nessuno fare progressi soddisfacenti su di esso.
Potremmo anche modificare la funzione di perdita sopra in modo che invece di impostare il compromesso tra l'importanza della frase wio e il punteggio di diversità wio , ja mano, potremmo impararlo dai dati. Un modo per farlo è utilizzare i campi casuali condizionali per modellare i dati, ma sicuramente ne esistono molti altri.
Spero che questa risposta abbia spiegato i problemi di base che devono essere risolti per fare progressi verso buoni sistemi di sintesi. Questo è un campo di ricerca attivo e troverai gli articoli più recenti tramite Google Scholar, ma prima leggi la pagina di Wikipedia per conoscere i termini pertinenti