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)将指定的字符串转换为标题大小写(完全大写的单词除外,它们被视为首字母缩略词)。“我不认为您的期望是正确的,它的行为应该是正确的。它不能区分不同类型的词。