国境大好き芸人

旅行と語学ととプログラミング。陸路で国境を越えるのが生きがいです。

【Python】新聞記事をスクレイピングして見出しを取り出す

python 新聞 スクレイピング

台湾の新聞、蘋果日報のネット版から見出しを取り出す処理を考えてみます。
スクレイピングするのはこのサイトです。

https://tw.entertainment.appledaily.com/daily/

まずはライブラリをインポート。

import requests
from bs4 import BeautifulSoup


上記のサイトで、「ctrl+shift+i」を押してソースを確認。

python 新聞 スクレイピング

どうやら記事の見出しは
class="echn"
と指定されたリストの中にあるようなので、このechnというクラスをまるごと取り出してみます。

#ここで今回取り出したい蘋果日報のURLを入力
url = "https://tw.entertainment.appledaily.com/daily/"
response = requests.get(url)

#クラスを指定してlistに格納する
bs = BeautifulSoup(response.content,"lxml")
list = bs.find_all(attrs={"class": "echn"})


これを実行して、listの中を見ると、こんな感じになります。

python 新聞 スクレイピング

見出しとそのURLのみを取り出したいので、listの中の要素を指定して、findでスライスする範囲を指定してあげればOK。
文字列の処理では、findだけでなく、replaceなんかもよく使いますね。

python 新聞 スクレイピング


↑のソースをキャプチャじゃなくて直接ここに書きたいんだけど、
ソースの中にh1タグ入れるとそれが反映されてソースがうまく表示されない・・・

機械学習やるためにPython始めました【プログラミング】

業務効率化のために手を出したプログラミングですが機械学習楽しいですね



こんばんは!ktymです。
仕事で大量の数十万行のCSVファイルを扱うことがあって、ExcelAccessで処理しきれない!どうしよう!という課題解決のために始めたプログラミングですが、
1ヶ月ぐらい前から機械学習の勉強を始めています。

Excel作業をRで効率化した話は以下:
R言語を勉強したらExcelでの集計作業がめちゃくちゃ速くなった

で、機械学習関連の本を読みはじめて、最初はRでやろうと思ったのですが、
とある勉強会で講師をしていた方に、

機械学習やるならRよりもPythonの方が断然いい!」

と勧められたので、Pythonを始めました。
たしかに、機械学習の本をみてもPythonで書かれている場合が多いですね(特に最近の本は)。
時系列分析とか統計の本はRの方が多いような気もしますが、まあなんなら両方できればいいし、とりあえずPythonで(機械学習含め)いろいろやってみようと思って、勉強を始めました。

最初に読んだのは「退屈なことはPythonにやらせよう」だったのですが、読みにくかったです・・・



まあ、こんなことできるんだ~!とパラパラめくるにはいいと思いますが、
私の(個人的な)ニーズとしては、

・まずはExcelの業務をPythonでできるようにする
機械学習の勉強をする

ことだったので、pandasとかNumPyの書き方から入ったほうがよかったかもしれないですね。
pandasはひたすらググって使い方を勉強しました。
R言語のdplyrと同じ要領ですね。Rの方を先に勉強していたのですぐに飲み込めました。

【R言語】dplyrを使えばExcelの集計作業を代替できてしかも速い!

あと、かなり前にこんな本も読みました。「いちばんやさしいPythonの教本」



この本は本当にやさしいのでプログラミング初心者におすすめですね。
なんだか散らかってしまいましたが・・・

結局RとPythonを行ったり来たりしています。

機械学習と時系列分析を勉強しています



で、ここからが本題?なのですが、RとかPython使って業務効率化ができたので、
機械学習とか統計とかを使ってもっと良い分析ができるようになりたい!というモチベーションのもと、色々とやってみています。

機械学習は、元々はクラスタリングに興味があって始めました。
仕事で扱う商材とか、顧客の分類とかができたらなあと思ったんですよね。

そこで始めたのが、「Rによる機械学習」です。



機械学習の全体感を把握するのには良い気がしています。
例題をRに書いていくと理解が深まりますね。
自分で例を見つけてきて分析するとさらに理解が増しそうです。

