我有一个程序,我给它一个名词,它用一个名词表检查它的数据库,看看那个名词是否存在。这适用于单数名词。例如。用户类型,“什么是树?” 程序搜索“树”。
但是对于“什么是树?'
该程序将搜索“树”,但数据库仅以单数形式存储名词,因此无法找到。在进行搜索之前,我正在考虑取消最后一个 s。例如。
if ((searchnoun.charAt(searchnoun.length-1))=== 's')
{ searchnoun = searchnoun.(take off last s);}
但是,这不适用于不是以“s”结尾的复数形式的名词,例如:Megalosaurus、Stegosaurus、Jesus、mass、bass、physics 和很多其他名词。
我可以列出一个以 s 结尾但不是复数形式的单词列表,然后搜索它是否首先在该列表中,如果它不删除最后一个“s”,否则执行..
我会对以“es”结尾的单词做类似的事情,除非它们在以“es”结尾的非复数单词列表中。
有没有更好的方法来做到这一点?