フリーの日本語入力ソフト (IME) 機能比較

IME を選んで使ってますか?
今回は Windows 用のフリーな日本語入力ソフト(IME)の機能比較です。
ただし、機能は変換精度や速度といったものではなく、 私が便利だなと思うプラスアルファ的な機能についてです。

対象 ソフト

対象としたソフトウェアは OS に標準でついている Microsoft IME (MS-IME)、 Microsoft Office IME 2010 (Office IME) と無料で公開されている 2 つの IME です。
追記 2013-01-25
Office IME 2010 の比較を追加しました。
Google IME Icon Google IME
Google が作成した IME です。
Google 検索の"もしかして"機能の担当者と PRIME の作者が中心になって開発したそうです。
Baidu IME Icon Baidu IME
Baidu IME は中国発の検索サイト Baidu(百度) が出している IME です 。
フリーソフトをインストールする時、よく一緒にインストールしないか 訊いてくるので、目にしたことがある人は多いのではないかと思います。
Office IME Icon Office IME 2010
Office IME 2010 では、 Google の IME に対抗してか、かなり機能強化されました。
Office 2010 製品についてきますが、過去の Office 製品のライセンスがあれば、 リンク先の Microsoft のサイトから無料でダウンロードすることができます。
(これをフリーと呼ぶのかというと微妙ですが)

ただ、これは Windows 8 では使えません。 Windows 8 の MS-IME の方がより新しいからということらしいのですが、 こちらは Windows 8 を持っていないので、比較していません。

なお、フリーの IME としては Social IME もあるのですが、 Windows 7 に未対応のようなので、対象外としました。

機能比較

私が便利だと思う機能とその対応の一覧です。 赤字の機能は特に欲しいなというものです。
機能 MS-IME Office IME Google Baidu
Emacs での入力
予測変換(サジェスト)
同音異義語の説明
専門辞書の追加
自動更新
カタカナ英語変換

変換精度や速度といったものは、 大事なところだとは思いますが、比較はなかなか難しく、やっていません。 使ってみた感覚ではどれもそれほどかわらない気がします。

ただ、"わたしはなまえはなかのです(私の名前は中野です)" を変換したところ、 MS-IME 、 Google は一発で変換できますが、 Baidu は 2 番目の変換候補でちょっと変換精度が落ちるかもしれません。

MS-IME と Office IME 間でいうと Microsoft いわく、かなりのパフォーマンス改善が行われています。
変換速度に関しては 2 倍らしいです。

Emacs での入力

もともと他の IME を試してみたきっかけは Windows 7 では MS-IME と Emacs 24 の組み合わせで、 うまく動かなかったためです。 Goole , Baidu IME では問題なく動きます。

ただし、 Windows 7 でも Office 2010 にすると入力できるようになりました。

予測変換(サジェスト)

予測変換は携帯やスマホでは大抵ついている機能で、 書いている途中で、予測して候補を出してくれます。
入力しづらい携帯と違って、それほど必要性は感じないのですが、 予測がうまくいったときには入力が速くなります。

MS-IME にも予測変換機能はついているのですが、 他のと違い、過去に入力したものの中からしか予測しません。 それだとあまり役に立たないので、 △ にしています。
Office IME ではずいぶん予測がよくなったのですが、 予測対象はやはり過去に入力したものに限るようです。

Google と Baidu では Google の方が候補数が多く、 表示する候補数の指定もできるので、 若干上かなと思います。
Suggest Google IME Suggest Baidu IME
Google IME Baidu IME

同音異義語の説明

例えば、 "あげる" を変換するときに、 どの漢字にすればいいのだろうと迷う時があります。
こんな時に説明を表示を表示してくれる機能です。 これがあるとかなり助かります。

MS-IME は簡単な説明だけですが、 Google は用例も表示してよりわかりやすいです。
Homonym MS-IME Homonym Google IME
MS-IME Google IME

専門辞書の追加

