Percorso più breve tra gli articoli di wikipedia in python

0

Ho un programma python che raccoglie i collegamenti da wikipedia e memorizza i nomi degli articoli in un file e i collegamenti tra loro in un altro.

Per il primo file, ogni nome di articolo viene memorizzato e quindi riempito per essere una lunghezza di 32 byte. Ad esempio, se il nome dell'articolo è Cat, verrà archiviato come:

43 61 74 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00

Tutti i nomi degli articoli sono archiviati in questo modo in un unico file. Il secondo file è simile, ma ogni voce è lunga 8 byte e rappresenta un collegamento da una pagina all'altra. Ad esempio:

00 00 00 00   00 00 00 01

Significa che l'articolo 0 nell'indice si collega al primo articolo nell'indice.

La mia domanda è: come posso calcolare il percorso più breve dall'articolo A al punto B, se ho tutti i link memorizzati nel formato specificato sopra?

(E sì, il codice è in python)

    
posta dangee1705 14.04.2016 - 19:20
fonte

1 risposta

1

Suggerirei di utilizzare un modello di dati del grafico. È possibile caricare i dati in Neo4j (un database grafico) e utilizzare Cypher o py2neo per calcolare il percorso più breve, o TitanDB (un altro database grafico) e utilizzare Goblin (ancora in sviluppo) o Cayley (una struttura che fornisce strumenti simili a grafici parte superiore di un'altra tecnologia di database).

Se il tuo set di dati è abbastanza piccolo da stare in memoria, e non vuoi mantenerlo in un database, potresti usare la libreria python NetworkX o la libreria python graph-tools o la libreria python iGraph.

    
risposta data 14.04.2016 - 19:31
fonte

Leggi altre domande sui tag