読者です 読者をやめる 読者になる 読者になる

北野坂備忘録

主にインストールやプログラミングのメモを載せています。

TOEIC800点を目指す

700点台の人がTOEIC800点台を目指すのであれば、オススメはこちら。 実戦形式の問題がそれぞれ3回分入っています。こいつをそれぞれ3周してスラスラ解けるようになれば本番でも無理なく最後まで到達できるようになるでしょう。 TOEIC(R) TEST800点突破リーデ…

まずは文法書

TOEICの勉強法の話をする前に釘をさしておきますが、TOEICの文法は極端に偏っています。だからこそ簡単に点が取れるんですが。 しかしながらTOEICの文法だけやってると海外の論文を読んだり、自分でアブストラクトを書いたりするときにたいへん困るわけです…

TOEICで865点とった

「今年3月13日のTOEICで865点を取った」という話をしたら数人から「どういう勉強をしたのか、どんな参考書を使ったのか」を目の色を変えてかなりしつこく聞かれたので、もしや情報系でも結構な需要があるのでは?と思いメモを残しておくことにしました。 た…

xgboostについて(メモ)

全く機械学習に興味のない人から「xgboostって何?」と聞かれました。 『くまみこ』のナツが「都会の人はみんなxgboostを使ってるよ」と煽ってくるツイートがツボにハマったそうです。都会の人はみんなxgboostを使ってるよ pic.twitter.com/v6ZfBJ8imN— おら…

naist-jdicとmecab-ipadic-NEologd

UTF-8版のipadicがうまく入らなかったため、mecab用辞書としてnaist-jdicを使っているのですが、どうしてもmecab-ipadic-NEologdが使いたくて試してみたところ、今のところ普通に動いています。 こちらのReadMeの「mecab-ipadic-NEologd をインストールする…

WindowsでAndroid Studioを使うとき、SHARP製のスマホが認識されない場合の対処法

ハンズオン会場でAndroid Studioがノートパソコンに差したSHARP製のスマホを一向に認識してくれず超焦りました。 下記の参考文献を元にGoogle から「Google USB Driver」をダウンロードして必死にインストールしていたのですが、全くインストールしてくれま…

ホップフィールド・ネットワーク

階層型ニューラルネットワークはイメージできるけど、ボルツマンマシンはイメージできない、という人が多いようです。 制限付きボルツマンマシンにいきなり取り組むよりも、もととなったホップフィールド・ネットワークのことを理解してから進んだほうが良い…

Masaaki_Inabaさんの「問題文の意味がわからない人のための 言語処理100本ノック 第9章 ベクトル空間法 (I)」

Masaaki_Inabaさんの qiita.com が超絶に分かりやすく、 「うわあー、すっごーい、わかりやすーい!」 と感動しながら最後まで読んでいたら、参考文献の一番上に 「北野坂備忘録」 って書いてあって3回転ぐらいひっくり返った。

パーセプトロンとディープラーニング

機械学習の勉強にパーセプトロンは避けて通れません。なぜならサポートベクトルマシンもディープラーニングもパーセプトロンから派生してきたからです。 マージンを最大化するパーセプトロンが線形サポートベクトルマシンです。それがカーネルトリックによっ…

文系にシグモイド関数を教えてみた

文系にシグモイド関数を教えるにあたり、Wikipedia風にいきなり数式をぶつけてはいけません。機械学習に出てくる数式の中では最も簡単な部類に属しますが、彼らにSANチェック(0/1D2)を要求してしまいます。 まずは図です。Wikipediaだとこの図がいいでしょう…

「高村本」とは

高村薫の本……ではない。このブログでも何度も取り上げている『言語処理のための機械学習入門』のこと。著者が高村大也 氏のため。 言語処理のための機械学習入門 (自然言語処理シリーズ)機械学習系のブログでは有名な書籍に対しこのような略称と言うか通称が…

「ラグランジュの未定乗数法」の大枠

「ラグランジュの未定乗数法を理解している人よりも、ラグランジュの未定乗数法を理解していないって言ってる人のほうがバリバリTensorFlowを使ってシステムを作っている……」という身近な闇は置いておいて。 なにはともあれ「ラグランジュの未定乗数法」の大…

東証一部上場企業の社長にも分かるように5分で説明

