全角スペースを半角に変換する

先日、某所でWildLight初級セミナーを行いました。そこで「全角スペースを半角へ変換する方法」の質問を受けましたので、WildLight辞書の記述方法を記しておきます。

' ワイルドカードモードにする
WILDCARD:ON
' 全角スペースに蛍光ペンを付ける(変換箇所が分かるように)
[ ]
Zen2Han,[ ]

辞書ファイル「WLDIC_変換_全角スペースを半角へ変換.txt」としてWildLight共有フォルダーに公開しておきましたので、ダウンロードしてご利用ください。

WildLightで「翻訳したら勝手に対訳表」

本家「翻訳横丁の裏路地」に「翻訳したら勝手に対訳表」という記事をあげましたが、原稿を変換する作業をWildLightに自動で行わせるために辞書ファイルを作成しました。

辞書名の番号(1)(2)は適用する順番を示しています。具体的な手順は以下のようになります。

  1. 翻訳前の原稿に(1)のファイルを適用します。
  2. 変換された原稿の罫線の間に、パラグラフごとに訳文を入力していきます。
  3. 翻訳後の原稿に(2)の辞書を適用します。
  4. WildLightのメニューから「辞書管理」→「TAB区切りテキストを表にする」を選択して実行します。すると対訳表が出来上がります。
    なお、このステップ4は Ver. 2.54以降では必要ありません。ステップ3で自動的に対訳表が作成されます。(特殊コマンド「Tab2Table」が有効になるため)

どのように使うかは、以下のYouTube動画を参照してください。

各ファイルが何をやっているかは、辞書を読んで解析してください(笑)

大雑把な説明をすれば、(1)のファイルで余分な改行を削除して1パラグラフ1改行にし、各パラグラフの後ろに訳文を入力するためのマーカーとなる罫線セット(罫線上と罫線下)を追加しています。(2)のファイルは、原文パラグラフの後ろにある改行とマーカー(罫線上)をTABへ変換し、改行をすべて半角スペースに変換後、残ったマーカー(罫線下)を改行に変換して、TAB区切りテキストに変換しています。

これでお分かりいただけるとおり、訳文を入力する際に、視認性や読みやすさを確保するために訳文パラグラフの中で改行が行われても、対訳表に変換する前作業ですべて半角スペースに置換されますから、対訳表にするときに問題になりません。

この方法は、ワードで原文パラグラフの下に訳文を入力して翻訳するスタイルを多用される方には、便利かもしれません。

以前からWildLightセミナーや翻訳チェックのセミナーでお伝えしているとおり、翻訳チェックをする上で、対訳表作成で得られる効果は絶大です。翻訳チェックの精度が向上するのみならず、対訳表になったものをCSVファイルなどへ変換すれば、翻訳支援ツールの翻訳メモリーへ持ち込むことも容易となり、翻訳資産としての活用にも役立ちます。

非常に簡単な方法ですので、一度試してみることをお勧めいたします。

数字の3桁位取りを自動化する

先日行ったWildLight中級セミナーで、受講していただいた方から以下のようなお題をいただきました。もちろん、セミナーではこれを題材にワイルドカードとWildLight特殊コマンドの実習を行いました。うまく解決できたお題ですので、当ブログでシェアいたします。

4桁以上の数字を自動的にカンマで位取りしたい

まず考えたいのは、対象となる数字の桁数です。4桁以上は確かですが、最大何桁までを対象と考えるかです。

X,XXX 〜 XXX,XXX,XXX,XXX

まぁ「兆」くらいをカバーしておけば実用的でしょうか?(笑) すると対応しなくてはならない組合せは以下の3通りということになります。

XXX,XXX
XXX,XXX,XXX
XXX,XXX,XXX,XXX

ワイルドカードで実現する上で、数字の桁数によって処理を変えるというのは、記述が難しそうですので、まずは、末尾三桁(下の例だと012)とそれ以前(123456789)を分けてヒットさせる方法を考えました。

123456789012

[0-9]@[0-9]{3}>

