2016-07-03 50 views
5

Sto scrivendo un raschietto per programmi TV e altri elementi multimediali (giochi, film, ecc.) E non tutte le fonti sono formattate allo stesso modo per un certo spettacolo. Ad esempio, una fonte potrebbe rappresentare i sottotitoli con un trattino, altri punti e virgola. Attualmente sto utilizzando la distanza di Levenshtein per confrontare i dati raschiati con i dati estratti dal nome file dello show televisivo, ma mi chiedevo se l'algoritmo fosse stato progettato per stringhe brevi meno di una frase. Esiste un algoritmo che meglio si adatta a questa esigenza?Qual è l'algoritmo di distanza stringa più adatto da utilizzare per confrontare i titoli degli spettacoli televisivi?

risposta

3

Prima della comparazione/misurazione della distanza, è necessario normalizzare (standardizzare) i titoli.

normalizzazione dovrebbe includere cose come:

  • base formattazione (ad esempio la codifica UTF16, Nessun leader/spazi finali e tabulazioni)
  • regole di alfabeto (ad esempio, sostituire una con A)
  • Acronimo di espansione (ad esempio, NY -> New-York)
  • Regole dei nomi di località (ad es. I nomi delle città non devono contenere spazi, ma trattini)
  • Regole di maiuscole (es. Ogni lettera che segue un trattino deve essere in maiuscolo)
  • Rimozione dei simboli (ad es. !,?)
  • conversioni numerici ("trecento" a "300")
  • numeri romani conversioni (ad esempio "Luigi XVI" a "Louis 16")
  • non-inglese americano per l'inglese americano (ad esempio, "colore" a "colore")
  • Abbreviazioni regole (ad esempio "Inc." invece di "Incorporated", "contro" invece di "contro")

È possibile utilizzare Levenshtein distanza tra le coppie di parole (Non utilizzarlo per l'intera frase), ma implementare alcune finestre scorrevoli, poiché alcune parole (ad esempio "The") potrebbero mancare da una delle rappresentazioni.

Problemi correlati