中国語翻訳関係のBookmarklet

附:国語学のためのブックマークレット


Bookmarklet(ブックマークレット)とは、ブラウザのお気に入りに登録すれば使えるJavaScript言語で書かれたスクリプト(プログラム)です。

これを Internet Explorer に登録しておくと、翻訳、辞書引き、分節区切りなどが簡単にできます。

目次


設置のしかた

このページの下の方に掲げるリンクにマウスを合わせ、右クリックし、「お気に入りに追加」を選ぶ。

「セキュリティの警告」が出るが、気にせずに「はい」を選び、OKする。

Internet Explorerの上部メニューから「お気に入り」を開き、追加したリンク先をマウスで「リンク」フォルダにドラッグ&ドロップ(ムギュっと掴んでズルズル→パッ!)して移動する。
 このとき、「セキュリティの警告」が出るが、気にせずに「はい」を選び、OKする。

Internet Explorerの上部メニューから「表示」→「ツールバー」を見て、「リンク」にチェックが入っているかどうかを確認する。
 入っていなければ、ONにする。

Internet Explorerの上部メニューの上、「ヘルプ」の文字の右の灰色の辺りで右クリックし、「ツールバーを固定する」のチェックをOFFにする。

「リンク」のツールバー の左端にある「リンク」の文字の上を、マウスで掴んで、 ドラッグ&ドロップ(ムギュっと掴んでズルズル→パッ!)して見やすいところに移動する。

Internet Explorerの上部メニューの上、「ヘルプ」の文字の右の灰色の辺りで右クリックし、「ツールバーを固定する」のチェックをONにして固定する。


更に、安全に活用するために、以下の設定もやっておきましょう。

Internet Explorerの上部メニューから「ツール」→「インターネットオプション」→「プライバシー」「ポップアップをブロックする」のチェックをONに し、「設定」ボタンを押す。

「フィルタレベル」を「高」または「中」にする。
※私は「中」にしていますが、心配な人は「高」にしておくと良いでしょう。

以下のように設定して閉じる。


ページ翻訳

内容 使い方・注意事項
Excite中→日(同窓)

元文書実行結果の例

  1. 中国語ページにアクセスする。

  2. キーボードの[ctrl]キーを押しながら、マウスで「リンク」ツールバーにあるボタンを押して実行する。

簡体字/繁体字両方に対応。
文字数が多すぎるページは翻訳に失敗する。結果が出るのが遅い。

Excite中→日(別窓)

 

Worldlingo簡→日(同窓)

元文書実行結果の例

  1. 中国語ページにアクセスする。

  2. キーボードの[ctrl]キーを押しながら、マウスで「リンク」ツールバーにあるボタンを押して実行する。

簡体字のみに対応。

Worldlingo簡→日(別窓)

 

Worldlingo繁→日(同窓)
  1. 中国語ページにアクセスする。

  2. キーボードの[ctrl]キーを押しながら、マウスで「リンク」ツールバーにあるボタンを押して実行する。

繁体字のみに対応。

Worldlingo繁→日(別窓)
Yahoo中→日

元文書実行結果の例

  1. 中国語ページにアクセスする。

  2. キーボードの[ctrl]キーを押しながら、マウスで「リンク」ツールバーにあるボタンを押して実行する。

原文と翻訳文が同じページに併記される。
自動生成されているページは翻訳できない時がある。

中国語翻訳のテスト用ページ(以下のページを開いて動作を試してみましょう)

中華人民共和国憲法中華民国憲法


辞書引き
(上とはちょっと使い方が違うので注意)

内容 使い方・注意事項

Excite中日辞書

  1. 中国語ページにアクセスする。

  2. 中国語ページの任意の単語をマウスで範囲指定する。

  3. キーボードの[ctrl]キーを押しながら、マウスで「リンク」ツールバーにあるボタンを押して実行する。

範囲選択する単語の切れ目が変だと、辞書引きできない。


ニセ文節区切り

簡単なアルゴリズムで切っているので、結果は完璧ではありませんが、この結果を基にして修正すれば、かなり楽ができるはずです。

これ→「ニセ文節区切り」 (改訂版)が本体です。