このワイルドカードの記述により、末尾三桁を[0-9]{3}> でヒットさせ、それ以前を [0-9]@ でヒットさせられます。それぞれを置換時に利用するために ( ) で括り、そして、それらの間に位取りのカンマ「,」を挿入するために、置換語に「¥1,¥2」と記述すれば良いことになります。WildLight辞書へは以下のように記述します。(※(TAB)は実際にタブキーを押して入力してください)

WILDCARD:ON
([0-9]@)([0-9]{3})>(TAB)¥1,¥2

この辞書を実行すると、4桁以上の数字は、以下のようになるはずです。

123,456
123456,789
123456789,012

さて、さらに上位の桁の位取りはどうしたらいいでしょう?
そうです。このワイルドカードを繰り返して実行すればいいのです。

ただし、ここで注意しなければならないのは、WildLightに以下の基本機能があることです。

  1. 検索した結果には、必ず蛍光ペンが付く。
  2. 蛍光ペンのない箇所が検索対象となる。

上記のワイルドカードを実行したことにより、数字にはすべて蛍光ペンがついている状態になっています。つまり、そのまま続けて実行したのでは、それらの数字は検索対象から除外されてしまい、位取りがされません。そこで利用するのが、検索時の蛍光ペンの有無を無視するコマンド「IgnoreH」です。

IgnoreH:ON で、検索時に蛍光ペンの有無を無視します(すべてを検索対象として検索する)。ちなみに IgnoreH:OFF でデフォルト値に戻り、基本機能通り、蛍光ペン箇所は検索対象から除外されます。では、これを使って辞書を記述してみると以下の通りになります。

WILDCARD:ON
([0-9]@)([0-9]{3})>(TAB)¥1,¥2
IgnoreH:ON
([0-9]@)([0-9]{3})>(TAB)¥1,¥2
([0-9]@)([0-9]{3})>(TAB)¥1,¥2

これで、兆までの数字に対して3桁位取りが自動で行われ、蛍光ペンがつきます。

この辞書は、ライブラリーに「WLDIC_変換_4桁以上の数値をカンマで自動的に位取り.txt」という名前で登録してありますので、ダウンロードしてご利用ください。

WildLightは、ワイルドカードの1文では表現しきれない処理も、辞書に記述を並べることで処理を可能にできるところが、大きな特長です。

助詞の反復箇所を検出する

なんとなくFBへ書き込んだ誤変換ネタに、「助詞の反復箇所をWildLightで検出できますよね」という趣旨のレスをいただきました。

なるほど!というわけで、「WLDIC_JCHK_日本語チェック.txt」に追加しておきました。

([がのをにへとでやもては])\1

もっと荒っぽく、同じひらがなが2文字連続したものへ蛍光ペン付けするには、以下の記述です。

([ぁ-ん])\1

和訳品のチェックに使っているWildLight辞書へ、追加しておくと良いですね。

ウエブにある用語集をWildLight辞書に変換してみる

インターネット上には専門分野に特化した用語集が多く公開されており、翻訳作業の中でその業界や分野で使用される用語を理解するために、良く利用されていると思います。ただ、インターネット上にあることで検索性が乏しく、PC内にある辞書と同じように簡単に検索出来たらと考えるのは、翻訳を仕事にしている人間なら当然のことでしょう。

私が良くやるのは、それらのウエブ用語集を変換してWildLight用辞書にしてしまうという方法です。一度変換しておけば、他への流用もできますからとても有益な作業なのですが、ただ、それを簡単に実現する方法がありませんよね?
私もいろいろな方法を使っていますが、1つの方法としてWildLightを使う方法です。

今回は、その方法の一例をご紹介します。

