首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >检查字符串输入是复数还是单数?

检查字符串输入是复数还是单数?
EN

Stack Overflow用户
提问于 2012-01-27 18:39:13
回答 3查看 4.4K关注 0票数 2

我想检查一个字符串在PHP中是单数还是复数。

EN

回答 3

Stack Overflow用户

发布于 2012-01-27 18:43:34

即使只有一种语言,比如英语,也不容易做到这一点。首先,你需要识别你的名词。

使用诸如:单词以"s“结尾的规则是非常简单的,

羊单数绵羊复数

女士单数女士复数,但是女士的呢?

因此,您需要更加聪明,并在S之前立即测试撇号

试着使用像Brill Parser这样的东西,这可以识别名词,并且可以适当地准确地识别单数/复数,但即使这样也不是完美的。

再说一次,你可以用法语或德语……你的问题非常宽泛,不能识别一种语言

编辑

wikipedia article中描述了英语中单数/复数复杂性的示例

porter stemming这样的技术可以识别单词的“词根”,与实际单词的比较可以帮助检查扩展是典型的单数还是复数。here提供了Porter Stemmer的PHP实现。

票数 4
EN

Stack Overflow用户

发布于 2012-01-27 18:48:04

考虑到在不同语言中复数单词的不确定性,以及在英语(和其他语言)中并不总是以"s“结尾的复数,以及有时以"s”结尾的单词不是复数,我将尝试提供一个可能的解决方案。

您可以为复数始终以"s“结尾的单词创建一个大数组,并为不规则复数创建另一个数组,并针对它验证句子中的每个单词。

稍后我将用一些实用的PHP示例来完成这篇文章。

我找到了一些java示例here

票数 1
EN

Stack Overflow用户

发布于 2012-01-27 18:40:48

嗯,这取决于你的语言在不容易,它可能是无法决定的。

例如,你如何区分"man“和”man“?

你可以使用启发式,就像所有东西一样,以"s“结尾的是一个复数,并提供额外的异常情况,比如前面提到的"man”。这也会导致错误的答案,因为例如"kiss“以"s”结尾,但不是复数。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9032032

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档