我正在寻找一种将字符串中的单词更改为SentenceCase的方法。我知道TextInfo.ToTitleCase的方法,但这对德国人来说不是正确的方法。类似于方法的文档:
Input Language Expected result Actual result
Per anhalter durch die Galaxis German Per Anhalter durch die Galaxis Per Anhalter Durch Die Galaxis是否有另一种方法来转换这一正确(获得预期的结果)?动词和形容词应该是小写的。
有许多问题,但我还没有找到一个正确的工作方式与德国人。
编辑:
我试过了
var ti = new CultureInfo("de-DE", false).TextInfo;
var res = ti.ToTitleCase("Per anhalter durch die Galaxis");我们知道
Per Anhalter Durch Die Galaxis发布于 2017-12-06 12:41:13
您希望为德语名词展示修复大小写,并且只修复名词。在.NET中没有内置的功能。您选择的方法TextInfo.ToTitleCase()太“愚蠢”了,因为它只会大写每个单词的第一个字母。
据我所知,你需要自然语言处理。字典不会删掉它,因为有些词既可以解释为名词(应该大写),也可以解释为动词(不应该大写)。
或者,换句话说(忽略名词部分一分钟):当你遇到"sie",你怎么知道“他们”("sie")还是“你”(你),正式的意思("Sie")?
不过,您可以尝试一下,使用一种天真的方法,这种方法不会产生完美但可能可以接受的结果:
准备工作:
代码:
发布于 2017-12-06 12:42:21
ToTitleCase简单而天真地改变了字符串中每个单词的大小写,以便一个单词的第一个字母是大写字母。文化信息将用于确定什么是单词的第一个字母(例如,哪些符号/标点符号分开的单词),但这并不是为了确定给定语言的哪些单词应该(不)冠以标题。您需要为这种语言理解水平提供自己的解决方案
https://stackoverflow.com/questions/47674335
复制相似问题