Visualizzazione dei risultati da 1 a 10 su 10
  1. #1

    [JAVA] - Motore ricerca programma

    Salve, posto con scarse speranze di risposta dato che un a ricercasul forum mi ha mostrato tutti thread simili senza risposta,comunque ci provo. Ho scritto un piccolissimo programmino java per catalogarmi i film, ora vorrei introdurre una funzione simile a quella di un motore di ricerca ma realizzata senza connessione internet per trovare tutti i titoli di film già inseriti, con parole simili a quelle presenti in un titolo fornito da me che faccia da set di parole chiave.In altre parole se inserisco "La maledizione della prima luna" lui deve trovar tutti gli altri titoli di film che contengano le parole "maledizione", "prima" e "luna" tralasciando le preposizioni e gli articoli.Ora il problema più groso nello scriverla da me è fare in modo articoli e preposizioni (sia in inglese sia in italiano) siano tralasciati.Mi chiedo se qualcuno conosce qualche librerie java gpl che possa fare al caso mio senza reinventare la ruota.Grazie
    Il centro dell'attenzione non è sempre un buon posto in cui trovarsi

    Mai discutere con uno stupido, la gente potrebbe non capire la differenza. (O. W.)

  2. #2
    Non vedo quale sia la difficoltà:
    Avrai sicuramente una classe che rappresenta un aggregato delle classi che rappresentano i tuoi titoli racoclti tipo in una LinkedList o ArrayList...

    A questo punto non ti rimane che creare un metodo

    public Object[] search(String str) {
    bla bla

    }

    che spezza la stringa in token ed effettua una ricerca nel titolo del film... e ritorna un array che contiene dei riferimenti agli oggetti "Film" che ha trovato...

  3. #3
    Originariamente inviato da Alvaro Vitali
    Non vedo quale sia la difficoltà:
    Avrai sicuramente una classe che rappresenta un aggregato delle classi che rappresentano i tuoi titoli racoclti tipo in una LinkedList o ArrayList...

    A questo punto non ti rimane che creare un metodo

    public Object[] search(String str) {
    bla bla

    }

    che spezza la stringa in token ed effettua una ricerca nel titolo del film... e ritorna un array che contiene dei riferimenti agli oggetti "Film" che ha trovato...
    Non la vedi perchè non hai letto bene...ho già scritto un metodo del tipo che dici tu e funziona perfettamente, il problema è che se il titolo da cercare è "La maledizione della prima luna 2" lui segnala non solo tutti i films che contengono le parole "maledizione" "prima" e "luna" (come vorrei io), ma anche tutti quelli contenenti "la"e "2". La cosa è fastidiosa se pensi che per evitarlo dovrei per ogni film escludere dalla ricerca un bel po di roba reposizioni,articoli,avverbi di movimento posizione...e non continuo....sia in inglese sia in italiano, il tutto elencandoli uno a uno magari in un file di properties.Non dico che non è fattibile (anzi parzialmente l'ho già fatto) è che non mi piace come soluzione, quindi mio chiedevo se esiste qualche libreria già pronta in cui questi problemi sono già stati posti e risolti. Per fare un esempio non troppo calzante google esclude dalla ricerca le parole chiave del tipo che io ti ho indicato, se esiste qualcosa del genere implementata come libreria standalone quella fa al cao mio,Ora è più chiaro? Grazie dell'intervento comunque
    Il centro dell'attenzione non è sempre un buon posto in cui trovarsi

    Mai discutere con uno stupido, la gente potrebbe non capire la differenza. (O. W.)

  4. #4
    Utente di HTML.it L'avatar di anx721
    Registrato dal
    Apr 2003
    Messaggi
    2,352
    Secondo me non ti rimane che rielaborare le keyword inserite per la ricerca eliminando numeri, preposizioni e articoli, alla fine non sono mica tante parole, basta avere la lista delle parole da non considerare in un file di testo che leggi al'inizio o elencarle direttamente nel tuo progarmma. Non lo vedo come un problema tale da implementare un'apposita libreria.

    Sun Certified Java Programmer

    EUCIP Core Level Certified

    European Certification of Informatics Professionals

  5. #5
    Potresti eliminare dalla ricerca tutti i token inferiori a quattro caratteri, credo che taglieresti fuori un bel po' di parole dal significato insulso (articoli, congiunzioni, ecc..), non è sicuramente la soluzione perfetta ma è un buon compromesso fra risultato e facilità di implementazione.

  6. #6
    Originariamente inviato da anx721
    Secondo me non ti rimane che rielaborare le keyword inserite per la ricerca eliminando numeri, preposizioni e articoli, alla fine non sono mica tante parole, basta avere la lista delle parole da non considerare in un file di testo che leggi al'inizio o elencarle direttamente nel tuo progarmma. Non lo vedo come un problema tale da implementare un'apposita libreria.
    Le parole le ho già esternalizzate in una classe apposita ce poi sarà un properties.io infatti la libreria non la volevo implementare, la volevo già pronta...
    Vabbè quindi secondo te va bne così come l'ho fatto.Boh a me non piace tantissimo anche se funziona, ma mi sa che mi dovrò accontentare.Grazie ciao
    Il centro dell'attenzione non è sempre un buon posto in cui trovarsi

    Mai discutere con uno stupido, la gente potrebbe non capire la differenza. (O. W.)

  7. #7
    Originariamente inviato da Alvaro Vitali
    Potresti eliminare dalla ricerca tutti i token inferiori a quattro caratteri, credo che taglieresti fuori un bel po' di parole dal significato insulso (articoli, congiunzioni, ecc..), non è sicuramente la soluzione perfetta ma è un buon compromesso fra risultato e facilità di implementazione.
    Si ci avevo già pensato, è pressapoco la soluzione che utilizza il motore di ricerca di questo forum.Non lo so forese farò così in finale,Ciao
    Il centro dell'attenzione non è sempre un buon posto in cui trovarsi

    Mai discutere con uno stupido, la gente potrebbe non capire la differenza. (O. W.)

  8. #8
    Utente di HTML.it
    Registrato dal
    Aug 2002
    Messaggi
    8,013
    continuo a pensare che farti una tua lista di parole, anche se tedioso, sia una soluzione più valida:

    Il filtro a 4 lettere taglia parole tipo: mai, sos, 007 che sono tanto amate nei film...

    rock on!
    <´¯)(¯`¤._)(¯`»ANDREA«´¯)(_.¤´¯)(¯`>
    "The answer to your question is: welcome to tomorrow"

  9. #9
    Utente di HTML.it L'avatar di anx721
    Registrato dal
    Apr 2003
    Messaggi
    2,352
    Originariamente inviato da Andrea1979
    continuo a pensare che farti una tua lista di parole, anche se tedioso, sia una soluzione più valida:

    Il filtro a 4 lettere taglia parole tipo: mai, sos, 007 che sono tanto amate nei film...

    rock on!
    concordo...anzi in questi forum informatici togliere tutte le parole sotto i 3 caratteri porta a non considerare un sacco di sigle e termini informatici validi. Nel tuo caso no nc'è alcun motivo per adottare questa soluzione

    Sun Certified Java Programmer

    EUCIP Core Level Certified

    European Certification of Informatics Professionals

  10. #10
    Originariamente inviato da anx721
    concordo...anzi in questi forum informatici togliere tutte le parole sotto i 3 caratteri porta a non considerare un sacco di sigle e termini informatici validi. Nel tuo caso no nc'è alcun motivo per adottare questa soluzione
    Si mi avete convinto!
    Il centro dell'attenzione non è sempre un buon posto in cui trovarsi

    Mai discutere con uno stupido, la gente potrebbe non capire la differenza. (O. W.)

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.