MS-IME で最初から幾つかオプション辞書が入っています。
Google IME にもほぼ同様の辞書が入ってますが、 Baidu IME はサイトからダウンロードして追加します。
辞書 MS-IME Office IME Google Baidu
郵便番号
単漢字
顔文字
人名地名
記号
カタカナ語英語(後述)
これらは郵便番号辞書のように特殊変換的なものや 人名辞書のように変換精度を上げるものです。

人それぞれで専門分野があるので、 その分野の辞書が入っていると、変換精度が上がります。 私の場合は科学技術用語や IT 用語の辞書が欲しい辞書です。
こういった専門辞書を追加できる機能の比較です。

◎ : Baidu IME は Baidu のサイトから公開されています。 ネットで使うような辞書が中心ですが、いろいろな辞書があり、私が欲しかった IT 用語辞書もあります。
○ : MS-IME も辞書を追加することができます。 広く使われているだけあって、いろんな辞書が公開されています。
ただ、 Baidu と違い、個人が公開しているものなので、 欲しい辞書があまりなかったり、有料だったりします。 ◎ : Office IME では オープン拡張辞書 としてサイトからの追加の体制が整ってきています。
数はまだまだこれからという感じですが、 IT 用語辞書に関しては Microsoft が作成しています。
△ : Google IME には残念ながら、辞書の追加機能はありません。
ユーザー辞書として、追加することはできなくはないですが、 使いにくいです。

自動更新

言葉は日々増えていきます。
特に有名人の名前などは頻繁に増えてくるので、 辞書や IME の自動更新があったほうがいいでしょう。

Google IME では自動更新はできるようです。 Baidu は辞書の更新はよくわかりませんが、 クラウド上のサーバーと連携する クラウド入力 という機能があります。

Office IME では Windows Update を利用して辞書の更新がされるようになりました。
また、最新語辞書というのも用意されています。

追記 2013-12-19
辞書、 IME の自動更新はいいと思うのですが、 ユーザー辞書の同期やクラウド変換にはセキュリティー上の注意が必要です。

カタカナ英語変換

カタカナ英語を入力すると英語のアルファベットに変換してくれる機能です。 例えば こまんど と入力すると Command と変換してくれます。

私の場合は英語のスペルがうろ覚えのものが多く、 英語の文章を書いている時やコーディング中に役に立っています。
とくにコードを書くときには CommandClass のように単語を繋げて書くことが多く、 スペルチェックを使えないため、非常に助かります。

MS-IME と Google IME は変換の候補として、 小文字、 大文字、 先頭だけ大文字 の 3 つが出てきます。 Baidu IME だけ、 小文字しか選べません。
コーディングでは、 先頭大文字やすべて大文字の単語も使うので、 小文字だけだと使いづらく、 △としています。

また、 MS-IME では変換候補が複数ある場合には単語の説明も表示してくれます。

Katakana MS-IME Katakana Google IME Katakana Baidu IME
MS-IME Google IME Baidu IME


Office IME ではなぜか単語の説明がなくなり、この点に関しては機能ダウンしています。

追加した IT 用語辞書でも、 説明の部分をマウスでクリックすることにより英語への変換ができるようになっています。
ただ、英語にできるのは嬉しいのですが、キー入力中にマウスを触らせるというのは ありえない操作性かなと思います。

公開されている Google のカタカナ英語辞書

Google IME 用のカタカナ英語辞書を作成しているプロジェクトがあります。 Google IME も標準でカタカナ英語辞書がつくのですが、 かなり多くの単語が登録されているので、 カタカナ英語変換をよく使う私としてはかなり嬉しい辞書です。

ただし、 2 点ほど問題があります。
ユーザー辞書としてしか追加できない
Google IME では辞書の追加機能が無いため、ユーザー辞書として追加します。
ユーザー辞書ですので、変換候補としてカタカナよりも先に英単語がきてしまいます。 サイトのページにも書いてありますが、 IME に覚えさせるまで、普通にカタカナを書くのが、結構めんどうになります。
また、インストールも少し大変です。
英単語に説明が入っている
辞書の登録がうまくいっていないだけかもしれませんが、 変換後の英単語に () 書きで説明が入っています。 このため、変換候補に著しく長い単語が入ってきて、かなり見づらいです。
私の場合は、一回 () の説明を Emacs の置換機能で全部とってから、追加しなおしました。

