0

我有一个程序,我给它一个名词,它用一个名词表检查它的数据库,看看那个名词是否存在。这适用于单数名词。例如。用户类型,“什么是树?” 程序搜索“树”。

但是对于“什么是树?'

该程序将搜索“树”,但数据库仅以单数形式存储名词,因此无法找到。在进行搜索之前,我正在考虑取消最后一个 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”结尾的非复数单词列表中。

有没有更好的方法来做到这一点?

4

1 回答 1

1

唯一的方法是创建一个规则和单词的数据库,它不会是完美的。如果您使用的是 PHP,则可以使用这里。http://www.kavoir.com/2011/04/php-class-converting-plural-to-singular-or-vice-versa-in-english.html它是框架的一部分,但您可以从那里提取信息即使您不使用 PHP。

不幸的是,这里发布的代码太多,您必须点击链接

于 2013-01-08T06:29:01.027 回答