お題が出てた。「線形回帰モデルとSVMとランダムフォレストとDeep Learningの4つの手法の共通点と相違点を、東証一部上場企業の社長にも分かるように5分で説明して下さい」みたいなスキルテストがあったらつらそうだな、とふと思った— TJO (@TJO_datasci) 20…

『ITエンジニアのための機械学習理論入門』

ITエンジニアのための機械学習理論入門 まず、この本は「機械学習入門」ではありません。 タイトルどおり「機械学習理論入門」です。 機械学習の「理論」を学びたい人向けの「入門書」です。ですので、機械学習入門として「はじめてのパターン認識」を読んだ…

機械学習・データマイニング・テキストマイニングを勉強しようと思う初心者に送る入門書と送らない書籍一覧

この一年間機械学習・データマイニング・テキストマイニングの本をいろいろと読んできましたが、機械学習の大御所が紹介している本の中には「あなたは分かるだろうけど、俺たち初心者にはコレまだ理解できないよね?」というものもありました。 そこで、あく…

はじめてのパターン認識

はじめてのパターン認識 うーん残念。なぜこの本を最初に読まなかったのか……。 いろんなところで紹介されていますが、深層学習を始める前にランダムフォレストまでの基本的な機械学習(この本で言うところの「パターン認識」)の流れを学ぶにはこの本が一番…

(めも)パーセプトロンの語源

パーセプトロン(perceptron)の語源はパーセプション(perception)。 パーセプションには「知覚」と「認識」の意味がありますが、パーセプトロンが視覚と脳の機能をモデル化したものである以上、日本語的には「知覚+認識」が語源になるのかな?

本日の聞き間違い

Rachel(レイチェル)を「レイシャル」って言うのやめてくれませんかねぇ……。人名って気づかなかったよ。イギリスではそう発音するのか……?アメリカ人ははっきり「チェ」と発音してたしなぁ……。

『深層学習』:機械学習プロフェッショナルシリーズ

深層学習 (機械学習プロフェッショナルシリーズ) 深層学習に関する本ってあまり読んだことないんですが、この本はすごく分かりやすかった。 私はRNNと制約ボルツマンマシンを勉強したくてこの本を読んだんですが、畳込みニューラルネットワーク(CNN)の話も分…

t-SNE再訪

言語処理100本ノックの99番はこういう図を期待していたのではないか。 どのみち密集している中央部分は全く判別がつかないんですが。 プログラムは以下のとおり。 #!/usr/bin/env python import codecs import re import copy import numpy as np from sklea…

言語処理100本ノック 2015年版 (96-99)

96. 国名に関するベクトルの抽出 word2vecの学習結果から,国名に関するベクトルのみを抜き出せ. 国名って以前やりましたよね。 81で作った国名リストがあるのでそれを使います。 問題はU.Sみたいな前のリストに入れていない国名をどうするか。 後の設問を…

言語処理100本ノック 2015年版 (90-95)

前回90番のプログラムを載せ忘れていたのでまずはそこから。 #!/usr/bin/env python from gensim.models import word2vec data = word2vec.Text8Corpus('80.txt') model = word2vec.Word2Vec(data, size=300) voc=model.vocab.keys() if __name__ == "__main…

イラストで学ぶ機械学習

イラストで学ぶ 機械学習 最小二乗法による識別モデル学習を中心に (KS情報科学専門書) 期待していたのとちょっと違いました。 「機械学習に関するイラストが豊富に載っている」のではなくて、「RPGツクール以下の謎疑似ファンタジー風イラストが大量の数式…

本日の聞き間違い

カナダ人がアップルーボウ(林檎弓)と言ってきたので書いてもらったらapproval(賛成)だった。アプローバルじゃないんだ……。

言語処理100本ノック 2015年版 第9章再訪(2)

(再)85. 主成分分析による次元圧縮 84で得られた単語文脈行列に対して,主成分分析を適用し,単語の意味ベクトルを300次元に圧縮せよ. で、こちらを分散処理基盤で処理していこうと思いました。 岩波データサイエンスvol.2ではどうやって主成分分析してるの…

言語処理100本ノック 2015年版 第9章再訪(1)

