Skip to content

Instantly share code, notes, and snippets.

View masatoi's full-sized avatar

Satoshi Imai masatoi

View GitHub Profile

Webスクレイピングと文書分類

この章でやること

インターネット上を流れるトラフィックは量的な意味では動画データが過半数を占めるようになりつつあるが、依然としてテキストデータの重要性は変わらない。テキストデータは日々ものすごいスピードで増え続けており、一人の人間の目で追い続けるのはもはや不可能である。また、それらのテキストデータは大抵の場合構造化されておらず、そのままでは使えないことが多い。そこでデータ分析が必要になる。テキストデータをデータ分析し、意味ある構造を取り出す行為をテキストマイニングと呼ぶ。

本章では、Common Lispのライブラリを用いて、インターネットをクローリングし、必要な情報を収集した上で構造化するためのいくつかの方法を紹介する。

Webスクレイピング

Webスクレイピングに必要なライブラリ

Webスクレイピングとはウェブサイトから必要な情報を取り出す行為のことをいう。 Webスクレイピングでは、(1) Webからデータを取得し、(2) これを解析しDOM木構造を作り、(3) そこから必要な情報を探索するというプロセスを踏む。

@masatoi
masatoi / dired-settings.el
Last active March 9, 2019 17:00
dired関係の設定
;;; diredの拡張
(load "dired-x")
(defun dired (dirname &optional switches)
(interactive (dired-read-dir-and-switches ""))
(switch-to-buffer (dired-noselect dirname switches))) ; popupではなくバッファを切り替える
(defun dired-view-file-mouse (click)
(interactive "e")
(dired-view-file))

Webスクレイピングと文書分類

この章でやること、意義

インターネット上を流れるトラフィックは量的な意味では動画データが過半数を占めるようになりつつあるが、依然としてテキストデータの重要性は変わらない。テキストデータは日々ものすごいスピードで増え続けており、一人の人間の目で追い続けるのはもはや不可能である。また、それらのテキストデータは大抵の場合構造化されておらず、そのままでは使えないことが多い。そこでデータ分析が必要になる。テキストデータをデータ分析し、意味ある構造を取り出す行為をテキストマイニングと呼ぶ。

本章では、Common Lispのライブラリを用いて、インターネットをクローリングし、必要な情報を収集した上で構造化するためのいくつかの方法を紹介する。

Webスクレイピング

Webスクレイピングに必要なライブラリ

Webスクレイピングとはウェブサイトから必要な情報を取り出す行為のことである。

(defun sdot (factor-matrix-vector X-indices-matrix X^-value-vector)
(let ((R (array-dimension (svref factor-matrix-vector 0) 1)))
(loop for datum-index from 0 below (array-dimension X-indices-matrix 0) do
(setf (aref X^-value-vector datum-index)
(loop for ri from 0 below R
sum (let ((prod 1d0))
(loop for factor-index from 0 below (length factor-matrix-vector) do
(let ((factor-matrix (svref factor-matrix-vector factor-index)))
(setf prod
(* prod (aref factor-matrix
@masatoi
masatoi / cl-random-forest-workspace.lisp
Created February 16, 2019 11:08
cl-random-forest-workspace.lisp
;;; -*- coding:utf-8; mode:lisp -*-
(in-package :cl-random-forest)
;;; Small dataset ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(defparameter *n-class* 4)
(defparameter *target*
(make-array 11 :element-type 'fixnum
;;; -*- coding:utf-8; mode:Lisp -*-
(in-package :lem)
;; Key Bindings
(define-command split-3-window-horizontally () ()
(let ((w-width (window-width)))
(split-active-window-horizontally)
(shrink-window-horizontally (- (window-width) (floor (/ w-width 3))))
(other-window)
@masatoi
masatoi / lispmeetup65.org
Created June 25, 2018 09:56
((最近知った(ものを含む))SLIMEの便利機能)

((最近知った(ものを含む))SLIMEの便利機能)

SLIMEとは

#!/bin/sh
#|-*- mode:lisp -*-|#
#|
exec ros -Q -- $0 "$@"
|#
(progn ;;init forms
(ros:ensure-asdf)
#+quicklisp (ql:quickload '(:dexador :plump :clss :anaphora) :silent t))
(defpackage :ros.script.connpass-participation.3736231159
;;; -*- coding:utf-8; mode:hy -*-
(import [tensorflow :as tf]
[tensorflow.contrib.learn.python.learn.datasets.mnist [read-data-sets]]
[time [time]])
(defmacro timeit [&rest body]
(setv start (gensym)
end (gensym))
`(do (setv ~start (time))
@masatoi
masatoi / file0.txt
Last active April 19, 2019 09:05
Common Lispでゼロから作るディープラーニング (2)誤差逆伝搬法での学習 ref: https://qiita.com/masatoi0/items/4c21130d276136f57b57
(ql:quickload '(:mgl-mat ; 行列演算ライブラリ
:metabang-bind ; 分配束縛などのための構文ライブラリ
:cl-libsvm-format)) ; libsvm形式データのリーダ
(defpackage cl-zerodl
(:use :cl :mgl-mat :metabang.bind)
(:nicknames :zerodl))
(in-package :zerodl)