その他の特徴機能

Google IME, Baidu IME で特有の機能もあげてみます。

Google IME

もしかして機能
Google 検索には、スペルミスをした場合などで、 正しそうな単語を推測してくれる機能があります。 この IME 版です。
サイトのものはかなり便利なのですが、日本語入力としてはそれほどでもないです。 ただ、しゅみれーしょん のようにちょっと紛らわしものを入力した時、 一般的な候補を上げてくれるため、ミスが減ります。
Google もしかして機能
日付変換
きょう と入力すると 2012/10/29 といった日付に変換できる機能です。
メールを書くときなど、つい明日、明後日など書きたくなります。 しかし、メールのような相手がいつ読むかわからないものは、日付もつけておいた方が親切です。 そういった時、この機能があるとすぐに変換できます。
Google Data

Baidu IME

和英辞書
入力中の文字で和英辞書を引き、その説明を表示する機能です。
非常に惜しい機能です。 引いた英語を変換結果として使えるのであれば、使い手があるのですが、 表示するだけなので、使い勝手の悪いただの辞書にしかなっていません。
Japanese English Dictionary
スクリーンキャプチャー
現在の表示画面をキャプチャーして、 クリップボードまたは画像ファイルに保存する機能です。
あると便利ですが、そういうフリーソフトもいっぱい出てますし、 Baidu IME 使わなくても同じことはできます。

まとめ

3 つの中では Baidu IME が格段に落ちる感じです。
Baidu は同音異義語の説明がないのと、カタカナ英語変換が不十分なのが、 致命的です。
ただ、ネット系の辞書には強いので、 ネット上でよく文章を書く人にはいいかも知れません。

Emacs を使うのであれば、 もう Google IME で決まりです。
ただ、使わないにしても、 MS-IME と Google IME を比べると Google の方がやや便利かなといった感じです。



というように以前、結論を書いていたのですが、 Office IME 2010 の登場で若干抜き返した気がします。
Office を購入しているのであれば、 Office IME がいいのではないかなと思います。

結局、 デフォルトのままで、別の IME をインストールしなくてもいい という状況なってきました。
しかし、今までほぼ独占だったソフトに競合ができ、 お互いにいいものになっていくのは非常に喜ばしいことだと思います。 次は Google IME の巻き返しを期待したいところです。

追記 2013-12-26
紹介した Baidu ですが、 IME で入力したデータを勝手に送信するひどいアプリでした。 主に問題なのは、次の 2 点です。
  • 入力データと一緒にパソコンの ID を送信する
  • 送らないように設定しているのに、実は送っている
バグだったとか日本国内でしか使っていないなど説明されていますが、本当のところは確認しようがありません。 不用意に紹介して申し訳ありませんでした。ここでは今後 Baidu は使用しないことをお勧めします。
すでにインストールされた方は削除してください。


スポンサーサイト
 

選択した文字を weblio 英和・和英辞典や Wikipedia で検索するブックマークレット

今回はブラウザー上で選択した文字を weblio の英和・和英辞典や Wikipedia で検索するブックマークレットの紹介です。


weblio は素晴らしい辞書サイトです。 いろんな辞典から検索するため、専門的な用語や新しい用語などの単語にも結構対応しています。

ただ、難点は検索が手間なことです。
  "検索したい単語をコピーし、 weblio のサイトを開いて、貼り付けて、 [Enter]"
といった手順は 翻訳ソフトに付いている辞書検索機能などと比べると面倒です。 そこで、ブラウザー上の単語であれば一発で調べられるブックマークレットを作成しました。


実は 用語(国語辞典)検索では検索用のブックマークレットが Weblio のサイトで公開されています。 しかし、英和・和英辞典用のものはは見当たりませんでした。 無いなら作ろうってことで、 英和・和英辞典検索のブックマークレットを用意しました。

用語検索のコードを修正して作ったのですが、 1 点改良しているところがあります。
用語検索では weblio のページを開くとき同じウィンドウで開かれます。 それだと若干使いづらいので、別ウィンドウ(タブ)で開くようにしています。