これで全体を俯瞰しつつ、「ゼロから作るDeep Learning」を読み始めました。
数学的に難しいところもあるのですが(誤差逆伝播法とか)、厳密さよりも速さ重視で読んでいこうかと思います。
もちろん数学的な厳密さを重視したいところではあるのですが・・・
目的は数学をやることではなく、仕事の課題を解決することなので、速さ重視です。

あと、何回も読んでいるうちに(コードを書いているうちに)、数学的な意味がわかってくるということもあると思うので(数学書を写経するうちにだんだんわかってくる的な)、
そういう意味でも速読・速習で、まずは本の全体を俯瞰しようと思っています。



2月中には読み終わりたいな~

また、仕事では時系列データを扱うことも多いので(ほぼすべてのマーケターがそうでしょうが)、
「現場ですぐ使える時系列データ分析」という本を読みました。



自己回帰モデルについて平易に書かれています。
いや~これはすごいわかりやすかった!ある程度確率の知識はあったほうがいいとは思いますが、
数学的なバックグラウンドがなくても、読みやすいんじゃないかなと思います。

「現場ですぐ使える時系列データ分析」は一通り読めたので、次読むなら「Rによる時系列分析入門」ですかね。



そんな感じで、機械学習やら、時系列分析やら、ゆるゆる勉強していますが、
そろそろ本腰入れてガッツリ勉強して、勉強会とかにも積極的に出ていこうかなと思ってます!

あ、よかったらTwitterフォローしてください!
https://twitter.com/ktym_stdf

五月天(Mayday)の武道館ライブのチケット当たりました

5fd1b0c6d652153d319190bc842fb965

MAYDAY LiFE MAYDAY 2018 LIFE TOUR in TOKYO



五月天Mayday)の武道館ライブが5月19日(土)と20日(日)あるとのことで、
チケットの抽選に申込んだところ、見事!土曜日のチケットが取れました!

公式サイト:MAYDAY LiFE MAYDAY 2018 LIFE TOUR in TOKYO



五月天は台湾の方なら誰もが知っている国民的スターですよね。
アジア圏で最も人気なバンドのひとつらしいです。

私はファン歴4,5年で、元々は歌詞がわかりやすかったので中国語の勉強になるな~と思って聴いていたのですが、結果ハマってしまいましたw
2017年2月の武道館ライブに初めて行ったんですが、もう感動しちゃいましたね!

最近では昨年3月に大安森林公園で行われた20周年記念ライブをエンドレスで聴いてます。

2017.3.29 Mayday五月天20週年 [ 回到 1997.3.29 ] LIVE @7號公園第一天 演唱會



これを観るともう大安森林公園に行くだけで感動できちゃいますね。

大安森林公園は台北中心部にあるでっかい公園で、バスケコートやコンサートステージなんかがあるます。
旅行中にフラッと立ち寄って、公園で遊んでいる台湾の子どもたちを遠くから見るのが癒やしなんですよ・・・

永康街通化夜市などの観光地から近いので(もちろん師大附中はすぐそば!)、暇な時に行ってみることをおすすめします!





#大安森林公園 #forestpark #taipei #bpintaiwan

Irene Panさん(@irene03556)がシェアした投稿 -



大安森林公園台北ナビ)

HostelworldのHoscar2018で台湾No.1に輝いたのはStar Hostel Taipei!

56406e980be0e3a883b13ba165a0097b

ホステル予約サイトのHostelworldがHoscar2018を発表!



こんにちは。ktymです。
オンライン宿泊予約サイトであるHostelworld.comが、Hoscar2018を発表しました。
ホステルという宿泊の分野では世界で最も権威のあるアワードです。
(と、いっても4,5年前と比べるとHostelworldの存在感はかなり薄れた感じがしますが・・・)

このHoscar2018でBest Large Hostelsと台湾No.1をダブル受賞したのが、Star Hostel Taipeiなんです!快挙ですね。

Star Hostel Taipei(公式サイト)
Star Hostel Taipeifacebook