今回、題材にあげるのは統計用語集(http://software.ssri.co.jp/statweb2/gloss/glossary.html) です。この用語集を例にした理由は、通常、公開されている用語集には表形式が多く、それらはどちらかといえば変換が容易な形式ですが、この統計用語集は日本語と英語が複数行に跨いでおり、変換が難しいと思われたからです。

こういったウエブ用語集は、その作り方により、変換が可能なものとそうでないものに分かれますが、表示される画面のソースを見て判断することになります。今回は、以下のようなアプローチで変換を試みます。

  1. ソースファイルを読み解く。
  2. 変換するための作戦を決める。
  3. ワイルドカードとWildLight特殊コマンドを記述する。

1.ソースファイルを読み解く

統計用語集の「ア行」を表示し、ブラウザ上で右クリックしてソースを表示します。すると、こんな記述がみられます。

ア行

この場合、用語集として必要になるのは日本語と英語のペアですが、ソースファイルを上から下まで眺めていくと、どうも、この用語ペアは以下のような記述になっているようです。

<h3 id=”a022″>アドホック調査<br>ad hoc survey</h3>

2.変換するための作戦を決める

ソースを良く見て、すべてが以下のような構成になっているかを確認します。「<h3 id=”????”>」や「<br>」「</h3>」が他に使用されていないかもあわせて確認します。

<h3 id=”????”>検索語<br>置換語</h3>

他の読み行のソースも含めて確認し、すべてこの構成で成り立っていて、かつ、他に使用されていないことが確認できました。では、以下の作戦でやってみましょう。

  • 「<h3 」で始まるタグを用語ペアの先頭(3の後ろには半角スペースがあります)
  • 「<br>」をセパレータ
  • 「</h3>」を用語ペアの終端

これらの条件で用語ペアの検索を掛けて、対象に蛍光ペン付けし、WildLightの特殊コマンド ExtractH2Word で蛍光ペン部をワードへ抜き出します。

1回の作業で用語集ができそうな感じに見えますが、実は、<br>をタブに変換した後に特殊コマンド(ExtractH2Word)でワードへ抽出した場合、タブが消えてしまうという制限があるため、2段階で作業をする必要があります。つまり、まず、1)用語ペアを抜き、それから2)セパレータをタブへ置換する、という流れになります。

3.ワイルドカードとWildLight特殊コマンドを記述する

用語ペアの抜き出しの記述を考える前に、用語ペアを抜いた後の処理を少し意識しておきたいと思います。それは、今後もいろいろな形式の用語集を変換することになると想像され、二度目の処理としてセパレータの置換が必ず発生するわけですから、できれば毎回同じWildLight辞書で処理できるように、最初の処理である「用語ペア抜き」の結果が、いつも同じスタイルになるようにルールを決めておきたいと思います。

そのルールとは、用語ペアは「●」で囲み、セパレータは「■」とするスタイルです。

では、今回のケースでも、抜き出し結果がこのスタイルになるように用語ペアを抜いてみます。

  • 「<h3 」で始まるタグを「●」に変換
  • 「<br>」を「■」に変換
  • 「</h3>」を「●」に変換

次に、作業の流れを作ります。

  1. 蛍光ペンを付けずに、「<h3 」で始まるタグを「●」に変換
  2. 蛍光ペンを付けずに、「<br>」を「■」に変換
  3. 蛍光ペンを付けずに、「</h3>」を「●」に変換
  4. 「●」と「●」に挟まれた文字列へ蛍光ペンを付ける。
  5. 蛍光ペン部を新文書へ抽出する。

この流れにより、「●検索語■置換語●」というスタイルで用語ペアが抽出されることになります。では、具体的にワイルドカードと特殊コマンドで記述してみます。

  1. WILDCARD:ON
    まず、ワイルドカードが利用できるようにONにします。
  2. ~\<h3 *\>(tab)
    置換後の文字に蛍光ペンを付けないため、先頭に「~」を付与し、検索語「\<h3 *\>」を記述します。(「<」や「>」などのワイルドカード文字を検索語とするときは、その前に「\」を付けなくてはなりません。)
    そしてセパレータのタブを入れ、置換語の「●」を記述します。
  3. ~\<br\>(tab)
    同様に蛍光ペンなしの「~」を先頭に入れて、検索語「\<br\>」を記述し、セパレータのタブを入れて、置換語の「■」を記述します。
  4. ~\<\/h3\>(tab)
    同様に蛍光ペンなしの「~」を先頭に入れて、検索語「\<\/h3\>」を記述し、セパレータのタブを入れて、置換語の「●」を記述します。
  5. ●*●
    ●で挟まれた文字列をすべて蛍光ペン付けします。
  6. ExtractH2Word
    蛍光ペンがついた文字列をワードへ新規文書として抽出します。

