首页 » 网站推广 » inflectorphp技巧_从英文变形规则计算到Restful Api设计

inflectorphp技巧_从英文变形规则计算到Restful Api设计

访客 2024-11-21 0

扫一扫用手机浏览

文章目录 [+]

一天在研究Restful API设计,命名的时候我总是很纠结,我相信大多数人也有这种觉得,不是说想不出来某个单词怎么写的问题,像我这种没事背单词背到13000词量的人也要纠结个几分钟,然后还会改来改去,虽然可以用命名字典,但是究竟不是长久之计,当然你假如乐意利用拼音就不要往下看了。

举个例子,你想写一个获取一页model的api,不管是真自己写出来的还是框架自动天生,大部分也就都是这个样子/controller/actions/argName1/argValue1/argName2/argValue2,然后actions改一改,改成information。
那么问题来了,如果后面加参数指定获取的信息数目,前面不动,貌似不屈安啊,被人改一下参数,爬虫一个要求就全获取了啊!
(实在可以在后台做限定)本宝宝已经爬了几十个页面,不要疑惑我,真的有人这么干,而且数量还不少。
那怎么办?写俩API,一个单数一个复数,informations or information。
复数的那个获取20个如果足够的话,单数的那个获取1个,貌似办理了的样子。
然而大家都很

恰巧,在YII2.X框架下还真找到了这么个东西,只要写一个单数的API然后开去复数化配置,就可以自动天生相应的复数API。
感谢@Antonio Ramirez大神和@Alexander Makarov大神,虽然我不知道你俩是谁,我也不知道能不能at上,但是你们把名字写到代码里了。
好言归正传,\vendor\yiisoft\yii2\helpers\BaseInflector.php类下的pluralize方法和singularize方法分别可以做到单词的复数化和单数化。
代码长这样

inflectorphp技巧_从英文变形规则计算到Restful Api设计

哇~~好厉害!

全都是正则啊!
我以为抱到了大腿,不过看起来规则不是很多啊,本宝宝不信!
我要测一下你的精确率!
wikipedia的单复数规则转换页面上随便找了点。
网络了100个旁边,然后便是用函数把单数转成复数然后比拟是不是精确,抱歉这部分我忘却截图了,大噶70%旁边精确,果不其然还是有缺陷啊,看看别人的。
找到一个MIT license的在这里

inflectorphp技巧_从英文变形规则计算到Restful Api设计
(图片来自网络侵删)

虽然规则长得不一样,但是事理都差不多,先去分外规则的Map中探求对应的复数单词,如果没有再从上往下遍历正则,没有的话就+1s吧。
同样我又测了一下,也没有提高多少准确率,到了75%的样子。

如果有一天我碰着了他们,问到他们是怎么算出正则的而他们回答靠履历,我一定会把代码吃了,觉得这些明显是打算出来的,之前在quora上看过Anders Kaseorg的代码,打算能被7整除的字符串的正则表达式!
切实其实逆天,长的不要不要的,既然是校友,估计也是算出来的。
咳咳,请忽略MIT后面的缩写。

话说回来,他们怎么找到的规则?先试试看,没有找到牛津官方的词典,找到一份21 世纪英汉双语词典。
解析后得到17万个变形和不变形的单词及其阐明。

最开始找到所有阐明中带有pl标记的单词,做单复数映射,由于有些不常见的词汇的阐明并不完全,不会加标记进行解释,只得到1000个映射对。
既然不愿定原型是否有变形,那变形是一定有原型的。
这里解释一下,原型和变形只按字典中的字符串打算,并不代表词根,例如,employees对应的原型是employee,employers对应的原型是employer。
去掉短语和单复数同形的单词得到变形数量分布如下

由于大部分词汇的词性并不单一,因此你会创造很多词既有复数又有过去式又有过去分词,个中拥有10个变形的单词是trammel

['trameled', 'trameling', 'tramelled', 'tramelling', 'tramels', 'trammeled', 'trammeling', 'trammelled', 'trammelling', 'trammels']

-_-#你们太会玩了啊,加个l多一倍。

再对这种变革规则统计,得到

个中~表示在原形的根本上添加,-表示在原形末端探求共同的字符串然后更换,例如,-ff=>ves 2:flagstaff ,就表示flagstaff要变成flagstaves。
然后你就创造,不仅单复数规则被统计了出来,连形容词比较级最高级都出来了,哈哈哈意外收成。

有一个比较故意思的地方便是,我从来都不知道原来复数还可以比原型短,比如这些医学和化学专业的词-um=>a 276

其他故意思的地方,哦不,其他比较坑爹的地方已经让我完备颠覆了以前对英语的三不雅观,有些词毫无规律可言!
前方高能~

多复数形式

组合名词的第二个词转复数形式

组合名词的第一个词转复数形式

组合名词的哪转复数都行形式

组合名词的两边都得转复数形式

再找个例子,问:foot的复数是啥?feet~~好大略的样子。
见过这个嘛?

这种按意思换复数的形式真的是防不胜防。

还有按国别换复数的

Kronor和kronur都是krona的复数,然而,瑞典用前面的,冰岛用后面的,我也不知道为啥、

末了,记得少读书多看报,多背单词多睡觉。

末了的末了,私信知乎ID最爱麦丽素可以得到部分已整理好的数据进一步研究。

标签:

相关文章

介绍直播新纪元,轻松进入直播的五大步骤

随着互联网技术的飞速发展,直播行业在我国逐渐崛起,越来越多的人选择通过直播这一新兴媒介展示自己、分享生活、传递价值。对于许多新手来...

网站推广 2025-01-03 阅读1 评论0

介绍相机美颜原理,科技与美学的完美结合

随着科技的发展,智能手机的摄像头功能日益强大,美颜相机成为了许多人拍照的首选。美颜相机不仅满足了人们对于美的追求,更在视觉上给人带...

网站推广 2025-01-03 阅读1 评论0

介绍磁铁的制造,科学与艺术的完美结合

磁铁,一种神秘的物质,自古以来就吸引了无数人的目光。它不仅具有独特的磁性,还能在工业、医疗、科研等领域发挥重要作用。磁铁是如何制造...

网站推广 2025-01-03 阅读1 评论0

介绍电瓶激活方法,让电池焕发新生

随着科技的不断发展,电动汽车逐渐成为人们出行的首选。而电瓶作为电动汽车的核心部件,其性能直接影响着车辆的续航里程和行驶体验。新购买...

网站推广 2025-01-03 阅读1 评论0