英独仏伊西簡易スペルチェック

オンライン文章校正支援サービス「PRUV」に新機能を追加しました。

YAEKAさんにご要望いただいたドイツ語(ドイツ)スペルチェック機能です。ついでに、フランス語、イタリア語、スペイン語も追加してみました。

やろうと思えばイギリス英語やドイツ語(オーストリア)、グルジアもといジョージア語やハンガリー語などにも対応できるのですが、対応言語を増やすとUIの見直しも必要なので取りあえずこの5カ国語としました。

辞書&オプション機能選択メニューを開いて言語を選ぶか、オフにしてください。

ユーザー管理機構を再構築、新システム移行はこれから

PRUVのユーザー管理機構を全面的に再構築しました。これから順次、既存ユーザーを新システムに移行していきます。

新システムは従来の「グループ」に加え、複数のグループからなる「組織」を新設。グループ管理者はグループを、組織管理者は複数のグループを管理できます。グループ辞書の管理もこれに準じます。

なお、新システムからユーザー管理者とグループ辞書管理者を分離可能にしました(1人が兼務可能)。1人の組織管理者が複数グループのユーザーと辞書を管理するもよし、各グループにユーザー管理者と辞書管理者を配置して管理を移管するもよし。全ユーザーに組織管理者権限を付与することも可能です。オススメはしませんが。

新ユーザー管理画面(組織管理者モード)。グループ管理者の場合は自分が属するグループのメンバーのみリストアップされます。この画面でユーザーの削除やユーザーの所属グループ変更などが可能。
続きを読む →

AIを校正に応用する挑戦

PRUVにAIを応用できないものかと考えて幾年、ようやく形になってきました。「AI」といっても知能と呼べるようなシロモノではなく、単に「ディープラーニングによって構築した言語モデルでパターンマッチングを行い、単語(形態素)の出現確率を推論する機能」なのですが、長いので便宜上「AI」に短縮します。

正しい(あるいは誤りが少ないと思われる)文章を学習させ、「次に現れる単語」の確率を計算させます。この確率がしきい値以下であれば、「間違いじゃね?」という反応をするというわけです。以下のように結果を出力します。ある商用Webメディアに実際に掲載されていた文です。

続きを読む →

通貨レート変換機能のバグを修正

オンライン文章校正支援サービス「PRUV」の通貨レート変換機能のバグを修正しました。

1兆以上の桁を正しく処理できておらず、「1兆ドル」と入力したときの日本円を「1104800億円」のように表示していました。

今回の修正で、正しく「110兆4800億円」と表示するようになりました。

通貨レート変換時は、金額を数値に変換して計算し、改めて漢字交じりの文字列に戻しています。1兆ドル(1000000000000)に通貨レートを掛けて110480000000000にし、この桁数を調べて億や兆といった漢字に置き換えるわけです。このときPHPが数値を自動的に科学記法(指数表現)「1.1048E+14」にしてしまうため、単純に桁数をカウントすると15桁(文字)ではなく10文字になってしまい、「兆」を入れる処理がパスされてしまいました。

科学記法を数値に戻す処理を加えたことにより、無事解決しました。Appleが1兆ドル企業にならなければ(結構前の話ですが……)、このバグに気付かなかったことでしょう。

形態素解析の結果表示機能

オンライン文章校正支援サービス「PRUV」にオマケ機能として形態素解析の結果表示機能を追加しました。

[チェック開始]ボタン直上の「形態素解析のみ」をオンにすると、入力された文章の形態素解析結果のみを表示します。

PRUVが普段行っている解析処理の途中段階の状態を表示するだけなので、入力できる文章の長さは通常モードと同じです。ただ、長文を入力しても見やすくはないので、形態素解析モードの場合は1文程度で使うのが現実的だと思います。

サーバ移転プロジェクト開始

いろいろと限界が見えてきたので、サーバを移転することにしました。新サーバはCPUのコア数とメモリ容量がアップ。ストレージはSSDになるため、全体的に速度が向上するはずです。

というわけで、Windows 10のHyper-V上に開発環境を構築し、検証と開発を行っています。Linuxのディストリビューション変更、Web、SQLサーバ、NoSQLサーバ、PHPのメジャーバージョンアップを一気にやるため、ノウハウの構築も重要になります。

進捗状況は以下の通りです。

続きを読む →

スペルチェックの処理速度向上

オンライン文章校正支援サービス「PRUV」が速くなりました。

スペルチェック機能は負荷が高く、ボトルネックになっていました。そこでリングバッファでスペルチェックした単語をキャッシュする機構を組み込んでみました。これで、一度スペルチェックした単語はスペルチェックをスルーしてキャッシュのデータを利用できるようになりました。

長くて多くの英単語を含み、しかも同じ単語が頻出する文章ほど高い効果を発揮します。文章の内容によって効果が変わるので速度向上率を定量的に示すのは難しいのですが、例えば11秒から6秒に短縮した文章もあります。逆に、英単語をあまり含まない文章では処理時間はあまり変わりません。

表記ゆれチェックのブラックリスト機能

PRUV」の表記ゆれチェック機能に、ブラックリスト機能を追加しました。これまでの表記ゆれチェック機能は片仮名語だけが対象でしたが、このブラックリスト機能により平仮名や漢字にも対応します。

現時点では、ブラックリストに「既に・すでに」(副詞)や「今・いま」(名詞)などを登録してあります。この機能が有用な物になるかどうかは、今後の登録語しだい。

とはいえ、これ以上何を登録すればいいのか……。

表記ゆれチェックのホワイトリスト機能

PRUV」の表記ゆれチェック機能に、ホワイトリスト機能を追加しました。どういうものかというと、「表記ゆれではない」パターンを登録することで、それを表記ゆれの結果から除外します。

これまでは、文字列的に似ている名詞を全て検知していたため、「メリットとデメリット」「サポートとレポート」も表記ゆれになってしまいました。ホワイトリストに「サポート」と「レポート」を「問題ないパターン」として登録すると、「サポートとレポート」は表記ゆれとして検知しなくなります。

もし異なる単語が表記ゆれとして指摘されたという場合は、「ご意見フォーム」にてお知らせください。指摘された2つの単語を入力していただくだけで構いません。

なお、迷ったのですが「オーストラリア」と「オーストリア」はホワイトリストに登録していません。「ラ」を入力し忘れるミスが発生しないとも限らないので……。

先日も、文章中の一部分だけ「キャッシュ」を“キャシュ”、「フラッシュ」を“フラシュ”にしていたのを表記ゆれチェック機能で発見しました。「1文字の脱落」は結構侮れません。