テキスト変換(笑)をなでしこで書いてみた
昨日、id:foaran主催の日本語プログラム言語「なでしこ」の勉強会がありました。
Word、Excelなどを操作する命令もあり、少ない行数でいろいろなことができるので、魅力的に感じました。
〜して、の形でつなげていけば、一行でプログラムを書くこともできます。
頑張れば、ソースコードで詩や小説を書くことも不可能ではないので、普段のプログラミングとは違った楽しみ方ができますね。
ということで、勉強会の中でAtomをパースする話があったので、それを改良してYahoo! 日本語形態素解析Webサービスを使って、「テキスト変換(笑)を堂々公開(笑)」のようなものを作ってみました。
ソースコード
●スイーツ(笑を) それは笑&「(笑)」。 「何か入力してください。」と尋ねる。 文章はそれをUTF8N変換してURLエンコード。 「http://api.jlp.yahoo.co.jp/MAService/V1/parse?appid=YahooDemo&results=ma,uniq&uniq_filter=9|10&sentence={文章}」をHTTPデータ取得。 それをSJIS変換してレスポンスへ代入。 お仕事は、レスポンスから「ResultSet/ma_result/word_list/word」の階層タグ切り出す。 ご褒美とは文字列。 お仕事を反復 対象から「pos」の階層タグ切り出して、タグ削除して、品詞に代入。 対象から「surface」の階層タグ切り出して、タグ削除して、パスタに代入。 もし、品詞が「名詞」ならば、パスタをスイーツして、パスタに代入。 ご褒美は、ご褒美&パスタ。 ご褒美を表示。
実行結果
テキスト(笑)を解析(笑)し、適宜「(笑)」を追加(笑)するという、 Web(笑)2.0(笑)でスーパー(笑)スイーツ(笑)なウェブ(笑)サービス(笑)です。 よろしくお願い(笑)します。 スイーツ(笑)。
熟達した人はもっとエレガントな文章でソースコードを書くのでしょうが、これだけの行数で、Web APIからXMLを持ってきてパースできるというのはすばらしいですね。
プログラム時間もほとんどかかりませんでした。
何よりスイーツ関数を作れるのが日本語プログラム言語ならではです。
こういったお遊びをどこまでやるかがこの言語の醍醐味だと思いました。
現在、2007日本語プログラミングコンテストを開催中らしいので、時間があればぜひ何か作りたいですね。