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

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

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

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

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

AIを校正に応用する挑戦

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

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

続きを読む →

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

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

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

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

続きを読む →

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

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

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

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

形態素解析辞書チューニング サ変名詞編

オンライン文章校正支援サービス「PRUV」が使用している形態素解析辞書は、「サ変名詞」も固有名詞として登録されています。サ変名詞には文法的な機能があるので、分類の変更は重要な意味を持ちます。

サ変名詞とは、「する」「した」を接続して動詞化できる名詞です。例えば、「管理(する)」「検討(した)」「インストール(する)」などです(「野球する」「お茶する」のように、話し言葉では普通名詞のサ変名詞化も行われますが)。

サ変名詞を普通名詞や固有名詞と区別することのメリットは幾つかありますが、ここでは2つの例を紹介します。
続きを読む →

通貨レートチェック機能修正

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

先日通貨レートチェック機能を実装したのですが、この機能に利用しているYahoo! Financeが最近機能していないようです。クエリを投げてもリザルトがnullなので、計算できないのです。

そのうち復旧すると思ったのですがその兆しが見えないので、Yahoo! Financeで通過レート取得に失敗した場合は他社のAPIを使ってレートを取得するようにしました。ただし、対応通貨はドル、ポンド、ユーロ、スイスフランのみとなります。

早くYahoo! FinanceのAPIが復活してくれるとよいのですが……。

形態素解析辞書のチューニング

PRUVは、これでも一応は毎日進化しています。例えば、形態素解析辞書のチューニングです。

形態素解析は、入力された文を単語に分割して品詞を決定する処理です。

今日は秋晴れだ

を、

今日(名詞・副詞可能)は(助詞・係助詞)秋晴れ(名詞・一般)だ(助動詞)

のようにします。この処理の基になるのが、形態素解析辞書。「今日」も「は」も「秋晴れ」も辞書に登録ているから正しく分割できるのです。PRUVでは、ネットで公開されている辞書を独自に拡張したものを利用しています。

ただ、ネットで公開されている辞書は登録数が多い半面、ほとんどの名詞が「固有名詞」に分類されているため、名詞の種類を文法解析に利用しようと思うとうまくいきません。

そこで、ん百万語の固有名詞を、普通名詞やサ変名詞、固有名詞(人名)や固有名詞(地名)などに振り分ける作業をしています。「株式会社○○」「△△高等学校」のような単語はプログラム的な処理が可能なのですが、大半は目視チェックするしかありません。

とにかく単語の数が膨大なので、いつ終わるのか見当も付きません。が、とにかく少しずつ、単なる「固有名詞」でしかなかった単語が地名、人名、組織名、国名その他であると区別できるようになっています。

Wikipediaのテキストデータを解析

PRUVの辞書の拡充の一環として、Wikipediaのテキストデータ解析を行っています。

Wikipediaのデータ(XML)をテキストデータに変換して、それを形態素解析しつつデータベースに放り込みます。全部入れると大変なので、取りあえず約30MBのテキストデータを取り込んで解析。見た目がいろいろ残念な自作ツールを使います。

このテキストデータのグループでは、格助詞「が」が4万199回出現していました。この格助詞「が」の後ろにどのような単語が続いているのか。「が」の直後の単語を助詞に絞り込んだのが下の画面。
続きを読む →

PRUV開発1周年

1年前の2016年2月4日、オンライン文章校正支援サービス「PRUV」の開発がスタートしました。最初のコードはHTMLフォームによる入力機能もなく、コード内に直接書き込んだ文字列を形態素解析するというものでした。

形態素解析とは、文字列(文)を単語に分割して単語の品詞を判定する処理です。例えば、「今日は晴れだ」という文を、「今日」(名詞)、「は」(助詞)、「晴れ」(名詞)、「だ」(助動詞)というデータにします。

それから少しずつ機能を加えて、4月7日にはほぼ現在のPRUVの原型となるシステムになっていたようです。HTMLフォームで入力を受け付け、文章を形態素解析し、辞書を基に正誤チェックして結果を出力する。この一応動作するバージョンが、テストサーバに残っていました。

PRUV 2016/4/7版
続きを読む →