scraping dati e url aggiuntivi

Il database che raccoglie tutte le informazioni sui giochi, video, screenshot e tanto altro ancora

Moderatore: Moderatore ADB

Avatar utente
motoschifo

Gold Medal Donatore
Progetto Arcade Database
Progetto Arcade Database
Messaggi: 3272
Iscritto il: 12/07/2013, 20:29
Medaglie: 2
Città: Parma
Località: Parma
Grazie Inviati: 32 volte
Grazie Ricevuti: 32 volte
Contatta:

Re: scraping dati e url aggiuntivi

Messaggio da motoschifo »

Secondo me è troppo pericoloso togliere pezzi presenti nei chip, e forse a volte può dimostrarsi inutile. Pensa al caso di doppia parentesi, parentesi con virgola, ecc.
Forse la via più rapida è quella di farlo manualmente scremando prima una serie di titoli.
Si stabilisce la regola, si capisce se può andare bene, e si applica.
Come scritto sopra la validazione è completamente manuale (per scelta) in quanto solo una persona può capire se è giusto o no un nome.
Magari può andar bene togliere tutto quanto dentro alle parentesi, poi eventualmente si aggiunge manualmente.
Motoschifo
CAB ›MameOriz ›MameVert ›PCB ›NeoGeo ›TopDrive ›Tekken3 Wishlist ›PacMan ›Arkanoid
Flipper ›HighSpeed Wishlist ›MedievalMadness ›MonsterBash ›HighSpeed2 WebArcadeDatabase
Avatar utente
Gothrek
Moderatore
Moderatore
Messaggi: 4880
Iscritto il: 13/07/2017, 13:30
Città: Roma
Grazie Inviati: 17 volte
Grazie Ricevuti: 272 volte

Re: scraping dati e url aggiuntivi

Messaggio da Gothrek »

motoschifo ha scritto: 22/05/2020, 20:38 Secondo me è troppo pericoloso togliere pezzi presenti nei chip, e forse a volte può dimostrarsi inutile. Pensa al caso di doppia parentesi, parentesi con virgola, ecc.
Forse la via più rapida è quella di farlo manualmente scremando prima una serie di titoli.
Si stabilisce la regola, si capisce se può andare bene, e si applica.
Come scritto sopra la validazione è completamente manuale (per scelta) in quanto solo una persona può capire se è giusto o no un nome.
Magari può andar bene togliere tutto quanto dentro alle parentesi, poi eventualmente si aggiunge manualmente.
provo a titar giu l'elenco dalle mie circa 3000 rom e a togliere parentesi e contenuto e vediamo che viene fuori verificando se restano parentesi o altro- certo strano che non resti il nome del titolo originale da qualche parte
Avatar utente
motoschifo

Gold Medal Donatore
Progetto Arcade Database
Progetto Arcade Database
Messaggi: 3272
Iscritto il: 12/07/2013, 20:29
Medaglie: 2
Città: Parma
Località: Parma
Grazie Inviati: 32 volte
Grazie Ricevuti: 32 volte
Contatta:

Re: scraping dati e url aggiuntivi

Messaggio da motoschifo »

Non esiste il nome originale, come dici, ogni gioco è semplicemente diverso dagli altri e caratterizzato da una miriade di varianti.
In effetti credo sia una mancanza dell'xml in quanto poi in giro si fa sempre riferimento al nome comune... mah.
Motoschifo
CAB ›MameOriz ›MameVert ›PCB ›NeoGeo ›TopDrive ›Tekken3 Wishlist ›PacMan ›Arkanoid
Flipper ›HighSpeed Wishlist ›MedievalMadness ›MonsterBash ›HighSpeed2 WebArcadeDatabase
Avatar utente
Gothrek
Moderatore
Moderatore
Messaggi: 4880
Iscritto il: 13/07/2017, 13:30
Città: Roma
Grazie Inviati: 17 volte
Grazie Ricevuti: 272 volte

Re: scraping dati e url aggiuntivi

