Algoritmo per ottenere tutte le possibili forme di una parola con suffissi diversi [chiuso]

0

Sto scrivendo un'applicazione in javascript dove ho dato una parola, ho bisogno di ottenere tutte le possibili versioni della parola con il suffisso che è la differenza tra ogni modulo. Ad esempio:

"sponsor" deve restituire "sponsorizzazione", "sponsor", "sponsor", ecc.

"spy" dovrebbe restituire "spies", "spying", "spied", ecc.

Ho pensato di avere un elenco di suffissi comuni e quindi di collegare ciascun suffisso alla parola data e di verificare nel dizionario se la parola risultante esiste o meno. Ma il problema è che a volte l'ultima o due lettere della parola iniziale devono essere cambiate prima di poter aggiungere il suffisso. Come per "spy", la "y" deve essere sostituita con "i" prima di aggiungere "es" per ottenere "spie". Ho cercato spesso su Google e non ho trovato molto aiuto. Tutto quello che ho trovato è stato questo post con un programma python allegato alla fine che non sta facendo qualsiasi senso per me.

Se qualcuno mi suggerisse un algoritmo o spiegasse la logica del programma python, sarebbe molto utile.

    
posta Harsha Reaper 09.02.2016 - 11:39
fonte

1 risposta

2

Questo è quello che alla fine ho fatto. Ho trovato un elenco di regole su questo link che devi seguire quando aggiungi un suffisso ad un parola.

Ad esempio, quando la parola termina con "y", sostituisci "y" con "i" a meno che il suffisso che stai aggiungendo sia "ing". Quando la parola termina con "e" potresti dover lasciare la "e" se il tuo suffisso inizia con una vocale e così via.

E ho una lista di alcuni suffissi comuni come questo:

var suffixes = [
    'er',
    'ing',
    'ship',
    'ment',
    'al',
    'es',
    's',
    'ery',
    'ion',
    'ive',
    'able',
    'or',
    'ible',
    'ic',
    'ant',
    'ancy',
    'y',
    'ed'
];

Ho fatto il looping di ogni suffisso, l'ho aggiunto alla parola mentre seguivo le regole, ho controllato se la parola risultante esisteva nel dizionario e se lo avesse fatto, l'ho aggiunta ai risultati.

    
risposta data 10.02.2016 - 10:37
fonte

Leggi altre domande sui tag