language-agnostic - String.Format 中的适当文章 (a/an)

标签 language-agnostic localization grammar nlp

我正在寻找一种文化敏感的方式来在使用适当的文章 (a/an) 时正确地将名词插入句子中。它可以使用 String.Format,或者如果在其他地方存在适当的方法来执行此操作,则可能使用其他方法。

例如:

基本句子:“您正在查看一个/一个 {0}”

这应该格式化为:“你在看胡萝卜”或“你在看鸡蛋”。

我目前正在通过手动检查要插入的单词的第一个字符然后手动插入“a”或“an”来执行此操作。但我担心当应用程序本地化为其他语言时,这可能会限制我。

是否有解决此问题的最佳实践?

解决方案:问题似乎很复杂,以至于不存在以我最初所说的方式解决此问题的实用程序或框架。似乎最好的解决方案(在我的情况下)是将文章与名词一起存储在数据库中,以便翻译人员可以拥有他们需要的控制级别。感谢所有的建议!

最佳答案

问题甚至在英语中,a-vs-an 不是由起始字母决定的,而是由起始音决定的。您可以根据起始字母用英语做出一个很好的假设,但也有一些异常(exception)(例如“小时”、“用户”)。

最好的办法是获得一个单词的发音以便能够选择。

除此之外,下一个最好的办法是列出常见异常,然后猜测其余的。

来自 Wikipedia :

The choice of "a" or "an" is determined by phonetic rules rather than by spelling convention. "An" is employed in speech to remove the awkward glottal stop (momentary silent pause) that is otherwise required between "a" and a following word e.g. "an X-ray" ... The following paragraphs are spelling rules for "an" which can be used if the phonetic rule is not understood.

关于language-agnostic - String.Format 中的适当文章 (a/an),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/825846/

相关文章:

java - 在 ANTLR AST 中保留生产订单

parsing - 使用 Parsec 解析正则表达式

events - 事件处理程序,事件监听器和事件注册是否都引用相同的内容?

algorithm - 自动完成的后端

algorithm - 如何快速找到最佳投弹区?

xcode - 如何在特定语言环境(例如英语)中调试Xcode应用程序?

Android:本地化标准文本,例如 OK、CANCEL 和 GPS 未激活 - 例如?

.net - 有没有一种方法可以生成编译器错误?

ios - Xcode, swift : how to add multi-language support in an iOS app and have strings with placeholders and plurals?

f# - F# 中的上下文敏感数据处理