蛍光ペンの文字列を抽出する

以前、サンフレアアカデミーのオープンスクールでWildLightの説明をした際に、「蛍光ペンのついた文字列をワードやエクセルへ抜き出せるか?」という質問をいただき、「SFAオープンスクールの質問から」という記事にまとめていますが、改めて別記事として公開しておきます。

ワード文書中の蛍光ペンがついたテキストを抽出できると、ちょっと便利な使い方ができますよね。

例えば、用語集用に必要な単語や表現に蛍光ペンを付けておき、最後にそれらを抽出して用語集にするといった使い方ができます。事実、サンフレアアカデミーのオープンスクールでいただいた質問の目的は、用語集作成に使用したいということでした。

まず、特別な知識なく実現できるように、辞書ファイルを準備してあります。

  1. WLDIC_抽出_蛍光ペン部をExcelへ抜く.txt
  2. WLDIC_抽出_蛍光ペン部をWordへ抜く.txt

エクセルへ抜きたい時は1の辞書、ワードへ抜き出したい時は2の辞書を使います。目的に合わせて辞書ファイルをダウンロードし、WildLightで適用してみてください。用語集作成を目的としているなら、いきなりエクセルへテキストを抜いてしまうと便利かもしれませんね。

では、実際にやってみた映像をこちらに張り付けておきます。(これは「WLDIC_抽出_蛍光ペン部をExcelへ抜く.txt」を適用したケースです。)

ExtractH2Excel

うっかり同じ単語を蛍光ペンしていても大丈夫です。ユニークなものだけを抽出する仕様になっています。(「あれ?これ、さっき色付けたっけ?」なんて、悩まなくて大丈夫。気にしないでどんどん蛍光ペン付けしちゃいましょう)

さて、ここからは中級者/上級者の方への説明です。
蛍光ペンのテキストを抜き出す機能は、以下のWildLightの特殊コマンドで実現できます。

  • ExtractH2Excel
  • ExtractH2Word

前者がエクセルへ抽出、後者がワードへ抽出するための特殊コマンドです。ワイルドカードとの組み合わせで、意図した文字列を抜き出すことができるようになります。例えば、全角カタカナの用語だけを抜き出したい場合は、以下のような記述をした辞書を準備すると良いでしょう。

  1. WILDCARD:ON
  2. [ァ-ヾ]
  3. ExtractH2Excel

1行目は、ワイルドカードモードをONにします。そして2行目に全角カタカナを指定するワイルドカードを記述することで、全角カタカナすべてに蛍光ペンを付けます。そして最後に、それら蛍光ペンが付いた文字列をエクセルへ抽出するために、特殊コマンド ExtractH2Excel を記述します。

2行目のワイルドカードを工夫することで、いろいろな文字列を抜き出すことが可能になります。

例えば、上記ケースでは1文字のカタカナも抽出されます。それでは都合が悪いなぁ、せめて3文字以上のカタカナだけにして欲しいなぁと考えるなら、2行目を以下の記述にすればOKです。

[ァ-ヾ]{3,}

また、もし、5文字の全角カタカナの用語だけを抽出したい!という場合は、以下のようになります。

[ァ-ヾ]{5}

ここまで読まれた方は、ExtractH2Excel, ExtractH2Word がいろいろなことに応用できそうだと感じたことでしょう。実際、WildLight Dictionary Library に登録してある「WLDIC_抽出_和文から用語集候補をExcelへ抜く.txt」では、この特殊コマンドを使って、和文から用語集候補となる単語をエクセルへ抽出しています。

上記の2行目に当たる部分に、以下の記述をしています。

  • [『](*)[』](TAB)\1
  • [「](*)[」](TAB)\1
  • [a-zA-Za-zA-Z0-90-9]{1,}[ァ-ヾ一-鶴]{1,}
  • [ァ-ヾ一-鶴]{1,}[a-zA-Za-zA-Z0-90-9]{1,}
  • [ァ-ヾ一-鶴]{1,}

まず、用語集に必要となる用語には、定訳が存在しそうなものを対象としたいですが、『』や「」内の文字列にはその対象となるものが多いので、『』「」内の文字列を抜くように蛍光ペン付けをしてやります。ただ、そのまま抜いてしまうと『』「」が残ってしまいますので、蛍光ペンを付けつつ、それらの括弧を削除してしまいます。そのための記述が1~2行目です。((TAB)はタブ記号です)

