« 原文の構造解析2 | Main | 重複処理の防止 »

2014.02.19

原文の構造解析3

構造解析で文章を区切るときに注意すべきことを処理の順番に考えてみる。区切りの順番は「大きなものを先に、小さな区切りは後に」が鉄則である。

区切るという処理を考える場合には、それがどのように行われるか細かく分けて記述することが大切になる。最初は大まかにしか表現できないかもしれない。しかしその大きな括りの中にもいくつかの段階があることが次第に見えてくる。それを言葉にするという作業を繰り返す(そしてこのことは実はすべての仕事に当てはまる)。

構造解析では最初に一文が終わったら区切るということをする。文と文の間に行を空ければ読みやすくなる。一文が終わったら行を改めてさらに一行空ける(これはあくまで翻訳のための工夫。通読するなら区切りすぎると全体観が失われる)。

これをもう少し作業手順に近い言葉にすれば「一文が終わったら、改行マークを2つ付加する」ということになる。さらに「一文が終わったら」を検索条件として表現すると、英文なら「英文字の後にピリオドが続いたら」になる(構造解析2を参照)。

ただしピリオドの処理でもかなりの場合がある。ピリオド直前に括弧などの役物が付いていることがあるし、ピリオドの後複数の空白が続くこともある。それらの条件を考えると検索置換は1回では終わらない。

さらにMr. Mrs. Dr. Jr.やミドルネームなどのピリオドは文末ではないので除外しなければならない。区切ってはならないところで区切られないように対策を講ずる必要が出てくる(区切り防止を参照)。

例えばMr. XXXの途中で区切られないようにするにはどうするか。ワードならそのような箇所を探して、そこに書式を掛けておく。その後の改行処理をするときは、書式のない部分のみを検索対象にすることで、Mr. XXXの途中では区切られなくなる。一種のロックである。

スクリプトは
.Text = "(Mr.) "
.Replacement.Text = "\1 "
.MatchWildcards = True
.Replacement.ClearFormatting  'まず書式クリア
.Replacement.Highlight = True  '改めて書式設定
となる。

秀丸では書式設定ができないので、別の考え方を使う。この部分をよく見ると、ピリオドとXの間に半角空白がある。改行処理ではピリオド+半角空白を検索しているのであるから、Mr.のあとの半角空白を一時的に別のものに替えておけば良い。

つまり
- Mr. (半角空白あり)をMr.●にする
- 通常の改行処理をする
- Mr.●をMr. (半角空白あり)に戻す
という処理をするのである。

処理が1回で終わらないということは文末が疑問符、または感嘆符で終わるときにも当てはまる。また役物の有無に注意すべきということは、カンマ、コロン、セミコロンについてもいえる。要は、条件は人が想像している以上にたくさんあるということかもしれない。

|

« 原文の構造解析2 | Main | 重複処理の防止 »

Comments

Post a comment



(Not displayed with comment.)


Comments are moderated, and will not appear on this weblog until the author has approved them.



TrackBack

TrackBack URL for this entry:
http://app.cocolog-nifty.com/t/trackback/20048/59161389

Listed below are links to weblogs that reference 原文の構造解析3:

« 原文の構造解析2 | Main | 重複処理の防止 »