登録の仕方はこのページの上に書いてある「設置の仕方」を参照。

使い方は、

  1. 文節区切りをしたい文章範囲をマウスで選択する。

  2. [Ctrl]キーを押しながらブックマークレットをクリックする。

です。

下図のように、範囲指定してから「ニセ文節区切り」のブックマークレットをクリックすると・・・

新しいウィンドウが開いて、区切り結果が表示されます。

「ヰタ・セクスアリス」を選んだのは、著名作家のもので、横文字が混じっているものが良かろうと思っての事なんだけど、こんな書き出しだったっけ?
まぁ、読んだのは中学生の時だしなぁ。この辺りはちっとも隠微な感じがしませんな。

さて、結果をちょっと検討してみましょう。

職業である 職業で/ある
哲学者という 哲学者と/いう
書いているということが 書いて/いると/いう/ことが
書いていない 書いて/いない
卒業するときには 卒業する/ときには
Sokrates 前の Sokrates/前の
比較的研究とかいう 比較的研究とか/いう
余程へんなものを 余程/へんな/ものを
それからというものは それからと/いう/ものは
職業であるから 職業で/あるから
受け┃持っていて 受け持って/いて
講義をしている 講義を/して/いる
沢山書いている 沢山/書いて/いる
面白いということである 面白いと/いう/ことで/ある
投げることがある 投げる/ことが/ある
そういうときに そういう/ときに
学生はいつまでも 学生は/いつまでも
得るのである 得るので/ある
関係もないような 関係も/ないような
人がはっと 人が/はっと
会得するというような 会得すると/いうような
材料にしたそうだが 材料に/したそうだが
材料にする 材料に/する
読んでいる 読んで/いる
学生がびっくりすることがある 学生が/びっくりする/ことが/ある

以上より、

  • 複合動詞を分けすぎてしまう。

  • 補助動詞が後接している時の分節が苦手。

  • サ変動詞・存在詞の前での分節が苦手。

  • 半角スペース対策を忘れている。

などの傾向が見えますね。

「この辺りを改良するための正規表現を考えなさい。」という課題を出すと面白いかもしれません。

なお、学生・生徒がよく間違えて「切りすぎてしまう部分」、つまり、書いたそうだ (関係も)ないような (会得すると)いうような 雑報のような (材料に)したそうだが などが正しく繋がっている点は、このアルゴリズムの良いところだと思います。

文節は、普通、中学校で「ネ・サ・ヨで切るんだよ。」って教えると思いますが、そこで引っかかるんですよね…。先生はちゃんと自立語と付属語の概念説明をしているはずですが、生徒はそこの所は聞いてもよく分からん。んで、 結局は「ネ・サ・ヨで切るんだよ。」しか記憶に残らないのでしょう。

因みに、このアルゴリズムは、(故)中野洋氏が紹介なさっていたものです。

詳しくは、中野洋氏「パソコンによる語の認定処理」(国立国語研究所研究報告集12、1991)または、下の書籍をご覧下さい。

オンライン書店ビーケーワン:パソコンによる日本語研究法入門 パソコンによる日本語研究法入門
中野 洋著
4305701677
1996.10
笠間書院
¥2,752

JavaScriptでブックマークレットに実装してみると、こんなに手軽で良いのかしら?と不安になるほどです。SIG Orientで展開されていた15年前のあの苦労はいったい何だったんでしょう…。

  • 上手く動かないときは…

Internet Explorerの上部メニューから「ツール」→「インターネットオプション」→「セキュリティ」を開き、左端の「インターネット」を選択したまま、ウィンドウ下部の「レベルのカスタマイズ」を選ぶ。
新たに開いたウィンドウにある「セキュリティの設定」の中の「アクティブスクリプト」「有効にする」にする。


日本語文体研究のための小ネタ集


技術メモ

以下のコードは、「ありがちな間違い」としてよく知られています。

Tmp5=Tmp4.replace(/([ぁ-んゝゞ]+)([ァ-ヶーヽヾ亜-熙]+)/g,'$1★$2');

「これじゃ、JIS配列じゃんよ。」ってやつですね。