Messaggio da Gothrek »

si il problema principale è riuscire dal nome a capire se è già presente nel tuo archivio locale, chiaro che laddove si aggiungono caratteri numeri e quant'altro secondo la logica di creare le info sarebbe bello avere almeno il titolo "generico".

l'idea in generale è avere un gioco, n titoli, n rom. Cosi cercando tra i propri media per gioco potresti avere sott'occhio un pò tutto quello che esiste (almeno localmente) di relazionato.
Avatar utente
motoschifo

Gold Medal Donatore
Progetto Arcade Database
Progetto Arcade Database
Messaggi: 3272
Iscritto il: 12/07/2013, 20:29
Medaglie: 2
Città: Parma
Località: Parma
Grazie Inviati: 32 volte
Grazie Ricevuti: 32 volte
Contatta:

Re: scraping dati e url aggiuntivi

Messaggio da motoschifo »

Ho completato le modifiche, aggiungendo il campo SHORT_TITLE in output nelle pagine di scraping.
Quel valore viene aggiornato manualmente da me ad ogni import.
Normalmente basta togliere i dati tra parentesi ma a volte ci sono casi particolari di nomi scritti male (contenenti errori tipo parentesi non chiusa o non aperta).
Motoschifo
CAB ›MameOriz ›MameVert ›PCB ›NeoGeo ›TopDrive ›Tekken3 Wishlist ›PacMan ›Arkanoid
Flipper ›HighSpeed Wishlist ›MedievalMadness ›MonsterBash ›HighSpeed2 WebArcadeDatabase
Avatar utente
Gothrek
Moderatore
Moderatore
Messaggi: 4880
Iscritto il: 13/07/2017, 13:30
Città: Roma
Grazie Inviati: 17 volte
Grazie Ricevuti: 272 volte

Re: scraping dati e url aggiuntivi

Messaggio da Gothrek »

motoschifo ha scritto: 21/06/2020, 15:51 Ho completato le modifiche, aggiungendo il campo SHORT_TITLE in output nelle pagine di scraping.
Quel valore viene aggiornato manualmente da me ad ogni import.
Normalmente basta togliere i dati tra parentesi ma a volte ci sono casi particolari di nomi scritti male (contenenti errori tipo parentesi non chiusa o non aperta).
grazie @motoschifo , lo implemento subito.
In via temporanea anche io avevo ripiegato sull'eliminazione della parentesi, anche se poi mi sono accorto che a parte qualche errore in tanti casi si utilizzano i due punti (:) invece del trattino meno (-) e quindi non matchava cmq il titolo.

Vediamo come va con questa implementazione.

Grazie come sempre.

devo riuscire a migliorare la funzionalità di matching del titolo, ad oggi son cosi:
Annotazione 2020-06-21 170421.jpg
se in alcuni casi lavorando sul titolo son riuscito a raggrupparli vedi 1941 in altri manca ancora qualcosa (1942, 1943, 1944)
Non hai i permessi necessari per visualizzare i file allegati in questo messaggio.
Avatar utente
motoschifo

Gold Medal Donatore
Progetto Arcade Database
Progetto Arcade Database
Messaggi: 3272
Iscritto il: 12/07/2013, 20:29
Medaglie: 2
Città: Parma
Località: Parma
Grazie Inviati: 32 volte
Grazie Ricevuti: 32 volte
Contatta:

Re: scraping dati e url aggiuntivi

Messaggio da motoschifo »

Puoi dare in pasto il tuo nome ad una funzione per togliere eventuali simboli (due punti, trattino, uguale, spazi, ecc) e fare il match solo con le lettere. Nel 99% dei casi dovrebbe bastare quello.
Come regola standard ho rimosso parentesi tonde e quadre (queste ultime manualmente) ma mantengo quasi tutti simboli e lettere.

Considera che posso esporre una nuova funzione di ricerca che magari utilizza questo nuovo campo per avere i romset corrispondenti.

