【问题标题】:Word wrap algorithms for Japanese日语的自动换行算法
【发布时间】:2011-01-06 14:42:28
【问题描述】:

在我最近构建的一个 Web 应用程序中,当我们的一个用户决定使用它来创建完全用日语的东西时,我感到非常惊喜。然而,文字被奇怪而笨拙地包裹着。显然浏览器不能很好地处理日文文本的换行,可能是因为它包含的空格很少,因为每个字符构成一个完整的单词。但是,这并不是一个真正安全的假设,因为某些单词是由多个字符构成的,并且将某些字符组分成不同的行是不安全的。

谷歌搜索并没有真正帮助我更好地理解问题。在我看来,一个人需要一本牢不可破的模式字典,并假设其他任何地方都可以安全地破解。但是我担心我对日语的了解不够,无法真正了解所有的单词,我通过一些搜索了解到,非常复杂。

您将如何解决这个问题?您是否知道已经存在任何可以令人满意的方式处理此问题的库或算法?

【问题讨论】:

  • 我认为你不能在不理解单词的情况下自动换行日语,所以你至少需要一本日语词典。我无法告诉你这有多难,或者是否有任何歧义(意思是正确的词取决于上下文,这会使它变得非常复杂)。
  • 不是真的重复 - 这个问题是关于将文本分成单词以进行索引。这是一个难题。幸运的是,在为布局包装时,它可以在很大程度上被忽略。

标签: algorithm unicode internationalization cjk word-wrap


【解决方案1】:

下面列出的项目对于解决日语自动换行(或从另一个角度来看的分词)很有用。

mikan 使用基于正则表达式的方法,而 budou 使用自然语言处理。

【讨论】:

    【解决方案2】:

    日语自动换行规则称为kinsoku shori,非常简单。他们实际上主要关心标点符号,根本不尝试保持单词不间断。

    我刚查了一本日本小说,确实,音节假名中的单词和由多个汉字组成的单词都被包裹在单词中间而不受惩罚。

    【讨论】:

    • 我刚刚在 Yahoo Japan 上尝试过。 Firefox 似乎实现了 kinsoku shori。我找不到以右括号开头的行(这就是我检查的全部内容)。有了 Safari,我可以。
    • 根据@Michael 的评论表,我发现日语大小写的包装规则不同。由于我在将 html 呈现为 PDF 时包装日文内容时遇到问题,有没有办法使用 CSS 或任何其他方式包装日文?
    • 澄清一下,@Michael 并不是说​​换行是免费的。关于如何执行换行符以及不允许换行符的情况有特定的规则。他链接到的维基百科文章非常有帮助。
    猜你喜欢
    • 1970-01-01
    • 2010-09-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-08-31
    • 2014-07-20
    • 1970-01-01
    相关资源
    最近更新 更多