3行目は、全半角の英数字で始まり、全角カタカナと漢字でなる言葉の塊に蛍光ペンを付けます。といってもイメージできないですよね。例えば、「13G45カード基板」とか「1次入力ターミナル」といった類の文字列に蛍光ペンが付きます。

4行目は、全角カタカナと漢字の後ろに全半角の英数字が付いている文字の塊に蛍光ペンを付けます。例えば「プライマリー電源001」とか「角度ABC」といった類の文字列に蛍光ペンが付きます。

そして最後の5行目は、全角カタカナと漢字の塊に蛍光ペンが付きます。「音量スライダー」とか「スライド軸」といった言葉が対象となります。

なぜ、3段階で蛍光ペン付けをしているかといえば、[全角カタカナと漢字]の塊に先に蛍光ペンを付けてしまうと、[全角カタカナと漢字]の前後に全半角英数文字を持つ文字列の検索手段を失ってしまうからです。(蛍光ペンがついているものは検索対象から外れるというWildLightの制限があるため)
少し複雑な検索をして蛍光ペンを付ける場合は、このように、その順番にも注意が必要です。
(このあたりの話は、以前の記事「日本語原稿から簡易的に用語を抜く」にも書いてあります。)

他にもいろいろな応用ができそうですね。

是非、お役立てください。

WildLight 2.05 へバージョンアップ

Microsoft PowerPoint の MVP である「きぬあささん」が、私のツイートを拾ってくれて、PowerPoint で SmartArt から文字を抜くコードを紹介してくださいました。

SmartArtからテキストを取得するPowerPointマクロ

ある特定のクライアントさんが頻繁にSmartArt機能を使ったパワーポイントファイルを入稿してくるのですが、そのたびにテキストを抜けずに苦労していたのです。このスクリプトのお陰でテキストを抜けないものがなくなりました。

きぬあささんには、この場を借りて、厚くお礼申しあげます。

と言うことで、このスクリプトを参考に、WildLight のパワーポイントからのテキスト抜き機能を強化いたしました(すなわち、SmartArt からもテキスト抜きができるようになりました)

この機能はWildLightのFull版でのみ利用いただけます。また、当バージョンから Full版も一般公開する事にいたしましたので、どうぞ、ご利用下さい。

皆さまのお役に立てれば幸いです。

WildLight 2.04 へバージョンアップ

ひさしぶりのバージョンアップです。今回追加した機能は以下の2点です。

  1. ワードのテキストをエクセルに抜く (Full版のみ対応)
  2. 複数の対訳表をバッチ処理で作成

これらの機能は、どちらかというと翻訳会社向けの機能だと思います。(自分で使うためw)

ワードのテキストをエクセルに抜く

1の使途としては、例えば、納品仕様がエクセルへのベタ打ちとなっているが、翻訳者さんへは取り扱いやすいワード原稿で依頼したいような場合に使えます。翻訳者さんから納品されたワードの翻訳物を、エクセルに吐き出して納品物にする形になります。

この機能はメニューで「テキスト抽出」→「テキストをエクセルへ抽出」を選択すると実行されます。実行すると、テキストを抜くワードファイルを聞いてきますので、指定してください。ワードのテキストがエクセルへ抽出されます。

複数の対訳表をバッチ処理で作成

2の機能は、大量にある過去の翻訳物と原稿を対訳表にしておき、翻訳資産として活用するというような場合に役立ちます。もちろん、細かなアライメントが必要となりますが、取り敢えず、一気に対訳表にしてしまいたいという方にはお勧めです。(アライメントして保存しておけば、後からエクセルに起こし直したり、TMへ流し込んだりと再利用できます。)

バッチ処理を行うためには、対訳表にする2つのファイルを1セットにした情報を、対訳表作成リストファイルとして作成します。これは任意な名前を付けたテキストファイルで、Shift-JIS か Unicode を使用します。以下の例のように、対訳表にする2つのファイルをタブで挟んで、フルパスで記述します。

例)
C:¥Documents¥原稿.docx (tab) D:¥temp¥訳文.doc
C:¥original¥方針説明.docx (tab) F:¥Storage¥翻訳結果.docx

そうです。ファイルの形式としては、WildLight の辞書と同じで、TABをセパレータとして使います。

対訳表作成したいファイル群をすべて記述してください。WildLight は上から順番に対訳表を作成し、対訳表作成リストファイルが保存されているフォルダーに、対訳表を保存していきます。

存在しないファイルが指定された場合は、作業は行われずにスキップし、次のファイルセットの処理へ移ります。リスト内のすべてのファイルを処理したのち、新規文書を自動作成して、作業結果を出力します。処理されなかったファイル群や、作成された対訳表のファイル名を知る事ができます。(対訳表を保存したフォルダーをエクスプローラーで自動的に開くようになっています。)