84. 単語文脈行列の作成(再) 83の出力を利用し,単語文脈行列Xを作成せよ.ただし,行列Xの各要素X_tcは次のように定義する. f(t,c)≥10ならば,X_tc=PPMI(t,c)=max{log( (N×f(t,c)) / (f(t,∗)×f(∗,c) ) ),0} f(t,c)ここで,PPMI(t,c)はPositive Pointwise…

言語処理100本ノック 2015年版 (90)と手戻り

第10章: ベクトル空間法 (II) 第10章では,前章に引き続き単語ベクトルの学習に取り組む. 90. word2vecによる学習 81で作成したコーパスに対してword2vecを適用し,単語ベクトルを学習せよ.さらに,学習した単語ベクトルの形式を変換し,86-89のプログラム…

言語処理100本ノック 2015年版 (85-89)

(追記)このあたり見事にしくじってますが、後日リベンジしております。 kenichia.hatenablog.com 85. 主成分分析による次元圧縮 84で得られた単語文脈行列に対して,主成分分析を適用し,単語の意味ベクトルを300次元に圧縮せよ. 単語の意味ベクトルを300…

言語処理100本ノック 2015年版 (83,84)

83. 単語/文脈の頻度の計測 82の出力を利用し,以下の出現分布,および定数を求めよ. f(t,c): 単語tと文脈語cの共起回数 f(t,∗): 単語tの出現回数 f(∗,c): 文脈語cの出現回数 N: 単語と文脈語のペアの総出現回数 単語tと文脈語cの共起回数は、ソートをすれ…

言語処理100本ノック 2015年版 (80~82)

第9章: ベクトル空間法 (I) enwiki-20150112-400-r10-105752.txt.bz2は,2015年1月12日時点の英語のWikipedia記事のうち,約400語以上で構成される記事の中から,ランダムに1/10サンプリングした105,752記事のテキストをbzip2形式で圧縮したものである.この…

言語処理100本ノック 2015年版 (78,79)

78. 5分割交差検定 76-77の実験では,学習に用いた事例を評価にも用いたため,正当な評価とは言えない.すなわち,分類器が訓練事例を丸暗記する際の性能を評価しており,モデルの汎化性能を測定していない.そこで,5分割交差検定により,極性分類の正解率…

言語処理100本ノック 2015年版 (74~77)

74. 予測 73で学習したロジスティック回帰モデルを用い,与えられた文の極性ラベル(正例なら"+1",負例なら"-1")と,その予測確率を計算するプログラムを実装せよ. 今度は重みベクトルを使って文の極性ラベルを計算していきます。 与えられた文は74test.t…

言語処理100本ノック 2015年版 (73)

今日は73番だけでいきます。 73. 学習 72で抽出した素性を用いて,ロジスティック回帰モデルを学習せよ. ロジスティック回帰モデルとは、「確率化された分類モデル」の一種です。「確率化された分類モデル」は全体の確率を0から1までの間に押し込まないと…

言語処理100本ノック 2015年版 (70~72)

第8章: 機械学習 本章では,Bo Pang氏とLillian Lee氏が公開しているMovie Review Dataのsentence polarity dataset v1.0を用い,文を肯定的(ポジティブ)もしくは否定的(ネガティブ)に分類するタスク(極性分析)に取り組む. このあたりからついてこれ…

「言語処理100本ノック 第8章:機械学習」対策本

そろそろ自然言語処理に関する何の知識もなしにプログラミングしていくのは難しいと思うので、第8章を迎えるにあたり一冊だけ本を紹介したいと思います。 言語処理のための機械学習入門 (自然言語処理シリーズ) わりと薄いけれども必要な情報がみっちり詰ま…

本日の発音

status は「ステータス」ではなくて「スタータス」(カナダ人)

言語処理100本ノック 2015年版 (64~69)

第7章の後半はMongoDBを使っていきます。 64. MongoDBの構築 アーティスト情報(artist.json.gz)をデータベースに登録せよ.さらに,次のフィールドでインデックスを作成せよ: name, aliases.name, tags.value, rating.value CentOSではMongoDBは簡単にイン…

言語処理100本ノック 2015年版 (60~63)

第7章: データベース artist.json.gzは,オープンな音楽データベースMusicBrainzの中で,アーティストに関するものをJSON形式に変換し,gzip形式で圧縮したファイルである.このファイルには,1アーティストに関する情報が1行にJSON形式で格納されている.JS…

