Engineer in Tokyo

TIL: 日本語の改行をいい感じにするBudouX

最近、LaTeXで日本語のレジュメを作成している際、日本語の単語の途中やカンマの直前など、不自然な位置で改行されて読みにくいと感じていました。そんな時、budoux-latexというプロジェクトを見つけました。

budoux-latexは、人工知能を用いたBudouXを使ってLaTeXの改行を処理します。BudouXは、日本語、中国語、韓国語といったCJK言語に対応したMLモデルで、pip install budouxで非常に簡単にインストールできます。Pythonだけでなく、JavaJavaScriptのAPIもあるようです。

CLIからもPythonコードからも簡単に利用できます。

import budoux
parser = budoux.load_default_japanese_parser()
print(parser.parse('今日は天気です。'))
# ['今日は', '天気です。']

後で知ったのですが、BudouXは飯塚先生がGoogleで作ったもので、もともとChromeのために開発されたらしく、ウェブページでは短いCSSだけで利用できます。text-wrap: balanceというCSSプロパティもあるようですが、日本語の場合、表示エリアの幅をうまく使えず、6行以上のテキストには適用できません。一方、word-break: auto-phraseは行数の制限はありませんが、原則として日本語にのみ適用されます。

<!DOCTYPE html>
<html lang="ja">
    <style>
        body {
            word-break: auto-phrase;
        }
    </style>

    <body>
        今日は天気です。明日はもっといい天気になるでしょう。
    </body>
</html>

このサイトの日本語ページにこのCSSを加えて、いい感じに読みやすくなりました。