masatoz’s blog

プログラミングのメモ、日常の記録

OmegaTの分節化規則: ピリオドの後で分節化するのを避けるには

OmegaTで英文を分節化するときにうまくいかなかったけど、今日発見があったのでメモします。

やりたいこと

英語で複数の文章を1文節とした場合にピリオドの直後に続くスペースで分節化しない。

NGケース:

f:id:masatoz:20170418155513p:plain

This. is. a. sample. sentence.という、通常ありえない文ではありますが、改行なしで一続きのテキストがあります。 改行のみで分節化してほしい場合、これでは困ります。

方法

「分節化規則」の「初期値」をいじるとピリオドの後で分節化するのを避けることができます。

f:id:masatoz:20170418155144p:plain

ここに前方の正規表現[\.\?\!]+、後方の正規表現\sという項目があります。 .(ピリオド)または?(クエスチョンマーク)、!(エクスフラメーションマーク)の直後に1文字以上のスペースが続く場合に分節化する、ということになっています。

なので、これのチェックをはずします。 設定を変更して、再読み込みします。

こうなりました。OK! f:id:masatoz:20170418155711p:plain

この設定が有効になっていると、デフォルトで用意されている「Mr.」「etc.」などを分節化しない設定が無効になります。

設定をみてみると

f:id:masatoz:20170418160131p:plain

こんな感じです。

後方の正規表現にみな\sがあります。

ということはetc.が来て、直後に一文字以上のスペースが来たら分節化する、の意になります。

しかし.(ピリオド)の直後に一字以上のスペースの方が先に適用されてしまうので、上記の表現はみんな効かなくなってしまいます。