私も昔(3年前ぐらい?)に泊まったことがありますが、本当にいいホステルでした。
駅から近くて、共用のリビングがめっちゃ広くて、日当たりも良くて、清潔で・・・
しかも最安のドミトリーだと640元で泊まれちゃうんですよね。
一人旅には最適です。
ツイン、ダブル、4人個室も充実しているようで、1人1,000元しないぐらいで泊まれるようです。

文句のつけようがないですね・・・
まあ1個あるとすれば、私の泊まった客室は窓がなかったのですが、台湾のホステルではよくあることなので、まあよしとしますw

sawf

台湾の宿事情についてちょっと書いてみる



今回のHoscarを受賞したStar Hostel Taipeiですが、台湾のホステルのなかでは老舗の部類に入ります。といっても、営業開始してから5,6年程度だと思うので、まだまだ新しいですが、これでもホステルの中では老舗なんですよね。

老舗ながらHostelworldでの評価が9.8なので相当サービスがいいことがわかります。この数字は驚異的です。ほぼ満点のレビューを書かれないと達成できません。またレビュー数が1,600件もあるので、それも信頼の証になりますね。

Star Hostel Taipeiは200人以上収容できる大型ホステルなため、これだけレビューは稼げるんでしょうね。200人収容という数字は、ホステルの規模としてはかなりでかいです。(現にBest Large Hostelsを受賞していますし。)
ホテルなら1,000人規模なんていくらでもあると思うのですが、ホステルで200人収容こえるところは日本でも数えるほどですし、台湾でもあまり多くありません。(日本よりは多い気がしますが)

台湾にはここ数年たくさんホステルができてきていますが、200人規模はなかなかないです。
あくまで自分が泊まり歩いたベースですが、小さめの箱(50~100人収容)でしかも営業許可が取れていないところも多いのが実情です。(台湾で旅館業の営業許可をとるのは日本よりも難しいらしい)

5,6年前といえば台湾のホステル黎明期に当たると思うのですが、これだけの規模のホステルを作った創業者には先見の明があったとみえますね。設備もしっかりしているし、もちろん営業許可も持っているので、相当初期投資が必要だったのではないかと思います。(Star Hostelのスタッフに聞いたところオーナーは資産家らしいですが)

同時期にオープンしたMeander TaipeiもBest Large Hostels 6位入賞となっていますが、こちらも200人超えの大箱です。ここは夫婦でオーナーをされているそうですが、かなり儲かっていると見えて、2人でよく旅行に行っているとMeanderのスタッフが言っていました。

ここもいいホステルなんですよ~

awoeigho

ホステルも他のビジネスと同じで先に始めた人が勝つってことですかね。
ここ数年でオープンしたホステルはいっぱいありますが、けっこう似たり寄ったりな感じもするので、生き残るのはなかなか難しそうです。

Hostelworldについて



生き残るのが難といえば、OTAの世界はもっと激しくて、Hostelworldは4,5年前よりはだいぶ下火な感じがします。
数年前はバックパッカーな人たちは結構使っていたようなのですが、最近自分の周りで使っている人いないですね。

また、Booking.comやExpediaは頻繁にABテストをやっていて、UIもよく変更されるのですが、Hostelworldは数年前にロゴとイメージカラーを青からオレンジに変更して以来UI変更とかは特に行っていないようですね。
お金がないんでしょうかね・・・

Booking.comやExpediaには敵うわけもないのですが、
個人的には好きなサービスだったので、ニッチな市場でなんとか生き残って欲しいです。

さいごに



いろいろ書きましたが、Star Hostel Taipeiは本当にオススメできるホステルなので是非泊まってみてほしいですね!
Hoscar受賞おめでとうございました!

Star Hostel Taipei(公式サイト)
Star Hostel Taipeifacebook
Hoscar

HSK5級に合格するまでにやった中国語勉強法をなるべく詳しく書いていく

移転しました。

【機械学習】ゼロから勉強を始めるので読んでる本3冊を紹介する

機械学習の勉強をゼロから始めようと思います



そもそも機械学習がやりたくてR言語を始めました。
勉強の進捗としては、ようやくR言語に慣れてきたかなって感じです。

そもそもプログラミング初心者なので、プログラミング言語に慣れるというのがかなりハードル高かったですが、
勤務先の会社での業務効率化とかやっているうちに、なんとなく慣れてきました。
R言語を始めて1ヶ月ぐらいですが、Excelの代替手段としては十分使いこなせていると思います。

