Ho circa 10000+ stringhe e devo identificare e raggruppare tutte le stringhe che sembrano simili (baso la somiglianza sul numero di parole comuni tra due stringhe). Più numero di parole comuni, più simili sarebbero le stringhe. Ad esempio:
- Come creare un altro livello da un livello esistente
- Impossibile modificare i dati sull'unità di rete
- Livelli esistenti nel desktop
- Assistenza con l'unità di rete
In questo caso, le stringhe 1 e 3 sono simili con le parole comuni Esistente, Strato e 2 e 4 sono simili con parole comuni Network Drive (eliminando la parola di arresto)
I passaggi che seguo sono:
- Fai scorrere il set di dati
- Esegui un confronto riga per riga
- Trova le parole comuni tra le stringhe
- Forma un cluster in cui il numero di parole comuni è maggiore o uguale a 2 (eliminando le parole di arresto)
- Se numero di parole comuni < 2, inserisci la stringa in un nuovo cluster.
- Assegna le righe ai cluster esistenti o ne crea una nuova a seconda delle parole comuni
- Continua fino a quando tutte le stringhe vengono elaborate
Sto implementando il progetto in C # e ho completato il passaggio 3. Tuttavia, non sono sicuro di come procedere con il clustering. Ho studiato molto sul clustering di stringhe, ma non ho trovato nessuna soluzione adatta al mio problema. I tuoi contributi sarebbero molto apprezzati.