C# 将字符串中的单词转换为德语句子的大小写
我正在寻找一种方法,将字符串中的单词改为句子大小写。 我知道方法C# 将字符串中的单词转换为德语句子的大小写,c#,C#,我正在寻找一种方法,将字符串中的单词改为句子大小写。 我知道方法TextInfo.ToTitleCase,但这对德语来说并不正确。与方法的文档中一样: Input Language Expected result Actual result Per anhalter durch die Galaxis German Per Anhalter durch die Galaxis Pe
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");
res是知道的
Per Anhalter Durch Die Galaxis
您只想固定和名词的外壳。在.NET中没有内置的功能。您选择的方法,
TextInfo.ToTitleCase()
,太“愚蠢”了,因为它只会将每个单词的第一个字母大写
据我所知,你需要自然语言处理。字典是不会删掉它的,因为有些词既可以解释为名词(应该大写),也可以解释为动词(不应该大写)
或者,换言之(忽略名词部分一分钟):当你遇到“sie”时,你如何知道“他们”(“sie”)或“你”(“sie”)是指正式的意思
不过,您可以尝试一下,使用一种天真的方法,这种方法不会产生完美但可能可以接受的结果:
准备:
您只想固定和名词的外壳。在.NET中没有内置的功能。您选择的方法,
TextInfo.ToTitleCase()
,太“愚蠢”了,因为它只会将每个单词的第一个字母大写
据我所知,你需要自然语言处理。字典是不会删掉它的,因为有些词既可以解释为名词(应该大写),也可以解释为动词(不应该大写)
或者,换言之(忽略名词部分一分钟):当你遇到“sie”时,你如何知道“他们”(“sie”)或“你”(“sie”)是指正式的意思
不过,您可以尝试一下,使用一种天真的方法,这种方法不会产生完美但可能可以接受的结果:
准备:
ToTitleCase
简单而朴素地更改字符串中每个单词的大小写,使单词的第一个字母为大写。文化信息将用于确定单词的第一个字母是什么(例如,单词之间的符号/标点符号),但不用于确定给定语言的哪些单词应该(不)命名。。对于这种语言理解水平,您需要推出自己的解决方案ToTitleCase
简单而朴素地更改字符串中每个单词的大小写,以便单词的第一个字母是大写。文化信息将用于确定单词的第一个字母是什么(例如,单词之间的符号/标点符号),但不用于确定给定语言的哪些单词应该(不)命名。。您需要推出自己的解决方案,以达到这种语言理解水平,即所谓的字典。你希望所有名词都大写。你能更新问题并发布代码吗?你有没有试过明确地为德语设定文化?类似这样的内容:TextInfo myTI=newcultureinfo(“en-DE”,false)将指定的字符串转换为标题大小写(完全大写的单词除外,它们被视为首字母缩略词)。“我不认为您的期望是正确的,它的行为应该是正确的。它不能区分不同类型的词,这叫做字典。你希望所有名词都大写。你能更新问题并发布代码吗?你有没有试过明确地为德语设定文化?类似这样的内容:TextInfo myTI=newcultureinfo(“en-DE”,false)将指定的字符串转换为标题大小写(完全大写的单词除外,它们被视为首字母缩略词)。“我不认为您的期望是正确的,它的行为应该是正确的。它不能区分不同类型的词。