これらを記述した辞書を作成し、統計用語集のア行のソースに適用してみます。
(「WLDIC_Sample_抽出_統計用語集.txt」としてWildLight Dic Library に登録しておきましたので、ご覧ください)

抽出用語ペア

上手く用語ペアが抽出できたようです。あとは、最後の料理として、「●」を消し、「■」をタブに置き換えます。そのための記述は以下のようになります。

  1. WILDCARD:ON
    ワイルドカードが利用できるようにONにします。
  2. ~●(*)●(tab)\1
    置換結果に蛍光ペンが付かないよう先頭に「~」を付与し、「●」で挟まれた文字列を検索して、「●」を除いた文字列へ置き換えます。
  3. ~■(tab)^t
    置換結果に蛍光ペンが付かないよう先頭に「~」を付与して「■」を検索し、タブ(^t)へ置換します。

これらを記述した辞書ファイルを「WLDIC_変換_●■●記述を辞書へ変換する.txt」として登録してありますので、ご利用ください。(今後、「●検索語■置換語●」スタイルで用語ペアを抽出すれば、この辞書を流用できます)

この辞書を、上記の抽出結果に適用すると、以下のようになります。

変換後

この作業を各「読み行」で実施し、変換された用語ペアを合体すれば、WildLight辞書の出来上がりです。

こんなやり方で、ウエブに公開されているいろいろな用語集を変換してみると良いと思います。

「FIGURE 1A」を「図 1A」に変換したい

今日、以下のような変換をしたいという問合せをもらいました。

英語から和訳を行う際、英語の「FIGURE 1A」とか「FIGURE 10B」を、それぞれ「図 1A」、「図 10B」に変換したいとの事でした。

これをWildLightで変換する場合、ワイルドカードと特殊コマンド Han2Zen を使えば変換できます。

WILDCARD:ON
FIGURE ([0-9A-Z]{1,})                 図 ¥1
Han2Zen,[0-9A-Z]

この3行を記述した辞書ファイルを準備すれば良いです。(2行目の検索語と置換語の間は TABです)

1行目の「WILDCARD:ON」でワイルドカードモードをONにします。

2行目は、検索語に「FIGURE ([0-9A-Z]{1,})」、置換語に「図 ¥1」を指定して置換します。「([0-9A-Z]{1,})」にヒットする図番号が、置換語の「¥1」に代入されて置換されます。

3行目の「Han2Zen,[0-9A-Z]」で半角数字と英大文字を全角文字へ変換します。

お試しください。

SFAオープンスクールの質問から

昨日、2月28日(土)はサン・フレアアカデミーのオープンスクールでした。

クラスの中でWildLightの使い方に関する質問がありました。これは他の皆さんも利用できる情報ですので、ここにシェアしておきます。

1. 蛍光ペンのついた文字列をワードやエクセルへ抜き出せるか?

WildLight特殊コマンドの「ExtractH2Word」もしくは「ExtractH2Excel」を使います。

例)
ExtractH2Excel

いずれかのコマンドを1行記述した辞書ファイルを準備し、蛍光ペンされたテキストを抜き出したいワード文書へ適用すれば、抜き出せます。

この例を記述した辞書を「WLDIC_抽出_蛍光ペン部をExcelへ抜く.txt」として作成しておきました。ライブラリーからダウンロードしてご利用下さい。

2. PDFファイルからワードにしたものを整形するには、どうしたらいいか?

 この質問については明確な回答ができませんでした。PDFからワードファイルを起こした場合、使用したアプリケーションや原稿PDFの中身によって、出る症状が違うからです。

  • 私の経験した症状として、以下のようなものがあります。
    1. 全角文字間に全半角スペースが紛れ込んでいる。
    2. 全半角数字の後ろに複数の半角スペースが入っている。
    3. 半角英数字間のスペースに全角スペースが入っている。
    4. 文頭に不要なスペースが入っている。