別ウィンドウで開く用語検索の改良版もあわせて載せています。
また、同じように作れそうだったので、ついでに Wikipedia 検索用のブックマークレットも作成しています。



使用する場合は、 ページ上部の「Weblio英和・和英」のリンクをブックマークのツールバーにドラッグ & ドロップ しておいて下さい。
en_weblio_bookmarklet.png

検索したい単語をダブルクリックやドラッグで選択状態にして、追加したブックマークのリンクをクリックすると、 選択した単語を検索結果のページが開きます。

単語は英語、日本語のどちらでも構いません。 サイトの方で 英和、和英 を切り替えてくれます。


他のリンクも使用方法は同じです。



 

良いコードを書くためには

今回は良いコードを書くための私の考え方を書いてみたいと思います。

はじめの一歩

まず、世の中のプログラマーのうち、ちゃんとしたコードを書く人はほんの一握りで、 大半は設計を含めたコーディング、プログラミングが下手くそです。
いろいろ反論はあると思います。しかし、ソクラテスの無知の知のように
  "自分はコーディングが下手なのではないか"
と疑うことが良いコードを書くための第一歩です。

良いコードとは

では、その"良いコード"とは、何でしょうか ?

良いコードの答え

これは文章やプレゼンといったものと同じです。 良い文章、下手な文章というものは確かに存在します。しかし、何をもって良い文章とするかは難しいところです。
同様に "良いコードとは何か" も、人それぞれで明確な答えは出ません。


良いコードについて、 『達人プログラマー』のような書籍や DRY のように一般的に言われていることがあります。
こういった"権威"や"みんながいうこと"に黙って従うのも悪いとは思いません。何もしないよりはいいでしょう。 しかし、細かいところまで応用が効きにくいです。


良いコードの答えは人それぞれですが、自分なりの考えを持つ ことが大事だと私は思います。

良いコードを求める

良いコードを自分の基準で決めるので、"そりゃ、全部良いコードになるだろ" と思われるかも知れません。 しかし、これがなかなか思うようには行きません。


"時間がないから、とりあえずの修正で" とか "元が下手くそすぎるプログラムの修正だから" などいろいろ理由を付けて妥協してしまいがちです。 しかし、それも自分の下手なコードと認めなければなりません。
そうすれば、自分で自分のコードを恥ずかしいと感じるので、 どんな時でもなるべく良いコードにする努力をするようになります。

また、人の考え方は日々変わります。
そのため、書いている時は "これがベスト" と思っても、 しばらくしてみると "下手くそだな" と思うことは往々にしてあります。
これは成長と捉えることもできます。 逆にそう思うことが全く無い方が問題です。

良いコードかどうか判断できることが良いコードを書くことにつながります。
  "良いコードとは何か?"、 "自分のコードが良いコードになっているか?" を考えて書く
ということ自体が良いコードを書くための道だと思います。

ひとりよがり にならないために

自分の考えをしっかり持つということは、得てして ひとりよがり にも陥りやすいです。
このために書籍やプログラミング原則などの情報にアンテナを立て取り入れていくことも重要です。
ただし、そこで鵜呑みにするのではなく、ちゃんと自分の考えとして取り入れる必要があります。

情報について考える

最初に聞いたときにはなんとも思わなかったけど、しばらくして "ほんとにそうだな" と思った言葉が私にはあります。 それは高校の英語の授業に出てきた次の言葉です。
Books are to the mind what food is to the body.
本と精神の関係は、食物と肉体の関係と同じだ。

食物を食べるだけで運動しなければ、余分な脂肪になります。
また、食物をちゃんと食べずに運動だけしても、体は健康的に育ちません。

この運動に対応するのが精神(頭)にとっては "考える"、"実践する" ことだと思います。
ただ本を読んだだけでは、それは知識です。 それに対していろいろ考えることによって、身についた知恵となります。

また、人が日常で触れるものは狭い世界です。それだけでは誤った考えに行き着く可能性が高いです。 本では古今東西のいろいろなものに触れることができます。 それらについて考えることはより良く、深い知恵につながります。

