判断一个词是否是另一个的复数形式

Find if a word is plural of another

我正在用 Go 编写一个程序来生成我所在大学的犯罪报告。我 运行 遇到了障碍,我需要确定一个词是否是另一个词的复数形式。我先做犯罪地图

crimes := make(map[string]int)

然后,在地图上添加犯罪,出现次数为int

for i := 0; i < len(feed.Items); i++ {
  crimes[feed.Items[i].Title[11:]]++
}

现在,当出现 "Armed Robberies (with a count of 1)" 和 "Armed Robbery (with a count of 2)" 等条目时,问题就出现了。我想检查一个词是否是另一个词的复数形式。在这种情况下,我想为 "Armed Robbery (with a count of 3)" 创建一个条目。我找不到这样做的包。有办法吗?

您要查找的内容称为 inflections。基本上,它是确定一个词的各种形式的魔法,特别是单复数或相反。

有用于此的库,大部分灵感来自 Ruby 在 Rails ActiveSupport::Inflector 系统上,例如参见 [​​=11=]。

另请参阅 http://www.csse.monash.edu.au/~damian/papers/HTML/Plurals.html 以了解有关英语复数算法的非常有趣的读物。