英语冠词规则:是看字母还是听发音?

English: A vs. An

英语冠词规则:是看字母还是听发音?

在生成文本时,我本想写一个简单的函数来判断该用 'a' 还是 'an'。起初我以为只需检查单词首字母是否为元音,但这会导致 'an unicorn' 这样的错误。真正的规则取决于单词的发音而非拼写:'unicorn' 以元音字母开头却发辅音,而 'hour' 以辅音字母开头却发元音。我花了一天时间分析数据并制作可视化图表,结果发现 32,455 个单词中仅有 129 个需要特殊处理。虽然这次没有使用 LLM 来写代码,但事后看来,对于这种一次性任务,用 LLM 或许能节省不少时间,让我能更专注于算法优化而非解析 cmudict 或重学 d3.js。

我事后意识到,我本应该使用 LLM 来写这些代码,因为这是一次性任务,不需要代码整洁或易于维护,只需要正确即可。
  1. hbn

    英语里有个我直到开始学西班牙语才注意到的有趣怪癖:

    在西班牙语里,比如要说“他是一名医生”,你会说“él es médico”。直译过来就是“他是医生”,这对英语母语者来说感觉很不直观。西班牙语确实有对应“a”的词——“un/una”,所以英语母语者自然会说“él es UN médico”,但我明白这样听起来很别扭、不自然。

    但后来我意识到,当你把同样的句子改成复数——“他们是医生”——时,你就不用加冠词了。你不会说“they are some doctors”(我查了谷歌,原来“some”本来就不是冠词?)

    所以西班牙语反而更一致:单数:“Él es médico.” 复数:“Ellos son medicos.”

    而英语则不然:单数:“He is a doctor.” 复数:“They are doctors.”

  2. outlore

    Jev 的实际用例?

  3. shagie

    这是为了避免连续出现两个不同的元音。

    考虑一下这条规则的其他变体。

    在法语中,人们会说“l'hôpital”而不是“le hôpital”,因为这里的 'h' 是送气音(试着说“a aspirated”而不是“an aspirated”),导致开头是元音发音。

    在爱尔兰语中,“父亲”是“athair”。要说“她的父亲”,就变成了“a hathair”https://en.wikipedia.org/wiki/Prothesis_(linguistics)

    在土耳其语中,也能看到类似现象,比如 araba(汽车)。“我看到了那辆车”是“Arabayı gördüm.”(注意加了个 'y' 来避免两个元音相连)。书是 kitap,“我看到了那本书”是“Kitabı gördüm.”,这就没必要在尾音和“ı”之间再加一个辅音了。

    无论你讲什么语言,它很可能都有某种形式的这条规则。

    其他语言也有类似的怪癖(比如“a unicorn”或“a university”)。例如,法语里有 l’hôtel 和 l'hôpital。但如果你说的是树篱……那就是 la haie……甚至更离谱的是,狨猴是 le ouistiti。

  4. abraxas

    作为非母语者,比起“a vs an”,更让我头疼的是“a vs the”这个难题。我至今还没完全搞懂什么时候该用“不定冠词”,尽管我讲英语已经快四十年了。我的母语里根本就没有冠词,这实在太难了,我觉得自己这辈子可能都彻底掌握不了它们。

  5. tikhonj

    有趣的是,有些词两种用法都说得通:比如“a hotel”vs“an hotel”,或者“a SQL query”vs“an SQL query”。

  6. MathMonkeyMan

    是“a LLM”还是“an LLM”?

    更广泛地说,选择冠词时,是把首字母缩略词的第一个字母当作发音来选,还是把首字母缩略词代表的第一个单词当作发音来选?首字母缩写(acronyms)的情况会不同吗?英美之间会有区别吗?

  7. vbernat

    “anorack”是一个专门的拼写检查器,用来判断我们需要用“a”还是“an”。它使用 espeak 将单词分解为音素。

  8. steve_taylor

    有人把“一年”说成“an year”时,真的让我火大。

同日更多故事

2026-09-19