Questa è la parte php interessata, ovviamente a mano posso intervenire sul titolo ma correggo solo quando vedo anomalie (es. lettere alfa/beta/parentesi non chiuse, ecc):

Codice: Seleziona tutto

$lower_case = "abcdefghijklmnopqrstuvwxyzàèìòùáéíóúäëïöü";
$upper_case = strtoupper($lower_case);
$numbers = "0123456789";
$extra = "!?@#&*-_ '/.,:;%+$\"`µ";
$valid_chars = $lower_case.$upper_case.$numbers.$extra;

$game_short_title = $game_description;
// tolgo le parentesi, anche annidate
$game_short_title = preg_replace("/\(([^()]*+|(?R))*\)/","", $game_short_title);
// tolgo pezzi particolari per smaltire il lavoro manuale
$game_short_title = str_replace(
	array("[BET]", "[Dutch]", "[German]", "[TTL]"), 
	"", 
	$game_short_title
);
$game_short_title = trim($game_short_title);
if (!str_contains_only($game_short_title, $valid_chars)) {
	$log->debug("...{$game_name} - {$game_description}    *** FAILED ***");
	continue;
}

function str_contains_only($name, $chars) {
	for ($i=0; isset($name[$i]); $i++) {
		if (strpos($chars, $name[$i])===false) {
			global $log;
			$log->debug("...INVALID CHAR FOUND '{$name[$i]}' in '{$name}' (valid chars: >{$chars}<)");
			return false;
		}
	}
	return true;
}
Motoschifo
CAB ›MameOriz ›MameVert ›PCB ›NeoGeo ›TopDrive ›Tekken3 Wishlist ›PacMan ›Arkanoid
Flipper ›HighSpeed Wishlist ›MedievalMadness ›MonsterBash ›HighSpeed2 WebArcadeDatabase
Avatar utente
Gothrek
Moderatore
Moderatore
Messaggi: 4880
Iscritto il: 13/07/2017, 13:30
Città: Roma
Grazie Inviati: 17 volte
Grazie Ricevuti: 272 volte

Re: scraping dati e url aggiuntivi

Messaggio da Gothrek »

gran belkla idea quella di lasciare solo le lettere e depurarla per il match, l'idea per entrambi credo sia fare meno lavoro manuale possibile cosi da automattizzare quanto piu' possibile.

voglio provare a dargli in pasto domani mattina un 10K di rom, per vedere quanti casi "fail" ho.
Avatar utente
Gothrek
Moderatore
Moderatore
Messaggi: 4880
Iscritto il: 13/07/2017, 13:30
Città: Roma
Grazie Inviati: 17 volte
Grazie Ricevuti: 272 volte

Re: scraping dati e url aggiuntivi

Messaggio da Gothrek »

La tua idea dei caratteri mi piace, e sicuramente migliora il matching.

Nel caso di 1944 riuscirebbe ad accorparli, sto cercando una soluzione per 1943 dove nache con questo sistema i giochi sarebbero 2.
Annotazione 2020-06-22 091408.jpg
Non hai i permessi necessari per visualizzare i file allegati in questo messaggio.
Avatar utente
motoschifo

Gold Medal Donatore
Progetto Arcade Database
Progetto Arcade Database
Messaggi: 3272
Iscritto il: 12/07/2013, 20:29
Medaglie: 2
Città: Parma
Località: Parma
Grazie Inviati: 32 volte
Grazie Ricevuti: 32 volte
Contatta:

Re: scraping dati e url aggiuntivi

Messaggio da motoschifo »

Aggiornato adesso al Mame 0.222: 311 titoli da inserire, di cui solo 3 manualmente e tutti gli altri in automatico.
Motoschifo
CAB ›MameOriz ›MameVert ›PCB ›NeoGeo ›TopDrive ›Tekken3 Wishlist ›PacMan ›Arkanoid
Flipper ›HighSpeed Wishlist ›MedievalMadness ›MonsterBash ›HighSpeed2 WebArcadeDatabase
Rispondi

Torna a “Progetto Arcade Data Base”