My initial response was to assail the
assumptions underlying the problem.
... that resulted in an hour-long discussion
Supponendo che non stiate intervistando per una posizione come sviluppatore nell'ambito del trattamento linguistico (o dove gli errori delle specifiche hanno conseguenze potenzialmente fatali), probabilmente avete dato all'intervistatore l'impressione che avete difficoltà a separare l'importante dal incidentale o che tendi ad essere conflittuale.
Non fraintendermi, ho le stesse tendenze e devo lavorare duro per tenerli sotto controllo, ma ho dovuto imparare che trovare scappatoie nelle richieste di cooperazione è solitamente - e spesso per buone ragioni - interpretato come mancanza di empatia e non come segno di intelligenza.
Considera la situazione dell'intervistatore, probabilmente voleva solo sapere come ti avvicini al compito di programmazione comune di accumulare, ordinare e valutare i dati e la tua capacità di comunicare la tua soluzione ad un'altra persona - mentre è costretto dalla situazione di un colloquio di lavoro .
Qualcosa di più elaborato di: "Raccogliere dati sull'uso della lingua è, a causa della sua natura fluida, un problema interessante di per sé. A meno che tu non voglia che io lo approfondisca con te in dettaglio, per ora presumo solo che sia statico." prima di immergerti in una soluzione per una dichiarazione di problemi ragionevolmente idealizzata , è probabile che lasci un'impressione mista.
Per rispondere alla domanda originale:
- scegli un dizionario adatto (ad esempio Oxford), preferibilmente uno in cui sono già correttamente "stemmed" (se non è possibile eseguirli tramite un algoritmo di derivazione adatto)
- metti le parole staminali risultanti come chiavi in una matrice associativa / mappa hash / dizionario e inizializza ogni valore con 0
- per ogni elemento nel corpus che interessa
- derivano ogni parola
- se la parola derivata può essere trovata come chiave nella mappa hash precedentemente creata
- incrementa il valore corrispondente di 1
- se non può essere trovato, ignoralo
- stampa HashMap come elenco di tuple di valori-chiave, ordinate in base ai valori
e poi vai nelle possibilità di ottimizzazione per il passo ondulato della mano di "smistamento" se l'intervistatore suggerisce di essere interessato a loro.