これらへの対処として、以下のような処理を行っています。

' 全角英文字カタカナ漢字の間に挟まった全半角スペースを除去する
 
 ([a-zA-Zァ-ヾ一-鶴ぁ-ゞ])[  ]{1,}([a-zA-Zァ-ヾ一-鶴ぁ-ゞ])     \1\2
' 全半角数字の後のスペースを半角スペース1つにする

 ([0-90-9])[  ]{2,}     \1
' 半角英数字間のスペースを半角スペース1つにする

 ([\!-~])[  ]{1,}([\!-~])     \1 \2
' 文頭の不要なスペースを削除する

 ^13[  ]{1,}     ^p

上記4例とも、[ ]の中は全角スペース1つと半角スペース1つが入っています。
また、セパレーターはTABです。
これらが記述された辞書は、「WLDIC_編集_日本語:PDF抽出文書の成形.txt」として提供しています。

3. エクセルやパワーポイントファイルからテキスト抽出するには、どうしたらいいか?

Microsoft Office Personal以外(Excel, PowerPointが入っているもの)をお使いの方は、WildLight Users Group でのみ配布されている Full バージョンを使えば、エクセルやパワーポイントからテキスト抽出する機能を利用できます。

4. 全角文字の間にまぎれた半角スペースを除去する方法は?

全角文字の間に半角スペースが入っているケースは、PDFファイルからワードへ変換した時に良く見かけるので、質問2への対処の1つとしても有効だと思います。

全角文字をワイルドカードで表現すると以下のようになります。

 、-鶴

そして、全角文字に挟まれる半角スペースを検出して削除するには、辞書に次のように記述します。

 ([、-鶴])[ ]([、-鶴])                  \1\2

[ ]の間には半角スペースを入れます。
([、-鶴]) ([、-鶴])と\1\2の間はセパレーターのTABです。

この辞書を「WLDIC_変換_全角文字間の半角スペースを除去.txt」として作成しておきました。ライブラリーからダウンロードしてご利用下さい。

和文から用語集候補をエクセルへ抽出する

英文に続き、今度は和文から用語集候補をエクセルに抜く為の WildLight 辞書です。

過去に「日本語原稿から簡易的に用語を抜く」という記事をアップしていますが、別のアプローチによる抽出です。以下のWildLight辞書をダウンロードして使用して下さい。WildLight Library に登録されています。

WLDIC_抽出_和文から用語集候補をExcelへ抜く.txt

この辞書の記述は以下の通りです。

[『](*)[』]  \1
[「](*)[」]  \1
[a-zA-Za-zA-Z0-90-9]{1,}[ァ-ヾ一-鶴]{1,}
[ァ-ヾ一-鶴]{1,}[a-zA-Za-zA-Z0-90-9]{1,}
[ァ-ヾ一-鶴]{1,}
ExtractH2Excel
  • 1行目と2行目は、「」と『』で囲まれた文字列を括弧なし文字に置換して蛍光ペン付けをしています。これらの括弧に囲まれた文字列には定訳を持つ用語が含まれている可能性が高い為、抽出対象にします。
    この2行だけは括弧を抽出文字から消したい為に、括弧なし文字に置換しています。従って、この辞書を適用すると原稿が加工されてしまいますので上書き保存しないように注意して下さい。
  • 3行目は英数字の文字列に続いて、カタカナ・漢字の文字列で構成される文字列に蛍光ペン付けしています。
    例)「GTP結合タンパク質」とか「ROHS指令物質不使用証明書」といった用語が検索対象になります。
  • 4行目は、カタカナ・漢字の文字列に続いて、英数字の文字列で構成される文字列に蛍光ペン付けしています。
    例)「コプラナーPCB」とか「イムノグロブリンE」といった用語が検索対象となります。
  • 5行目は、カタカナと漢字の文字列に蛍光ペン付けしています。
    例)「高性能液体クロマトグラフィー」とか「プロジェクト管理」といった用語が検索対象になります。
  • 6行目は、蛍光ペンをエクセルへ抽出する特殊コマンドです。

