انگلیسی: A vs
آدرس مقاله: https://www.redblobgames.com/blog/2026-09-16-english-a-vs-an/ آدرس نظرات: https://news.ycombinator.com/item?id=49769944 امتیاز: 203 # نظر: 276
در انگلیسی، یک مقاله "نامعین" a وجود دارد که می تواند قبل از یک کلمه باشد. به عنوان مثال، یک راکون. اما برای برخی از کلمات، از یک . مثلا یک سیب.
هنگام تولید متن به صورت رویه ای، من یک تابع a_or_an ("apple") می خواهم که به من می گوید از کدام مقاله استفاده کنم. به نظر می رسد که آسان باشد. میتوانیم حرف اول را بررسی کنیم تا ببینیم مصوت است یا خیر. اما این بدان معناست که ما یک تک شاخ را خروجی می دهیم، نه یک تک شاخ.
قانون واقعی این نیست که آیا کلمه نوشته شده با یک حرف مصوت شروع می شود یا خیر، بلکه این است که آیا کلمه گفتاری با صدای مصوت شروع می شود. کلمه <unicorn> با حرف مصوت (<u>) شروع می شود اما یک صدای همخوان (cmudict Y, ipa /j/). کلمه <hour> با یک حرف همخوان (<h>) اما صدای مصوت (cmudict AW، ipa /aʊ/) شروع می شود.
من کنجکاو بودم که این استثناها چند بار اتفاق میافتند، و آیا میتوان آنها را با هم گروهبندی کرد، بنابراین یک روز را صرف نگاه کردن به دادهها و ایجاد برخی تجسمها کردم و نتایج را نوشتم. من تعجب کردم که فقط 129 کلمه از 32455 کلمه در لیست من به استثنا نیاز دارد.
[یادداشت LLM: من از LLM برای نوشتن هیچ یک از این کدها استفاده نکردم، اما در گذشته، باید این کار را می کردم. این کد یکبار برای پاسخ به یک سوال است. لازم نیست تمیز یا قابل نگهداری باشد. فقط باید درست باشه من زمان بیشتری را برای الگوریتم ساده سازی trie و زمان کمتری را برای تجزیه cmudict و یادگیری مجدد d3.js صرف می کردم.]
متن اصلی (انگلیسی)
English: A vs. An
Article URL: https://www.redblobgames.com/blog/2026-09-16-english-a-vs-an/ Comments URL: https://news.ycombinator.com/item?id=49769944 Points: 203 # Comments: 276