で、そろそろ機械学習を本格的に勉強しようかってことで、次の本を買いました。


Rによる機械学習 (Programmer's SELECTION)

この本しか読んだことないのであれですが、めっちゃいいです。
何がいいかって、スラスラ読めることです。
もちろん読みやすい分、厳密性が損なわれているとは思うのですが、初心者にはまず全体を俯瞰することが大事だと思いますし、
そういう意味では、機械学習の様々な手法についてスラスラ読めて、
本を読みながらRでコードを書いていける、という本は非常に役立っているように思います。

R言語を使わない人でも、機械学習の概要をつかむためだけに読んでもいいかもしれません。
それぐらい平易です。

この本を読み終わったら、次は「はじめてのパターン認識」を読もうと思っています。


はじめてのパターン認識

この本が、機械学習をやる上では基礎になるようですね。
「はじめてのパターン認識」をきちんと理解していればプロとしても通用するそうです。(と、とある勉強会で先生が言っていました。)

けっこう読み応えがありそうな本で、大学1,2年の数学(微積分と線形代数)をわかっていないと読めないだろうなと思います。(本をパラパラめくってみた感想)

とはいえ数学書よりは平易に書かれているというか、あくまで実用書(のなかでは理論に近い)だと思います。
あまり数学的な厳密性を求めずに読んだほうがいいのかなと思いますね。

目標としては、1ヶ月で全ページに目を通して、そこから面白そうなところピックアップして写経とかしつつ読んでいこうかなと。
半年で「きちんと理解している」レベルまで行けたら最高だな・・・って感じですかね。
この本が土台になるので、じっくり読もうとは思います。

理論をやりつつ実践もしないと身につかないため、プログラミングも同時で習得する必要があります。

R言語でやろうかと思っていたのですが、やはり主流はPythonだそうで・・・
というわけでPythonに乗り換えます。


退屈なことはPythonにやらせよう ―ノンプログラマーにもできる自動化処理プログラミング

Pythonの練習用にこの本を買いましたが、読みにくいですね・・・
どうやってPythonを習得していくかは、これからの課題です。

【R言語】現在のディレクトリを変更する方法(RStudio)

移転しました。

【R言語】フォルダ内のすべてのCSVファイルを一括で取り込み結合する方法

移転しました。

【R言語】dplyrを使えばExcelの集計作業を代替できてしかも速い!

移転しました。

【R言語】CSVの処理でよく使う関数まとめ

R言語CSVを読み込んでいろいろ処理する時によく使う関数のまとめ



CSVファイルを読み込んで集計したり、他のテーブルと組み合わせたり、LEFT JOINしたりなど・・・
まとめます!

文字列の処理


・数値になおす
x <- "12345"

このように、xというオブジェクトに文字列として数値が入っていた場合、以下で数値に変換できる。
x <- as.numeric(x) #xを数値に変換

さらに、カンマを取り除いて数値に変換したい場合は以下のようにする。(ついでに小数点以下を四捨五入する)
x <-"123,456,789.0000"
x <- round(as.numeric(gsub(",", "", x)), digits = 0)


・文字列の中から最初に出現する数値を取り出す
x <- "abcde12345"
上のように、文字列と数値が混じった文字列の場合、最初に出現する数値をparse_number()で取得できる。

library("readr")
x <- parse_number(x) #最初に出てくる数値を取り出す
x #xを出力
[1] 12345


※ただしパッケージ「readr」をインストールしておく必要がある。
install.packages("readr")

欠損値(NA)を0に変換する方法


read.csvで取り込んだものをdfに格納しよう。
その際、欠損値を一発で0に変換するのが次のやり方。

df <- read.csv("data.csv", header=TRUE)
df[is.na(df)] <- 0


もちろん、次のようにすれば"NA"と表示させることもできる。
df[is.na(df)] <- "NA"

特定の列に対して欠損値の処理をしたい場合は、$列名で指定できる。
df$x[is.na(df$x)] <- 0

今後もよく使う処理を書き足していきます!