首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将字符串中的单词转换为德语句子的大小写

将字符串中的单词转换为德语句子的大小写
EN

Stack Overflow用户
提问于 2017-12-06 12:28:50
回答 2查看 144关注 0票数 0

我正在寻找一种将字符串中的单词更改为SentenceCase的方法。我知道TextInfo.ToTitleCase的方法,但这对德国人来说不是正确的方法。类似于方法的文档:

代码语言:javascript
复制
Input                            Language    Expected result                   Actual result
Per anhalter durch die Galaxis   German      Per Anhalter durch die Galaxis    Per Anhalter Durch Die Galaxis

是否有另一种方法来转换这一正确(获得预期的结果)?动词和形容词应该是小写的。

有许多问题,但我还没有找到一个正确的工作方式与德国人。

编辑:

我试过了

代码语言:javascript
复制
var ti = new CultureInfo("de-DE", false).TextInfo;
var res = ti.ToTitleCase("Per anhalter durch die Galaxis");

我们知道

代码语言:javascript
复制
Per Anhalter Durch Die Galaxis
EN

回答 2

Stack Overflow用户

发布于 2017-12-06 12:41:13

您希望为德语名词展示修复大小写,并且只修复名词。在.NET中没有内置的功能。您选择的方法TextInfo.ToTitleCase()太“愚蠢”了,因为它只会大写每个单词的第一个字母。

据我所知,你需要自然语言处理。字典不会删掉它,因为有些词既可以解释为名词(应该大写),也可以解释为动词(不应该大写)。

或者,换句话说(忽略名词部分一分钟):当你遇到"sie",你怎么知道“他们”("sie")还是“你”(你),正式的意思("Sie")?

不过,您可以尝试一下,使用一种天真的方法,这种方法不会产生完美但可能可以接受的结果:

准备工作:

  1. 获取所有德语单词的字典文件
  2. 把它去掉,只剩下名词。

代码:

  1. 在单词边界上分割您的输入
  2. 将每个单词与你的字典匹配。
  3. 大写单词的第一个字母,如果是成功的话
  4. 重新组合输入
票数 1
EN

Stack Overflow用户

发布于 2017-12-06 12:42:21

ToTitleCase简单而天真地改变了字符串中每个单词的大小写,以便一个单词的第一个字母是大写字母。文化信息将用于确定什么是单词的第一个字母(例如,哪些符号/标点符号分开的单词),但这并不是为了确定给定语言的哪些单词应该(不)冠以标题。您需要为这种语言理解水平提供自己的解决方案

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47674335

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档