英语里 a 和 an 到底怎么选
在英语中,存在一个“不定冠词”a,可以置于单词之前。例如,a raccoon.但对于某些词,我们使用an。例如,an apple.
在程序生成文本时,我希望有一个函数a_or_an("apple")这告诉我该用哪个冠词。这看起来很简单。我们可以检查第一个字母,看看它是不是元音。
但那样就意味着我们输出an unicorn,不是a unicorn.
实际规则不是书写单词以元音字母开头,但如果口语单词以元音音开始。单词unicorn以元音字母开头 (u)但却是辅音音(Y).这个词hour以辅音字母开头(h)但元音音(OW).
我很好奇这些例外发生的频率,以及它们是否可以归为一类,所以我花了一天时间查看数据,制作了一些可视化,并写下了结果。让我惊讶的是,在我的32,455个词中,只有129个需要例外。
[LLM注:我做过不是用大语言模型写这些代码,但事后看来,我本该这么做。这只是一次性代码,用来回答一个问题。不需要干净或可维护。
只要正确就行。我会花更多时间在trie简化算法上,而不是花点时间去解析cmudict和重新学习d3.js。]
参与讨论