かんちゃんの備忘録

プログラミングや言語処理、ゲームなど知的好奇心のための備忘録(個人の感想)です。

perlで正規表現ワンライナー

いちいちエディタを開いてスクリプトを書くのは面倒だけど、perl正規表現を使いたいです。

サクッと試すときはシェルコマンドとしてのワンライナー

perl -pe 'BEGIN{use encoding "utf8";}' s/(\d) /\1/g;

もちろん、正規表現以外にもperlの機能が使えます。

辞書整備は大変だ

言語処理の単語解析器を支える解析用「辞書」の整備は大変です。
後輩とああだこうだと議論しています。


そもそも「辞書」とは

ここでの辞書とは、国語辞典大辞林のような人間向けの辞書ではなく、プログラムが利用する知識のことです。
辞書は言語処理における1つの方法であり、辞書を頼りに言語を解体および分析します。
ほとんどの日本語形態素解析器は辞書を頼りとして、形態素に分割しています。

例えばどんな記述か。

表記ゆれ解消辞書の例をあげます。
人間ならば「りんご」と「リンゴ」と「林檎」が同じ単語であることは言うまでもありません。
しかしながら、コンピュータ君がこれら3つの表記を同じものとは見なしてくれません。
そこで、これら3つが同じ単語だよということを辞書という知識により与えます。
上記は単純な例ですが、実際は多種多様に渡ります。
シソーラスは単語間の意味を上位・下位で分類したもので、これも辞書の1つと捉えることができます。
他に動詞の振る舞いを抽象化したものなどもあります。


辞書整備の難しさ

完璧な辞書はないよ

完璧な辞書は作れないと言うことです。
「辞書」という単語を聞くと、森羅万象すべての語を網羅しているように感じますがそうではありません。

想定外のことが起きまくる

思いの及ばないような表現がたくさんあります。
自分はネイティブだから網羅できるかというと、そんなわけありません。
また、解析システムと辞書の体系がかけあわさって表出する、複合的な問題もあります。

メンテナンスが大変だ

決まり文句のように言われることです。
基本的に辞書は人手でメンテナンスされます。
新しい単語の扱いの問題や、そもそものデータ構造の理解が難しい問題。
他には、複数人が関わるとどうしても基準が揺らいできます。
そこをどのように制御するかという問題があります。


では、どうしましょう

問題ばかりと嘆いていても仕方がありませんから、作りましょう。

小さな規模で作ってみよう

小さな規模で辞書を作成すると、なんとなく粗が見えてきます。
この時点でできる限りの致命的な構造の欠点を修正します。
これで、「完璧な辞書が作れない」ということを認識すること。
つまり妥協点と目標をすりあわせることです。
小さな規模で作成してみると、作業時間がどれくらいのものか分かってきます。
かなり難しいのが、整備や追加にかかる作業時間の見積もりです。
勘としか言いようがないですが・・・

メンテナンスの負荷の軽減に

簡潔なデータ構造と明確な設計思想(ドキュメント)、メンテナンスツールが肝かと思います。
簡潔なデータ構造とは、変更を加える際に変更する点が少なくかつ明確な構造です。
明確な設計思想は、作業者が判断のよりどころにするためのものです。
作業を1人でやろうが複数人であろうが、人間の基準は曖昧で揺れます。
これをできるだけ、設計思想や例で補います。
最後にメンテナンスツールです。
いかに簡単に変更を加えることができ、またその変更による影響はどのようなものかということを可視化できることが大事です。
これにより変な変更や、変更によるストレスを軽減することができます。


おわりに

辞書整備をしていて思うのが、先の偉大な研究者の方々が作成した辞書があまりにも素晴らしいということです。
様々な問題を抱えながら、1つの終着点にたどり着く辞書作成がいかに難しいかを痛感しています。
辞書整備の難しさはなかなか共有しにくいものですので、何かコメントやその他チップスなど教えて頂けると幸いです。

セキュリティー対策についてインタビューを受けました

学生向け情報セキュリティ教育用ビデオ作成にあたって学生の意見を参考にさせてほしいということで、セキュリティー対策や考えについてインタビューを受けました。
学生は僕以外に2人参加し、雑談のような対話形式でした。

自分のセキュリティ対策についてや、SNSの利用法などについてお話をしました。
一応、私自身情報工学を専攻しているのでそれなりにセキュリティに気を遣っているつもりです。

インタビュー内容を思い出しつつ、つらつらと書きます。


SNSはいつから利用し始めたましたか?」という質問を受けて、そういえばいつから利用しているのだろうとふと思いました。
思い返すと始まりは、海外短期留学をする前に勧められて始めたFacebookでした。
それが高専4年生の頃だったと思います。
Facebookを始めてからTwitterも始め、mixiも趣味のグループで連絡を取るために使っていました。
あ、そのまえにモバゲーがありましたね。

「そのときにどうやってインターネットリテラシーを身につけたか?」という質問がありましたが、「何となく」でした。
当時、周りの大人が積極的にSNSを使っていたかというとそういう訳ではありませんでした。
思い返すと本当になんとなくやっていました。
Twitterで少し揉めたような記憶もあります。

「まわりの友人で炎上とか何かトラブルに巻き込まれた人はいますか?」という質問もありました。
まわりの友人で炎上したことがある人は、たぶんいないですね。
なかなか学生レベル(実名ではない)で炎上するほど影響力のある人はいないのでしょう。
ただ、少し前に流行ったLINE乗っ取りをされた友人はいました。
突然クオカードがどうだのこうだの言うので当時は何事かと思いました。

やたらとクラウドの利用についても聞かれました。
やはり「クラウド=危ない」という風な認識なのでしょうか。
確かに便利さを享受するために、きちんとプライバシー設定をしたり規約を読んだりしないといけないです。
スマートフォンを使っている人は知らず知らずのうちにクラウドサービスを使っていると思いますが。

何だかんだ1時間ほど、セキュリティーについて雑談をしていました。
1学生の話ですが、何かの訳に経てば幸いです。

言語処理学会年次大会の文献を調査する

初投稿です。
研究において文献調査は欠かせません。
私は言語処理の研究をしています。
幸いにも言語処理学会年次大会で発表された文献を簡単に全文検索できるサイトがあります。
文献検索・閲覧システム
表記ゆれに関する研究を行っているので、「表記ゆれ」「表記揺れ」「異表記」などで検索すると様々な文献を閲覧することができます。
検索機能だけでなく、関連研究もリンクが張られていたり、Slidenoterという強力なビューワーで閲覧することも可能です。
様々な分野の文献を探すには、
- Google scholar
- CiNii
- ACL Anthology
あたりが鉄板です。
コンピュータサイエンスの分野ではarXivも要チェックです。