【中止・延期】Haskellでつくる自然言語処理ガジェット(March, 2020)

イベント内容

【中止・延期のご連絡】

直近のコロナウイルス感染の拡大を鑑み、当イベントは延期します。 自体が収束したら再度開催します。よろしくお願いします。

【まえがき】

HaskellLogo
プログラミング言語Haskellの勉強会です(wiki)。

具体的なガジェット(速読・精読を可能とする電子文書リーダー)を作成することを通じて勉強していきます。
電子文書リーダーは、自然言語処理技術を利用しています。そちらも併せて勉強します。

HaskellはLispと並んでA.I.向け言語の本命として見られ、
またロボットや量子コンピューティング向け言語としても期待されています。
ただし、取っ付きが悪いなどの点で、まだまだ母語とする人が少ない感じです。

しかし、思ったことをそのまま形にできる素晴らしい言語という印象です。
書き方がシンプルかつ抽象度が高いことを楽にやれるので、
まだ仕様が固まっていないことを色々と試すのに向いている言語です。
上に述べた最先端領域で使われるのもよく分かりました。
更に、学び方を間違えなければHaskellは初心者向けなんじゃないかと思っています。
プログラミング未経験者も、大歓迎です。

一緒にHaskell、勉強しませんか?
(Happy Haskell Hacking)

【勉強会の内容】

やること

前半は講義形式を取ります。今回はHaskellの基本的な文法とData.List周りの関数の使い方を覚えていきます。
資料はこのHPにあるものを推敲する予定です。 準備室0から準備室5までです。
後半はもくもく会と今後の勉強会の作戦会議、Haskellについての情報交換会にします。

前回資料

前回資料はこちら
この資料で以下の内容を発表しました。

  1. Haskellってなんぞ?
      1.1. HaskellがなぜAI向け言語の本命とされるのか
       1.1.1. 抽象化の威力
       1.1.2. 型理論の重要性(ロジックを扱う)
      1.2. Haskellと速度
      1.3. Haskellのデメリット(記号遊び言語Haskell)
  2. 勉強会で学んでいく内容
      2.1. Data.List(基本文法等)
      2.2. S式の操作(Parser)
      2.3. GUI(ガジェット)
      2.4. 高度なA.I.(Agda)
  3. 自然言語処理ガジェットってなんぞ?
      3.1. 概要(こんなの)
      3.2. Haskellでつくる必要性
  4. 圏論とか出てきそうな予感
  5. 初心者向け言語Haskell

Haskellの勉強という意味ではあんまり進んでいないです。
なので、今回が実質的な初回ともいえます。

準備するもの

講義パート(後述)については、できればHaskellの環境を構築したPCを用意してください。
環境の構築の仕方はHPに書いています。
VSCodeとHIEの組み合わせを推奨します。
更に、Mecabも入れておいてください。そちらも準備室1にやり方を書いています。
環境の構築が難しい、何かうまく出来なかったという人は私の方に連絡ください。
勉強会当日に早めに来ていただく or もくもく会で何とかする等、対応します。

【おしらせ】

取りまとめは私が行いますが、みなさんが知恵を出して参加後に各々が何かを持ち帰る、
そんな感じの勉強会にしていけたらなと思います。

【対象者】

  1. Haskellを勉強したい人
  2. 自然言語処理を勉強したい人
  3. 何かおもちゃ的(しかし実用的)なプログラムをつくってみたい人
  4. 現在主流のAI(機械学習ベース)とはやや違う路線のA.I.をやりたい人
  5. プログラミングをこれから勉強しようと思っている人

【題材】

具体的なガジェット(速読・精読を可能とする電子文書リーダー)を題材にします。

【例1:Haskell】

こんなの

【例2:機械学習】

こんなの  

プログラミングのシンタクスハイライトにヒントを得ています。
ただ単に色を付けているわけではないです。
構文解析等の自然言語処理技術が必須になってきます。
(他にも色んなギミックを使っています)。
上のとおりに普段読みするレベルのはできていますが、まだまだ完成度は低いです。
この勉強会で皆さんと知恵を絞って完成させられたらと思っています。

ガジェットをつくる過程で、

1. 文章をHaskellで構文解析するだけの力
2. 型理論(あわよくば圏論)

などといった、高度なA.I.をやる上でのスキルや背景知識を得られるはずです。
このガジェットをつくった後で、本格的なA.I.も勉強していこうと考えています。

【教科書】

ガジェット作成の過程で要所要所説明、という形式を取ります。
参考書として以下をおすすめします。

やさしい本: プログラミングHaskell第二版(Graham Hutton著)
やや難しい本: Haskellによる関数プログラミングの思考法(Richard Bird著)
網羅的な本: Haskell Wikibooks

他にも、いくつか自分の持っている本を当日、ご紹介する予定です。

【会場】

県立長野図書館 3F 「信州・学び創造ラボ」 manabi manabi2

【タイムテーブル】

以下の通り、前半に講義形式の勉強会、
後半は各自講義の質問等、もくもく会、作戦会議(開発環境を同じくするための技術や今後の勉強会について、Haskellについての情報交換等)
を予定しています。
途中入退出、全く問題なしです。

時間 内容
13:00 - 勉強会開始(講義形式)
14:00 - 質問等、もくもく作業、作戦会議(各自作業)
17:00 - 撤収(その場の流れで懇親会も検討)

【持ち物】

講義パート:Haskellの環境を構築したノートPCがあると良いですが、なくてもHaskellってなんぞ?という雰囲気をつかめると思います。
もくもく会:持ち物自由です。PCがあれば環境構築等お手伝いします。前回と同様にHaskell関連の書籍をたくさん持っていきます。そちらを読むというのもありかと思います。
書店に並んでいない同人誌とかも用意します。

注意事項

※ こちらのイベント情報は、外部サイトから取得した情報を掲載しています。
※ 掲載タイミングや更新頻度によっては、情報提供元ページの内容と差異が発生しますので予めご了承ください。
※ 最新情報の確認や参加申込手続き、イベントに関するお問い合わせ等は情報提供元ページにてお願いします。