例えば、「新聞掲載の読者投稿」という文字列に対して、上のコードを適用すると、結果は「新聞掲載の読者投稿」となります。ハイ。変化しません。

コードポイントは以下の図のようになっています。

漢字

Unicode

ShiftJIS

備考

U4E00

88EA

UnicodeのCJK統合漢字開始位置

U4E9C

889F

JIS漢字第1水準開始位置

U7199

E068

JIS漢字第2水準終了位置

U8F09

8DDA

例文参照

U8AAD

93C7

例文参照

U9FA0

EA9E

UnicodeのCJK統合漢字終了位置に一番近いJIS第2水準内の漢字

JavaScriptでの文字はUnicodeで評価されるから、亜~熙の範囲を指定してもJIS漢字の範囲をカバーすることはできないのです。

わたしは、確かにそれを知っていました。

で、Unicodeの漢字は、段階的に増補された関係で、「漢字を割り当てたコードポイントのカタマリ」が、アチコチに散らばっています。

  • 最も基本的な部分が「CJK統合漢字」です。
    範囲は「一」04E00~「龥」09FA5です。
    各国の公的規格や事実上スタンダードになってしまっていた規格を寄せ集めて作った部分です。

  • 次に、「CJK互換字形」という部分があります。
    範囲は「豈」0F900~「鶴」FA2Dくらいの辺りです。
    各国のパソコンメーカーが独自に拡張していた外字部分を寄せ集めた部分です。NECのPC-9801や富士通のFM TOWNSに載っていたような、いわゆる「機種依存文字」ですね。パソコン通信では呪われた存在でした。

  • そして、「CJK統合漢字拡張A」という部分があります。
    範囲は「㐀」03400~「䶵」04DB5くらいの辺りです。
    WindowsXPは、システム的には「CJK統合漢字拡張B」にも対応しているんですけど、マニアでない人が普通に表示できるのは、だいたいこの辺までです。
    フォントが「CJK統合漢字拡張A」までしか埋まっていないためです。

で、今度のWindowsVistaでは、「CJK統合漢字拡張B」という領域も普通に表示できる フォントが添付されるはずです。

そんなわけで、「扱える漢字は多い方が良い。」という方針の下、私は以下のような範囲指定をしました。

Tmp5=Tmp4.replace(/([ぁ-んゝゞ]+)([ァ-ヶーヽヾ一-龥㐀-䶵豈-鶴]+)/g,'$1★$2');

そしたら、大いにハマったんですよねぇ。

 

「文字セットの範囲が不正です」

 

「んなわけね~べ!Unicodeだべさ!」って試行錯誤しましたとも。
ブックマークレット、右クリックしますね?
で、プロパティ開きますね?
で、エディタから、ちょっと書き換えたコードを上書きペーストしますね?

これがイカンかったです。何度(エディタの画面の方で)括弧の対応などを見直しても

 

「文字セットの範囲が不正です」

気づいたのは数時間後でした。

貼り付け先では「一-龥㐀-䶵豈-鶴」が「一-??-??-鶴」になってやがった!

プロパティから書き換えると、SJISで保存されちゃうときがあるみたいね…(泣)。

だから、おりこうさんは以下のように書くべきです。

Tmp5=Tmp4.replace(/([ぁ-んゝゞ]+)([ァ-ヶーヽヾ一-龠]+)/g,'$1★$2');

これでめでたく、「新聞掲載の読者投稿」は「新聞掲載の★読者投稿」に置換できるようになります。

先に一覧表に掲げたように、「龠」はUnicodeで9FA0です。
「龠」のコードポイントが、UnicodeのCJK統合漢字の終了位置に一番近いJIS第2水準内の漢字なんですね。
UnicodeのCJK統合漢字で、これ以降にある文字はわずかに以下の5文字だけです。

画数が多い字なので拡大しますよ。

「龡龢龣龤龥」

う~ん…。2文字目は中国の言語学者「董同龢」の名前で使う字なので、ちょっと痛いかもな…。
でもまぁ、日本語文の分節区切りではほとんど影響は無いでしょう。


[Go to top page]

copyright 1997~ 谷本玲大
http://www.tanimoto.to/