起動方法は、メニューの「対訳表機能」→「対訳表作成をバッチ処理する」を選択します。ファイル選択画面になりますので、上で作成した対訳表作成リストファイルを指定します。すると、ファイルのリストに従って、対訳表が次々と作成されます。

ダウンロードは、当ブログの「ダウンロード/インストール」タブから行えます。

WildLight を紹介いただいてるブログ

今までグクることもしなかったのですが、思い立って WildLight をキーワードに検索してみると、知らないブログ記事も見つかって感動いたしました。拙作のワードアドインマクロ「WildLight 」を紹介いただいているブログをご紹介します。

最近はWildLight の開発も一段落し、アップデートをしていませんが、こういう記事を読むと、とても励みになります。

また、参加したセミナー、懇親会やオフ会で「WildLight を使ってますよ」と声を掛けていただいたり、ブログ経由でメッセージをいただくことも増え、そろそろ機能改善に動き出そうかと考えているところです。

少しでも皆さんの翻訳品質底上げにお役に立てたら…という想いで開発しています。何か要望やコメントがありましたら、お気軽にご連絡くださいね。

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」として作成しておきました。ライブラリーからダウンロードしてご利用下さい。

【ワイルドカード】同じ単語の連続を検出する

中級セミナーで受講者の方から出た質問です。

間違って同じ単語が連続して入力されたものを検出するには、辞書にどういう記述をすればいいですか?

これを実現するには、以下のようなワイルドカードを記述します。

(<[a-zA-Z]{1,}>)[ .]\1

ワードの検索機能で、ワイルドカードをオンにして実行すれば、検出できます。

また、WildLight辞書へは、このまま記述すればOKです。

上付/下付の指定忘れをチェックする

多項式や化学式を記述するのに、上付や下付を多用しますが、その指定を忘れてしまったものを検出する WildLight 辞書の紹介です。

このチェック辞書を作る上で使用する特殊コマンドは「Superscript」と「Subscript」です。
(Users Groupで、この機能実装のアイデアは Kanbayashi さん、以下のチェック方法のアイデアは Yamauchi さんに頂きました。ありがとうございました)

上付も下付も、チェックの手法は同じですので、ここでは下付(Subscript)を例に説明致します。

H2O の2や、CO2の2を下付指定し忘れたものを検出してみましょう。

【考え方】

  • 下付指定されていないもの を検出して蛍光ペン付けする。
  • 「下付でない= Subscript:OFF」を指定して「H2O」「CO2」を検索する。
  • 正しく 2 が下付指定されているものは、この検索には引っ掛からない。

【辞書の記述方法】

Subscript:OFF
H2O
CO2
Subscript:CLEAR

1行目は、「下付は検索しないで」という指定です。
2行目から3行目は検索する化学式。ここに検索したい化学式をどんどん追加すれば良い訳です。
4行目で、「下付の検索条件を解除」

これを実際に実行した画像がこれです。(画像をクリックして拡大してご覧ください)

WL_SubscriptCheck

2を下付指定し忘れた H2O に蛍光ペンが付くのが分かると思います。

この辞書は、WildLight Library に「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つの塊として抜き出します。従って、別々に検索して色付けされても、最終的に蛍光ペンでひと塊りになっていれば問題ないのです。

簡易対訳表を作ってみる

WL_HowToAlign

原稿と訳文を比較して、訳抜けを検出する事を目的に、簡易的に対訳表を作成するおまけ機能を WildLight に盛り込んであります。但し、他ソフトウェアのように完璧なものではありません。あくまでもチェックして問題を検出する事を目的としているので、この程度のレベルでも目的十分と考えています。

  1. プルダウンメニューの「機能」→「2文書を比較表にする(β)」を選択する
  2. ファイル選択ウインドウが出たら、原稿ファイルを選択する。
  3. ファイル選択ウインドウが出たら、訳文ファイルを選択する。
  4. 機能が実行され、対訳表が作成されれば終了です。
  5. 表操作を使い、原文と訳文をアライメントします。

表作成後のアライメント作業は、メニューの「表操作」にセルの削除・挿入・結合機能があり、それを使う方法がありますが、毎回メニュー選択するのは作業効率が良くありません。そこで、これらの機能をショートカットキーに登録して作業する事をお勧めします。

方法は、ショートカットキー登録の方法のマニュアルを作ってありますので参照して下さい。