前述の過去記事による用語候補抽出は、5行目の「カタカナと漢字」の文字列だけでしたが、英数字が前後に付くケースも多く見られる事から、3~4行目を追加しました。

英文の抽出と同様、この辞書の適用により抽出された用語も、人間の目で選別を行う必要があります。

英文から用語集候補をエクセルへ抽出する

日本語文書から用語集候補文字列を抽出するWildLight辞書を以前公開しましたが、今回は英語文書から用語集候補の単語もしくは連語を抽出する辞書です。

以前、某社で行ったWildLightセミナーの中で、その抽出方法の考え方をお伝えした事があり、その際「いつ出来ますか?」と質問を受けていながら、長らく放置していました。

以下がそのWildLight 用辞書です。WildLight Library に登録されています。

WLDIC_抽出_英文から用語集候補をエクセルへ抜く.txt

この辞書で行っていることは、以下のような文字列を検索し、蛍光ペン付けをしてテキスト抽出しています。

  1. 頭文字が大文字で始まる単語
  2. その単語が連続した連語

具体的にどういうものか? 上記の1「頭文字が大文字で始まる単語」とは、Hello とか HELLO のような単語です。2「その単語が連続した連語」とは、Hello World とか HELLO World など、頭文字が大文字で始まる単語のセットのことです。

用語集候補は、例えば「Microsoft Visual Basic」や「National Art Museum」に見られるように、単語の頭文字が大文字になっている単語/連語の場合が多いので、そういう単語を検索して抜いてしまおうと言うのがアイデアです。

辞書の記述は以下の通り。(わかり易くする為にくどい書き方をしています。)

[A-Z&][A-Za-z0-9\-&]{1,}[ ]
[A-Z&][A-Za-z0-9\-&]{1,}
[&][ ]
ExtractH2Excel

1行目は、頭文字がアルファベットの大文字で、それに続く文字列が英数字で、最後が半角スペースのものを検索して蛍光ペンをつけます。
2行目は、頭文字がアルファベットの大文字で、それに続く文字列が英数字のものを検索して蛍光ペンをつけます。
3行目は、半角のアンドマークと半角スペースのセットを検索して蛍光ペンをつけます。

1行目と2行目は記述が似ています。違いは終端の半角スペースだけです。1行目で、殆どの単語と連語が蛍光ペン付けされますが、文末にある単語は残ってしまいます。それを2行目の記述で蛍光ペン付けします。
何故こんなやり方をしているかと言うと、改行を抽出対象としない為です(抽出されなくなる)
3行目は、単語が&で繋がれている連語を、連語として抽出する為に検索して蛍光ペン付けします。

この辞書ではあくまでも「候補」の抽出しかできません。お分かりの通り、文頭の単語は無条件で抽出対象となります(頭文字が大文字だから)。

抽出された単語/連語を自分の目で見て、不要物を除去して下さい。面倒だと思われる方は、例えば潔く連語だけを残すと言う考え方もあります(用語集に盛り込むべき連語の可能性が高い)。

この辞書の記述はひとつの例でしかありませんので、皆さんの使途に合わせて変えて使ってみて下さい。

[テキスト抽出のポイント]
抽出対象の検索は、ワイルドカードを一文で表現する必要はありません。抽出部位を別々に検索して、蛍光ペン付けするようにします。(これがWildLightの強みです)
蛍光ペンのテキスト抽出機能は、蛍光ペンが付いている連続した文字列を1つの塊として抜き出します。従って、別々に検索して色付けされても、最終的に蛍光ペンでひと塊りになっていれば問題ないのです。

テンプレート辞書

指定した用語や単語だけに蛍光ペン付けをして、チェックし易くしたい…という目的から、WildLight を利用して頂いている方もいるようです。

その上で、辞書の作成で戸惑うのではないかと思い、テンプレート辞書を作成しました。
(クリックして表紙された状態で、Ctrl+S すると保存できます)

このテキストファイルに、どんどんとチェックしたい単語や用語を追加するだけで、WildLight の辞書として使用できます。

作った辞書ファイルをリネームして、分野別や文書種類別に辞書を作って使用するのがいいでしょう。