言語処理100本ノック 2015年版 (55~59)

55. 固有表現抽出 入力文中の人名をすべて抜き出せ. Named Entity Recognition は直訳すると「名前符号認識」ですが、現在は一般的に「固有表現抽出」と呼ばれています。 今回はこのNERタグを用います。 #!/usr/bin/env python import codecs import copy i…

言語処理100本ノック 2015年版 (50~54)

第6章: 英語テキストの処理 英語のテキスト(nlp.txt)に対して,以下の処理を実行せよ. 50. 文区切り (. or ; or : or ? or !) → 空白文字 → 英大文字というパターンを文の区切りと見なし,入力された文書を1行1文の形式で出力せよ. 上記の条件を正規表現…

本日の聞き間違い

オーストラリア人に、「cottage cheese(カッテージチーズ)はどこですか?」と聞かれたので怪訝そうな顔をしていたら、「cartridge(カートリッジ)はどこですか?」 だった。

言語処理100本ノック 2015年版 (46~49)

5章後編に突入。 46. 動詞の格フレーム情報の抽出 45のプログラムを改変し,述語と格パターンに続けて項(述語に係っている文節そのもの)をタブ区切り形式で出力せよ.45の仕様に加えて,以下の仕様を満たすようにせよ. 項は述語に係っている文節の単語列…

言語処理100本ノック 2015年版 (40~45)

プログラムの量が多くなってきたので2回に分ける。 CaboChaのインストールで一苦労。 さて、何の指示もされていないがCaboChaはテキストをそのまま放り込むとツリー表示になる。このままでは役に立たない。 本問では「係り受け解析結果」を使用するので、-f1…

CentOS で Tensorflow を使うために python2.7 をインストール

Tensorflowを使うためにpython2.7を使うためにVirtualEnvをインストール。まずは python2.7 を /opt/local にインストールする。 curl -O https://www.python.org/ftp/python/2.7.6/Python-2.7.6.tgz tar zxf Python-2.7.6.tgz cd Python-2.7.6 ./configure …

CaboChaのインストール

CentOSにCaboChaをインストールするうえでしくじり2点。 morph.cpp(108) [charset() == decode_charset(dinfo->charset)] Incompatible charset: MeCab charset is UTF-8, Your charset is EUC-JP-MS こちらはネット上に解決方法がゴロゴロ転がっているので…

言語処理100本ノック 2015年版 (30~39)

第4章は形態素解析。しかし、どちらかというと matplotlibが問題、それも操作ではなくてインストールとの闘いだと思われます。 30. 形態素解析結果の読み込み 形態素解析結果(neko.txt.mecab)を読み込むプログラムを実装せよ.ただし,各形態素は表層形(s…

言語処理100本ノック 2015年版 (20~29)

第3章は正規表現 20. JSONデータの読み込み Wikipedia記事のJSONファイルを読み込み,「イギリス」に関する記事本文を表示せよ.問題21-29では,ここで抽出した記事本文に対して実行せよ. #!/usr/bin/env python import codecs import json fin = codecs.op…

VMWare Toolsインストール時に「入力/出力エラー」

CentOS6.7 に VMWare Toolsをインストールしようとするがうまくいかない。 >> mkdir /mnt/cdrom >> mount /dev/cdrom /mnt/cdrom >> cd /mnt/cdrom >> ls ls: reading directory .: 入力/出力エラーです必死に理由を探していると、 >> df Filesystem 1K-bloc…

俺の彼女がビキニーソなわけがない

paizaから問題追加の連絡があって行ったら杏ちゃんがビキニーソ(ビキニ&黒ニーソ)になっていた。 ……バグだと信じたい。 ※いまさらですがPythonで解いています。 眼帯 よくわかんなーい。 よくわかんないのは最初の巻数Nの意味。いるのかコレ? 使わない…

プログラミングで彼女を作ってみた

paizaの悪質な罠に引っかかる。paiza.jp恋愛SLG: プログラミングで彼女をつくる|paizaオンラインハッカソン7raw_input()の仕様を理解するまでかなり試行錯誤をした。 ショートカット x = int(raw_input())+int(raw_input()) print x ロングヘア yes = 0 no…