Database di modellazione per archiviare file e cercare il suo contenuto

0

Ho una funzionalità che devo affrontare. Il requisito di un progetto è trasformare le carte in pdf e archiviare questi file. La funzionalità principale è che l'utente è in grado di cercare le parole nel contenuto dei file, ad esempio l'utente è alla ricerca di qualsiasi libro che mira a "rischi biologici", il software deve ricercare su ogni contenuto di file pdf. Quindi, quello che stavo pensando è che ogni volta che un utente carica un nuovo libro o file, il software legge il suo contenuto e lo memorizza in una tabella, così quando l'utente cerca qualsiasi contenuto, otterrà tutti i libri che hanno queste parole. / p>

Ma il problema è che la dimensione del database sarà molto grande. C'è un altro modo per raggiungere questo obiettivo?

    
posta Juan Carlos Vega Neira 12.10.2016 - 19:14
fonte

1 risposta

2

Spero che tu l'abbia già risolto, ma nel caso sia utile:

Non memorizzerei l'intero PDF su un tavolo. Preferisco piuttosto una quantità fissa (o variabile ma limitata) di parole chiave . Questo processo richiede due fasi quando l'utente carica il PDF:

1: estrae l'intero testo come testo in chiaro. Se il PDF è in un formato leggibile, quindi utilizzare qualsiasi libreria là fuori per questo. Ad esempio: link

Se ci sono solo immagini di testo, ad esempio un libro scansionato, le cose diventano più interessanti. Vorrei utilizzare l'API OCR di Google Vision per estrarre prima il testo dalle immagini.

Link OCR di Google Vision: link

2: estrai parole chiave dal testo. Definitivamente userei API di Google Natural Language . È basato su AI, accetta il testo come imput e restituisce le parole chiave , soggetti, categorie, di un testo che ti permette di sapere di cosa si tratta, con percentuale di confidenza per ogni tag.

Collegamento dell'API di Google Natural Language: link

Progettazione DB: utilizzo una singola tabella pdf_contents , con due o tre colonne: pdf_path (VARCHAR il tuo link per il download), parole chiave (un campo TESTO) categorie (campo TESTO, se Google è in grado di classificare il testo).

Quindi la query sarebbe solo:

SELECT UNIQUE path FROM pdf_contents WHERE keywords LIKE %{searchword}% OR categories LIKE %{search word}% LIMIT N;

EDIT: dimenticato di inserire il link in un pdf nella libreria di esempi di testo su PHP

    
risposta data 01.06.2018 - 19:27
fonte

Leggi altre domande sui tag