Ideally I would like to store all of the [verb] forms as 1 hash index
Вы можете подумать, что это почти возможно сделать с так называемыми правильными глаголами, используя какой-то общий фрагмент:
happen, happens, happened, happened, happening
но это, безусловно, невозможно для так называемых неправильных глаголов:
eat, eats, ate, eaten, eating
sing, sings, sang, sung, singing
go, goes, went, gone, going
bring, brings, brought, brought, bringing
speak, speaks, spoke, spoken, speaking
И есть также варианты орфографической замены:
try, tries, tried, tried, trying
cry, cries, cried, cried, crying
И другие варианты:
miss, misses, missed, missed, missing
Я бы предложил создать такую хеш-таблицу для каждой формы глагола, указывая на бесконечную форму; инфинитивная форма указывает на себя:
verb form
infinitive form
например:
happening
happen
went
go
happen
happen
go
go
ate
eat
Затем, учитывая форму глагола, вы можете очень быстро найти его инфинитив, выполнив поиск по хеш-ключу, и вы можете сохранить определение, если хотите, в другой таблице, используя инфинитивную форму в качестве (хешированного) ключа. .