TIL: 日本語の改行をいい感じにするBudouX
最近、LaTeXで日本語のレジュメを作成している際、日本語の単語の途中やカンマの直前など、不自然な位置で改行されて読みにくいと感じていました。そんな時、budoux-latexというプロジェクトを見つけました。
budoux-latexは、人工知能を用いたBudouXを使ってLaTeXの改行を処理します。BudouXは、日本語、中国語、韓国語といったCJK言語に対応したMLモデルで、pip install budouxで非常に簡単にインストールできます。Pythonだけでなく、JavaやJavaScriptの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を加えて、いい感じに読みやすくなりました。