本を読むこと自体も頭の運動になるとは思います。 ただ、昔の言葉なので "本" ですが、今ならばテレビ、インターネットなども情報源と捉えることができるでしょう。

取り入れるときの方法

ただ、 "情報について考えるといってもどうすればいいのか" という人もいるかもしれません。
そこで、 私がよくやる方法を一つ紹介します。


それは、
  本や常識に対して、一度反対の立場をとる
という方法です。 一度反論し、今度は自分なりに元の情報の擁護を行います。 自分の頭の中での仮想的な論戦です。

反対の立場で、そちらの方がいいと思えば、それはそのまま自分の考えです。
擁護した結果、やっぱり元の方がいいとなれば、それは取り入れます。 そのまま受け入れるよりも、元の情報はより自分のものになっているでしょう。

コードを読む

よいコードを書くためには、もう一つ いろんなコードを読む ことも大切です。

読書の場合

コードと文章の読み書きには共通する多くの点があると思います。
文章の読解力をあげるために、よく言われている(私の考えでもある)方法があります。
  • 乱読 : いろんな本をざっと読んでいく
  • 精読 : 少数のものをじっくりと読む
  • 自分でも書く
乱読と精読は両方ともやることが大事です。 基本的に乱読し、気になるものを精読します。

コードの場合

コードを読む力、良いコードかどうか判断する力をあげる方法も文章と同じだと思います。

プログラマーであれば、自分で書くということは当然行います。
精読に関しても、自分の作っているプログラムやその周辺のコードをじっくり読むことはやるでしょう。


ここで大切なのは乱読です。これは先ほどの話にも通じます
自分の仕事に関連する狭い世界でのみコードを読んでいると、 その部署特有の悪習などを普通と思い、いびつな成長をすることがあります。
特に周りにコーディングの上手い人が一人もいない場合は最悪です。

今はオープンソースで公開されるものも多く、読むコードには事欠きません。
"この機能はどうやって実装しているのだろう"とか、"自分のプログラムに取り入れたい"とか思った時は、 積極的に読んでいくことをお勧めします。

多言語のコードを読む

自分が普段使う言語以外も勉強し、様々な言語のコードを見るともっと良いと思います。

英語の学習は、単に英語を身に付けることだけが目的ではありません。英語の文化に触れ、日本語以外の思考方法を学ぶことも考えを広げる勉強です。
同じことはプログラミング言語にも言えます。

C 言語を使っている場合でも、オブジェクト指向の考え方は役に立ちます。 同じように C++, C# などを使っている場合も関数型プログラミングのスタイルを知っていることは有益でしょう。

"日常使っている言葉は人の思考方法に影響を与える"と言われています。
プログラミングでも、より多くの言語を使えるほど、 より柔軟な思考ができ、より良い構成、問題の解決策を得ることができると私は思います。

7つの言語 7つの世界7つの言語 7つの世界
(2011/07/23)
Bruce A. Tate

商品詳細を見る

まとめ

最後に今までの内容をまとめます。
  • まず、自分のコードが下手ではないか疑う
  • 自分なりの良いコードの基準を持つ
  • 書籍などの情報を自分の考えとして取り入れる
  • 自分の関連分野だけでなく、他言語を含め、様々なコードを読む


 
このページをシェア
アクセスカウンター
アクセスランキング
[ジャンルランキング]
コンピュータ
43位
アクセスランキングを見る>>

[サブジャンルランキング]
プログラミング
3位
アクセスランキングを見る>>
カレンダー(アーカイブ)
プルダウン 降順 昇順 年別

05月 | 2017年06月 | 07月
- - - - 1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 -


はてな新着記事
はてな人気記事
ブロとも申請フォーム
プロフィール

yohshiy

Author:yohshiy
職業プログラマー。
仕事は主に C++ ですが、軽い言語マニアなので、色々使っています。

はてブ:yohshiy のブックマーク
Twitter:@yohshiy

サイト紹介
プログラミング好きのブログです。プログラミング関連の話題や公開ソフトの開発記などを雑多に書いてます。ただ、たまに英語やネット系の話になることも。