ãã©ã¦ã¶ä¸ã§ãã¼ã¿åæãåºæ¥ãï¼Clojure/Gorillaå ¥é
æ¦è¦
ãã®è¨äºã¯ãGorillaã¨ãã
ãã©ã¦ã¶ä¸ã§Clojureã¨ããè¨èªãå©ç¨åºæ¥ãã©ã¤ãã©ãªãå©ç¨ãã
ãã©ã¦ã¶ä¸ã§ãã¼ã¿åæç°å¢ãæ§ç¯ããããã®å
¥éè¨äºã§ãã
Clojureã®äºåç¥èã¯ä¸åä¸è¦ã§ã
ClojureãGorillaã®ã¤ã³ã¹ãã¼ã«ããããã©ã¦ã¶ä¸ã§å種ææ³ã
ã³ããã ãã§å®è·µåºæ¥ãã«ãªãã¾ã§ã説æãã¦ãã¾ãã
ãªããå種åæææ³ã®è©³ç´°ã«ã¯è¨åãã¦ããã¾ããã
ã¨ã«ããGorillaãåãã
ã説æã¯è¯ããããã¨ã«ããåããããã
ã¨ããæ¹åãã«è¦ç¹ã ã説æãã¾ãã
leiningenãã¤ã³ã¹ãã¼ã«ããä½æ¥ãã©ã«ãã«ã¦lein new gorillaã§ããã¸ã§ã¯ããä½ãã
çæãããgoraillaãã©ã«ãç´ä¸ã«ããproject.cljã«ä¸è¨ãã³ãããä¿åã
lein gorillaã¨æã¡è¾¼ã¿ãå°ãå¾
ã¤ã¨
Running at http://localhost:XXXXX/worksheet.html
ã¨è¡¨ç¤ºãããã®ã§ããã®URLãå©ãã¨こんな感じã®ãã¼ã¸ã表示ããã¾ãã
以ä¸ã
(defproject gorilla-test "0.1.0-SNAPSHOT" :description "A test project for Gorilla REPL." :dependencies [[org.clojure/clojure "1.6.0"] [incanter "1.5.5"] [incanter-gorilla "0.1.0"] [cc.artifice/clj-ml "0.6.0-SNAPSHOT"] [org.atilika.kuromoji/kuromoji "0.7.7"]] :main ^:skip-aot gorilla-test.core :target-path "target/%s" :repositories [["Atilika Open Source repository" "http://www.atilika.org/nexus/content/repositories/atilika"]] :plugins [[lein-gorilla "0.3.3"]] :profiles {:uberjar {:aot :all}})
Clojure/Gorillaã¨ã¯
Clojureã¨ã¯ãJVMä¸ã§åãããã°ã©ãã³ã°è¨èªã®ä¸ç¨®ã§ãã
Clojureã«ã¯çµ±è¨è§£æã©ã¤ãã©ãªIncanterãæ©æ¢°å¦ç¿ã©ã¤ãã©ãªclj-mlãªã©ã
ç¶ç¶ãã¦éçºããã¦ãããã¼ã¿åæç¨ã®ã©ã¤ãã©ãªãç¨æããã¦ãã¾ãã
ã¾ããåããJVMä¸ã§åãHadoopãHBaseãªã©ã®ã·ã¹ãã ã¨ã親åæ§ãé«ãã
ããããå©ç¨ãã¦å¤§è¦æ¨¡ãªãã¼ã¿åæãè¡ãã®ã«é©ãã¦ãã¾ãã
ããããClojureããã¤ã§ãã©ãã§ã誰ã«ã§ãå©ç¨ãã¦è²°ãããã«ã¯ã
å端æ«ã«JDKã®ã¤ã³ã¹ãã¼ã«ããã¹ãéããªã©ã®ç°å¢æ§ç¯ãå¿
è¦ã§ããã
å種ã©ã¤ãã©ãªã®æ´æ°ã®åº¦å
¨ç«¯æ«ã«ãããé©ç¨ãç¶ããã®ã¯
ãã¼ãã«ãé«ãã¨è¨ããããå¾ã¾ããã
ã¾ãããã¼ã¿ãåã
ã®ç«¯æ«ã«ç§»åããã®ãé常ã«ã³ã¹ãããããã¾ãã
å¿è«ããã¯Clojureã«éã£ã話ã§ã¯ãªã
ä»ã®å¦çç³»ã«ããã¦ãåãåé¡ã§ã¯ããã¾ããã
ããã§ããã©ã¦ã¶ä¸ã§èª°ã§ãã¢ã¯ã»ã¹åºæ¥ã¦ã
ç´ã¡ã«ãã¼ã¿åæãè¡ãããããªã·ã¹ãã ãç°¡åã«æ§ç¯åºæ¥ãã°
ä¸è¨ã®ãã¼ãã«ãã¯ãªã¢ã§ãã¾ãã
ã¤ã¾ãã誰ã§ãè²ããªç«¯æ«ï¼ã¹ãããã¿ãã¬ããã§ãï¼ï¼ã¢ã¯ã»ã¹åºæ¥ã¦ã
ææ°ã®ãã¼ã¸ã§ã³ãå©ç¨ããããã°ãµã¼ãå´ã§æ´æ°ãæããã°æ¸ã¿ã
ãã¼ã¿ã¯ãµã¼ãä¸ã«ç½®ããã¾ã¾ãªã®ã§ä¸ã
解æããã®ã«
å
¨ãã¼ã¿ããã¼ã«ã«ã«è½ã¨ãå¿
è¦ãç¡ãã
解æç¨ã®å¦çãéãçµæãåãåãã ãã§ãããªãã¾ãã
ãã®ãããªè¦æã«ãã£ã¦çã¿åºãããã®ãGorillaã§ãã
ä¸è¨ã®Golliraæ¬å®¶ãµã¤ããã¾ãã
Gorillaã«Incanterãçµã¿è¾¼ãã incanter-gorillaã®ãµã¤ãã
ã覧é ããã°ã©ã®ãããªãã®ãããç解é ããã¨æãã¾ãã
Gollira本家
incanter-gorilla
åæ§ã®ããã¸ã§ã¯ãã¯PythonãRã«ãåå¨ãã¦ãã¾ãã
ç¹ã«IPython notebookã¯ããªãã®åºæ¥æ ãã§ãã®ã§ã
ç¹ã«JVMç°å¢ä»¥å¤ã§ãåé¡ç¡ãã
ãã¤Pythonã«æ
£ã親ããã§ããæ¹ã¯
ãã¡ããå©ç¨ããã®ãè¯ãã¨æããã¾ãã
Clojureã®ã¤ã³ã¹ãã¼ã«
主ã«Windows7åãã®ã¤ã³ã¹ãã¼ã«æ¹æ³ã«ã¤ãã¦èª¬æãã¾ãã
ã¾ãææ°ã®JavaSDK(Javaã®éçºç°å¢)ãå
¥ããå¿
è¦ãããã¾ãã
ä¸è¨ãããèªåã®ç«¯æ«ã«åãããã¢ããã¤ã³ã¹ãã¼ã«ãã¦ãã ããã
http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html
次ã«ãä¸è¨ã®ãã¼ã¸ãåèã«Path, JAVA_HOMEãè¨å®ãã¾ã(windowsåã)ã
http://www.javadrive.jp/install/jdk/index4.html
次ã«ãClojureã®éçºãã¼ã«ã§ããleiningenãã¤ã³ã¹ãã¼ã«ãã¾ãã
å
¬å¼ãµã¤ãããlein.batããã¦ã³ãã¼ããã¦ä¸ããã
http://leiningen.org/
(ãããã¯これãå©ç¨)
æå¾ã«ããã¹ã®éã£ã¦ããä½æ¥ãã©ã«ã(ä¾ï¼c:\lein)ã«lein.batã移åãã¦ã
ã³ãã³ãããã³ãããã
lein self-install
ãå®è¡ã
ãã¨ã¯ã¤ã³ã¹ãã¼ã«å¦çãèªåã§è¡ããã¾ãã®ã§ãçµäºããã¾ã§å¾
ã¡ã¾ãã
çµäºããã
lein -version
ã¨æã¡è¾¼ã¿ã2014/09/07æç¹ã§ã¯
Leiningen 2.4.3
ã¨è¡¨ç¤ºãããã°ã¤ã³ã¹ãã¼ã«ä½æ¥çµäºã§ãã
Gorillaãèµ·åãã¦ã¿ã
ä½æ¥ãã©ã«ãã«ã¦ãã³ãã³ãããã³ããã«
lein new <ããã¸ã§ã¯ãå>
ã¨æã¡è¾¼ãã¨æ°è¦ããã¸ã§ã¯ããä½æåºæ¥ã¾ãã
æ°è¦ããã¸ã§ã¯ãã«ã¯æä½éå¿
è¦ãªãã¡ã¤ã«ãè¨å®ãèªåã§çæããã¦ãã¾ãã
ããã§ã¯
lein new gorilla
ã¨æã¡è¾¼ãã§ã¿ã¾ãããã
ããã¨gorillaã¨ãããã©ã«ãåã®ç´ä¸ã«
project.cljã¨ãããã¡ã¤ã«ãçæããã¦ãã¾ãã
ããã¯ãã®ããã¸ã§ã¯ãã®è¨å®ãã¡ã¤ã«ã§ãã
è¨å®ãå¤æ´ããå ´åã¯ãã®ãã¡ã¤ã«ãç·¨éãã¾ãã
ããã§ã¯ä¸è¨ã®ããã«ç·¨éãã¦ä¸ããã
(defproject gorilla-test "0.1.0-SNAPSHOT" :description "A test project for Gorilla REPL." :dependencies [[org.clojure/clojure "1.6.0"] [incanter "1.5.5"] [incanter-gorilla "0.1.0"] [cc.artifice/clj-ml "0.6.0-SNAPSHOT"] [org.atilika.kuromoji/kuromoji "0.7.7"]] :main ^:skip-aot gorilla-test.core :target-path "target/%s" :repositories [["Atilika Open Source repository" "http://www.atilika.org/nexus/content/repositories/atilika"]] :plugins [[lein-gorilla "0.3.3"]] :profiles {:uberjar {:aot :all}})
ããã§éè¦ãªã®ã¯dependenciesã¨pluginsã§ãã
dependenciesã«å©ç¨ããã©ã¤ãã©ãªãè¨è¼ãã¾ãã
ããã«è¨è¼ãããã©ã¤ãã©ãªãleiningenã
ä¾åé¢ä¿ãªã©ãèªå解決ãã¦ã¤ã³ã¹ãã¼ã«ãã¦ããã¾ãã
ããã§ã¯incanterã¨incanter-gorillaãclj-mlãããã¦kuromoji*1
ã¨ããå½¢æ
ç´ è§£æå¨ãæå®ãã¦ãã¾ãã
å½¢æ
ç´ è§£æå¨ã«ã¤ãã¦ã¯こちらãã覧ãã ããã
pluginsã«lein-gorillaãè¨è¼ããgorillaã使ããããã«ãã¦ãã¾ãã*2
ããããå
¨é¨çµãã£ãã
lein gorilla
ã¨ã³ãã³ãããã³ããã«æã¡è¾¼ãã¨
Running at http://localhost:xxxxx/worksheet.html
ã¨URLã表示ãããã®ã§ããã®ã¢ãã¬ã¹ããã©ã¦ã¶ã§è¦ãã¨
Clojureå®è¡ç°å¢ã表示ããã¾ãã
ãªããã¢ãã¬ã¹ã®xxxxxã®é¨åã¯ã©ã³ãã ã§æ±ºã¾ãã¾ãããipãportãæå®ãããå ´åã¯
lein gorilla :ip xxxxx :port yyyyy
ã¨ãã¾ãã詳細ãªãªãã·ã§ã³ã¯ä¸è¨ã«è¨è¼ããã¦ãã¾ãã
http://gorilla-repl.org/configuration.html
åä½ããã確ããã¦ã¿ã¾ãããã
表示ãããç»é¢ã®ç°è²ã®ãããã¯ã«
(+ 1 2 3)
ã¨æã¡è¾¼ã¿ãShiftã¨Enterãã¼ãåææ¼ãããã¨å¦çãå®è¡ããã¾ãã
å®è¡çµæã6ã«ãªã£ããæåï¼
ããã«ã¦Gorillaã®è¨å®ä½æ¥ã¯çµããã§ãï¼ãç²ãæ§ã§ããï¼
Gorillaã§çµ±è¨éãæ±ãã¦ã¿ã
(use '(incanter core stats charts datasets)) ;çµ±è¨è§£æã©ã¤ãã©ãªIncanterã使ãæå® (def iris (get-dataset :iris)) ;ãµã³ãã«ãã¼ã¿ã»ããã®ä¸ããirisãé¸æãããã®å 容ãirisã«æç¸ iris ;irisã®ä¸èº«ãè¦ã¦ã¿ãã ; :column-names ãã[:Sepal.Length :Sepal.Width :Petal.Length :Petal.Width :Species] ; ã¨ããåããããã¨ãåããã ; irisã¨ã¯ãããã®ãã¼ã¿ã§ãsepalã¯ãããpetalã¯è±ã³ããspeciesã¯ãããã®ç¨®é¡ã§ãã (mean ($ :Petal.Length iris)) ;è±ã³ãã®é·ãã®å¹³åå¤ãæ±ãã (sd ($ :Petal.Length iris)) ;è±ã³ãã®é·ãã®æ¨æºåå·®ãæ±ãã
Gorillaä¸ã§å¯è¦åãã¦ã¿ã
(use '(incanter core stats charts datasets)) (use 'incanter-gorilla.render) ;Incanterã§å¯è¦åããã¢ããGorillaä¸ã§è¡¨ç¤ºããã©ã¤ãã©ãªãæå® (def iris (get-dataset :iris)) (chart-view (histogram :Petal.Width :data iris)) ;chart-viewé¢æ°ã§ãã¹ãã°ã©ã ãGorillaä¸ã«è¡¨ç¤º (view (histogram :Petal.Width :data iris)) ;viewé¢æ°ã§ãã¹ãã°ã©ã ãGUIã§è¡¨ç¤º
こちらã«æ²è¼ããå¯è¦åã®viewã®é¨åã
chart-viewã«ç½®ãæããã°ãå
¨ã¦ãã©ã¦ã¶ä¸ã§å®è¡å¯è½ã§ã
Gorillaä¸ã§æ©æ¢°å¦ç¿ãã¦ã¿ã
(use 'clj-ml.classifiers 'clj-ml.utils 'clj-ml.io 'clj-ml.data) ; wekaç¹æã®ãã¼ã¿å½¢å¼arffãå©ç¨ãã¾ãã (def iris (-> (load-instances :arff "http://repository.seasr.org/Datasets/UCI/arff/iris.arff") (dataset-set-class :class))) ; ãµã¼ãä¸ã«ããCSVå½¢å¼ãèªã¿è¾¼ãå ´åã¯æ¬¡ã®ããã«ãã¾ãã ; (def iris (-> (load-instances :csv "iris.csv") (dataset-set-class :class))) ; 決å®æ¨(c4.5)ãä½ã£ã¦ã¿ã (def decision-tree (-> (make-classifier :decision-tree :c45) (classifier-train iris))) ; ä½æãã決å®æ¨ã®ä¸èº«ãè¦ã¦ã¿ã¾ã decision-tree ;ã¯ãã¹ããªãã¼ã·ã§ã³ã«æãã¦ã¿ã¾ã (def decision-tree-evaluation (classifier-evaluate decision-tree :cross-validation iris 10)) ;ã¯ãã¹ããªãã¼ã·ã§ã³ã®çµæã確èªãã¾ã (println (:summary decision-tree-evaluation)) (println (:confusion-matrix decision-tree-evaluation))
こちらã«æ²è¼ããæ©æ¢°å¦ç¿ææ³ã
å
¨ã¦ãã©ã¦ã¶ä¸ã§å®è¡å¯è½ã§ããRandomForestãK-meansãªã©ãã試ããã ããã
ä½ãããã¡ã¤ã«ãèªã¿è¾¼ãéããµã¼ãä¸ã§Gorillaãç«ã¡ä¸ãã¦ããå ´åã¯ãã¡ã¤ã«ãã¹ã«ã注æãã ããã
ãã¼ã«ã«ãã¡ã¤ã«æå®ã¯èªåã®ç«¯æ«ã§ã¯ãªããµã¼ãä¸ã§æ¢ç´¢ãã¾ãã
Gorillaä¸ã§å½¢æ ç´ è§£æãã¦ã¿ã
(import [org.atilika.kuromoji Token Tokenizer]) (def tokenizer (.build (Tokenizer/builder))) (defn ma [sentence] (doseq [^Token token (.tokenize tokenizer sentence)] (println (str (.getSurfaceForm token) "\t" (.getAllFeatures token))))) (ma "ããã¤ä¸¸æ¹äºã§å¤§çºåè欲ãã") ; (ma "ããã¤ä¸¸æ¹äºã§å¤§çºåè欲ãã") ; ã®å½¢æ ç´ è§£æçµæãæã¿ã®çµæã«ãªã£ã¦ãªãã®ã§ ; å½¢æ ç´ è§£æç¨ã®è¾æ¸ãæ´åããå¿ è¦ããã ; 以ä¸ã®å 容ãè¨è¼ãããã¡ã¤ã«ãç¨æããé©å½ãªãã¡ã¤ã«åãä»ãã ; ããã§ã¯ä¸æ¦userdict.txtã¨åä»ããã ; -- ãã¡ã¤ã«å 容ãããã -- ; 大çºåè,大çºåè,ãã¤ãããã¦ãã¤,åºæåè© ; ããã¤ä¸¸æ¹äº,ããã¤ä¸¸ æ¹äº,ã¢ãããã« ã«ã¤ã,ã«ã¹ã¿ã åè© ; -- ãã¡ã¤ã«å 容ããã¾ã§ -- ; 1åç®:表層, ; 2åç®:1åç®ãã©ãåºåãããåºåãããä½ç½®ã«åè§ã¹ãã¼ã¹ãå ¥ãã ; 3åç®:èªã¿ï¼ã«ã¿ã«ãï¼ ; 4åç®:åè©æ å ± ; â»windowsã®å ´åã¯ãã¡ã¤ã«ã®ã¨ã³ã³ã¼ããSJISã«ããå¿ è¦æã ; ãã¡ã¤ã«ãc:\\lein\\gorilla\\userdict.txtã«ç½®ããã¨ããå ´åã ; 以ä¸ã®ããã«ããã¨æã¿ã®çµæãå¾ãããã (def dic "c:\\lein\\gorilla\\userdict.txt") (def tokenizer (.build (.userDictionary (Tokenizer/builder) dic))) (defn ma [sentence] (doseq [^Token token (.tokenize tokenizer sentence)] (println (str (.getSurfaceForm token) "\t" (.getAllFeatures token))))) (ma "ããã¤ä¸¸æ¹äºã§å¤§çºåè欲ãã")
å½¢æ
ç´ è§£æã®çµæãç¨ãã¦ã¯ã¼ãã«ã¦ã³ããªã©ãããå ´åã¯
こちらãã覧ãã ããã
ããã§ç´¹ä»ãã¦ããå
容ããã©ã¦ã¶ä¸ã§å®è¡å¯è½ã§ãã
çµããã«
ãã©ã¦ã¶ä¸ã§æ§ã
ãªåæãåºæ¥ã便å©ãªæ代ã«ãªã£ã¦ãã¾ããã
å¤åºå
ã®è²§å¼±ãªç«¯æ«ãåç·ããã§ããã¤ã³ã¿ã©ã¯ãã£ããªãã¼ã¿åæãå¯è½ã«ãªãã
ä¾ãã°MTGã®æä¸ã«ããã®ãã¼ã¿ã£ã¦ã©ããªã£ã¦ããã ã£ãï¼ã
ã£ã¦è©±é¡ã«ä¸ãã£ããã®å ´ã§ããéè¨ã»å¯è¦åãã¦ç¢ºèªåºæ¥ããªã©å¤¢ãåºããã¾ããã§ãã
å®åä¸ãã¼ã¿åæãã¦ã¦ããªãé¢åã ã¨æãã®ããã¼ã¿ãµã¤ãºã§ãã
æ°åGBåä½ã«ãªãã¨ãã¡ã¤ã«ã®ç§»åã ãã§é¢åãªãã¨ã«ãªãã¾ããã
ãã¼ã«ã«ã«æã£ã¦ããã¨ããã ãã§SSD空ã容éæ»ã¬ã±ã¼ã¹ãããã¾ãã
ãã¨åæãã¼ã«ã®æ´æ°ç®¡çã¯å¤åçãããæ³åããã®ã®27åãã«ãã§ãã
ä¸ã¤ã®ã¦ã¼ã¹ã±ã¼ã¹ã¨ãã¦æ³åãã¦æ¬²ããã®ã§ããã
åæãã¼ã ã«30人ããã人ããã¦ã
ãã®ãã¡ã®ååãã³ã³ãµã«ããã¼ã±ã¿ã¼çãªæ¹ã
æ®ãååãã¨ã³ã¸ãã¢ã ã£ãã¨ãã¾ãããã
大ä½ååã®æ¹ã
ã¯ãæ´æ°ããã®ã§ã¢ãããã¼ããã¦ãã ãã¼ãã
ã¨ã¢ãã¦ã³ã¹ãã¦ããé¢åãªã®ã§ç¡è¦ãã¾ãã
ã ã£ã¦ç¾ç¶ã§ä½¿ãã¦ããããæ
£ãã¦ãã®ãä¸çªã ããï¼
大ä½å¾åã®æ¹ã
ã¯ãæ´æ°ããã®ã§ã¢ãããã¼ããã¦ãã ãã¼ãã
ã¨ã¢ãã¦ã³ã¹ããã¨ãæ¢ã«èªåæ¡å¼µãã¦ãã®ã§ã
ãããåããªããªãã¨å«ã ããç¡è¦ãã¾ãã
ããããæã·ã¹ãã æä¾å´ãåãå¾ãé¸æè¢ã¯
æ´æ°ããªãååããã³ãã¼ã§ä¸äººãã¤æ®´ã£ã¦åãã
ãããã¯ãã©ã¦ã¶ã§å®è¡ã§ããããã«ãããã§ãã
é常ã«å
å·®ã§ããäºåãã®æ¹ãã¾ã è¥å¹²ãã·ããªã¨æããªãããªãã§ãã
ãã©ã¦ã¶ä¸ã§ã®åæç°å¢æ§ç¯ã¯ã
åææ¥ç¶æ°ã¨ãèªè¨¼å¨ãã¨ãã«ã¾ã ã¾ã æ©è½ä¸è¶³ãåé¡ãããã¾ãã
ããã¯Clojure/Gorillaã ãã§ã¯ãªãã
Rã®ShinyãPythonã®IPython notebookã§ãåãåé¡ã¯çãã¦ãã¾ãã*3
ã¨ã¯ããããã©ã¦ã¶ä¸ã§åæå¯è½ãªã¡ãªããã¯çµæ§å¤§ããä¸ã«ã
Clojure/Gorillaã¯JVMç°å¢ã§ç°¡åã«æ§ç¯ã§ãããã¼ã«ãªã®ã§
æ¯éãã£ã¬ã³ã¸ãã¦ããããï¼çããããã£ã¬ã³ã¸ãã¦æ¬²ãããªã¨æãã¾ãã
ããã§ã¯çæ§ãããGorillaã©ã¤ããï¼ï¼
ç´ æµãªLispã¨ã¤ãªã¢ã³ã¤ã©ã¹ãããã«ã¿ã³EX@marutakoEXæ§ãããåããã¾ããï¼
ãã«ã¿ã³EXæ§ãå©ç¨ã®ã快諾ãèª ã«æé£ããããã¾ãï¼ï¼ï¼
*1:ã¡ãªã¿ã«ããã§æå®ãã¦ããã®ã¯ææ°çã§ã¯ããã¾ãããããã¯åã«ç§ãä»ã¾ã§å©ç¨ãã¦ã¦åä½ãç解åºæ¥ã¦ãã¨ããã®ã§ãä»åãæ°æ§ã§æå®ãã¦ããã ãã§ããLucene Kuromojiã®ææ°çã使ãæ¹ãè¯ãã§ã
*2:ç§ã¯ãä½ã§ãããdependenciesã§ä½ã§ãããpluginsãªã®ï¼ãã£ã¦ããã®ããã¾ãã¡ããã£ã¦ãªããã§ããããã®åãåãããåç¥ã®æ¹ããã£ããã£ããæãã¦ãã ããâ¦ãã¾ãã¨ããããå ¬å¼ãµã¤ãã®æ示ã«å¾ã£ã¦è¨å®ããã°åãã¾ã
*3:IPython notebookã¯ä¸å¿ãã¹ã¯ã¼ãè¨å®åºæ¥ã¾ãããããã§ããèªè¨¼ã¯ãAããã¯ãã®ãã¼ã¿ã¨ãã®ãã¼ã¿ã«ã¢ã¯ã»ã¹åºæ¥ã¦ãBããã¯ããã«ãã®ãã¼ã¿ã«ãã¢ã¯ã»ã¹åºæ¥ã¦ãããCããã¯ç°åãããããã®ãã¼ã¿ã¸ã®ã¢ã¯ã»ã¹ç¦æ¢ãã¦ãã¨ãããããã£ã¦æå³ã§ããã¾ãä»ã§èªè¨¼æ©è½å¥éä»ããã¨è¨ããããããããããªãã§ãã