そむたむログ

勉強記録や日々の気づきをログに残していきます

CNN10から日本に関するニュースがあった日を抽出する

私はCNN10をCNN Student Newsの時代から気が向いたときにPodcastで視聴しています。

CNN10とは

CNN10はアメリカのニュース番組です。

CNNスチューデントニュース(シイエヌエヌスチューデントニュース、CNN Student News)は、アメリカ合衆国のニュース専門チャンネル「CNN」で制作、CNN系列のニュース専門チャンネル「HLN」で放送されている報道教養番組である。2017年1月6日から番組名がCNN10(シイエヌエヌステン)に変更された。 CNNで放送されるニュースを題材に、主に高校生の授業の補助教材として活用されることを目的とした番組である。最新の世界の時事情勢について、その基本的な知識やニュースの背景をクイズも交えながら解説するものである。
日本ではNHK BS1で平日(月-金深夜=火-土未明)3:30 - 3:40、再放送は翌日(金曜深夜分は次週月曜)15:10 - 15:20[1]に日本語訳して放送されている。「CNN10」に番組名変更後も番組名は「CNNスチューデントニュース」のままである。
なお、6月上旬から8月上旬はアメリカ合衆国の学校が夏休み(アメリカの場合9月が新年度、8月が年度末であるが、学校の授業自体は6月初めが学期末)であるため、この期間は休止となり、この期間は別のミニ番組か、ワールドニュースに充てる。

私がCNN10を見ていてテンションが上がるとき

それは日本のニュースが登場したとき!
日本でも報じられているような政治のニュースだけでなく、日本のゲームセンターに高齢者が多い話ですとか日本人がおもしろいギネス記録を打ち立てた話ですとか自分が日本の報道で目にしなかったようなニュースも登場してくるので楽しく見ています。

とはいえ、アメリカのニュースなので日本のニュースが取り上げられるのは体感月に1、2回程度です。そこで効率よく日本のニュースが網羅的に探せるようなツールがほしくて今回コードを書きました!

今回やったこと

CNNではTranscriptというニュースの文字おこしを毎日置いています。ですのでそのページを開いてJapanやJapaneseといった単語があれば日本のニュースがある日として拾ってくれるツールを作りました
スクレイピングにはBeautifulSoupを使っています。

TRANSCRIPTのリンクに一覧ページでは日付の新しい順にその日のニュースの文字起こしページへのリンクがあります。
CNN.com - Transcripts
f:id:somtamchan:20171111081150p:plain

上のリンクから順番にhtmlを取得し、半角スペースで区切った単語をリストに格納した上でリストに最初に設定したword_listに格納した単語と一致する単語が含まれていれば該当するhtmlへリンクするURLを表示します。
ツッコミどころなどあるかもしれませんがそこは指摘してくださると幸いです。

import urllib.request
from bs4 import BeautifulSoup

# 検索したい単語をリストに格納
word_list = ['Japan', 'Japanese']

cnn10_url = 'http://edition.cnn.com/TRANSCRIPTS/sn.html'
html_link = urllib.request.urlopen(cnn10_url)
soup_link = BeautifulSoup(html_link, "lxml")
div_link = soup_link.find_all('div', class_="cnnSectBulletItems")

for i in div_link:
    a = (i.find('a'))
    path_a = a['href']
    path = "http://edition.cnn.com"
    url = path + path_a
    html = urllib.request.urlopen(url)
    soup = BeautifulSoup(html, "lxml")
    s = str(soup)
    body = s.split(' ') 
    word_bool = False
    for test_word in word_list:
        if test_word in body:
            word_bool = True
    if word_bool == True:
        print(url)
これからやりたいこと

現状で日本のニュースが含まれる日のリンクは取得できるようになり最低限の成果は得られたのですが、見えているだけで問題が2つあります。

  • 探索する日付の範囲を指定できない

TRANSCRIPTページに含まれるすべての日のリンクをループで回してしまっているため、すべて回し切るのに時間がかかっています。
また、特定の期間のみで探索することもできません。

  • 記号を排除できていない

htmlから単語をリストに入れる際に半角スペースで区切っているだけなので記号が単語についたままになっています。
例)Japan, などカンマなどが単語についていることがある
すべてのパターンを考えて最初の探索する単語のリストに入れないと必要な情報を取りこぼしてしまいます。

できる人なら瞬殺なんだと思いますが、おいおい考えて見たいと思います。

TOEIC685点から850点まで上昇した勉強法

1年ぶりくらいにTOEIC受けようかと考えているので前回勉強したときの勉強法をおさらいがてらまとめておきます。
 

f:id:somtamchan:20171106223957j:plain

最初に言っておくと、この勉強法はとても地味です。

ただ自分でもびっくりするほど点が上がったので記録として残しておきます。
 
勉強した期間は3ヶ月ほどです。
ちなみに団体受験だったため旧試験でした。
 
基本的には公式問題集を使っています。 
TOEICテスト新公式問題集〈Vol.3〉

TOEICテスト新公式問題集〈Vol.3〉

 

 

Part別の勉強法を紹介します。

 
Part1,2
Part3,4ができれば問題ないと判断し、ほぼ勉強せず
 
Part3,4
音源を2回聞く
正解をスマホの写真で撮っておき通勤時間中にやってました。
 
聞きづらい表現or即座に意味が理解できない部分にアンダーラインを引く
スムーズに発音できない部分にアンダーラインを引く
アンダーラインを引いた箇所を意識しながらシャドーイングを100回音読を繰り返す
 
Part5
この本で勉強しました。
ただ1000問は解ききれず、ランダムの問題を200問程度解きました。

 

TOEIC L&Rテスト 文法問題 でる1000問

TOEIC L&Rテスト 文法問題 でる1000問

 

 

文法はいつも苦手で正答率が5割ほどだったのですが所要時間をほぼ変えずに正答率を8割ほどまであげることができました。
 
Part6
Part5ができればあるていど正解できるとみこんでほぼ勉強せず
 

Part7

本文と答えをスマホの写真で撮っておき、通勤時間中に英文を読む→スクリプトと和訳を読むというのを繰り返してました。
 
英単語
Part7にでてきた英単語のうち知らない単語のみをノートに写して勉強の最初に眺めてました。
ノートを3分の1の部分で折って、折って隠れる部分に和訳を書いてクイズ形式で確認していました。 
超直前期の勉強
試験2日前
残しておいた公式問題集の2回目の問題を試験時間通りに解いて、時間配分の確認を行いました。
 
試験前日
2回目の分のPart3,4について聞き取りづらかった問題10問程度について、100回シャドーイングをやりました。
 
次回受験に向けて
本音を言えば、海外ドラマを見たり、海外の技術記事を見たりと生の英語に触れている方が楽しいので、会社で評価されるくらいの点数を取っておいてTOEICの勉強はやめようかと思っています。
 
会社では900点を超えるとグローバル人材()の評価がつくのでそれくらいを目指したいかなと思っています。
伸び代があるのはReadingの方だと思っているので、今回は公式問題集以外の問題集にも取り組んで英文を読むスピードと正確性をあげたいなと考えています。
 

追記

2020年2月に925点を獲得しました! 

somtam.hatenablog.jp

 

 

データベーススペシャリスト合格体験記

試験から半年以上経っていますがデータベーススペシャリストの合格体験記をまとめておきます。
f:id:somtamchan:20171106221343j:plain

得点はもう開示期間が終わっていたため記憶の中の感想を書いていますが、午後試験の得点はだいたい合っていると思います。
見ての通りギリギリでした。
午前Ⅱ 80点くらい
午後Ⅰ 71点
午後Ⅱ 61点
ですのでギリギリ合格した人はこんなもんかという姿勢でみていただけると幸いです。

使用した参考書はこの本の2017年度版です。

情報処理教科書 データベーススペシャリスト 2018年版

情報処理教科書 データベーススペシャリスト 2018年版

他の参考書との比較はしていませんが、過去問が解説付きで15年分ダウンロード可能という点が素晴らしいと思いますし、各項目の説明の部分の十分かと思います!

私のDB使用経験

PostgreSQLに多少触ったことがある程度
テーブル設計や性能チューニングなどの経験はなし
SQLも書いたことはあるがググりながら書く程度であまり得意ではない
(抽象的でごめんなさい)

合格までの道のり

昨年の春に応用情報技術者を取得していたため午前Ⅰは免除でした。

2017年1月 勉強をスタート

参考書の全ページをざっと2回ほど読んで試験範囲と必要な知識を確認しました。
応用情報技術者のDBの部分をなんとなく雰囲気で乗り切ってしまったので正規化とかもいまいちわからないことを実感
この時点では合格との距離の遠さに絶望
範囲を把握するには良かったですが、問題を解かないと内容を理解するところまではいけませんでした。

2017年2月

午前Ⅱについて、過去問を解く→解説を見る→選択肢について参考書で確認を繰り返しました。
最初はわからない問題だらけで辛かったですが、似た問題が使い回されることもあり3年分くらい解いたところで合格ラインの6割は超えるくらいの正解がだせるようになりました。

2017年3月〜試験まで

仕事が忙しくなったこともあり、半月ほど全く手をつけられず・・
試験1ヶ月前から本格的に午後試験対策をしました。

そこで大胆に勉強する範囲を絞ることにしました。

午後Ⅰについては過去問を3年分ほど解きました。
午後Ⅱ対策をやっていれば午後Ⅰも問題ないかと思い、特に試験時間とかは意識せず、一問一問解いて→答えを見るというサイクルでやっていました。
後述しますが本番を意識しなかったことで当日痛い目を見ました‥

午後Ⅱについては対策の時間があまりとれなかったこともあり筆者を信じて
筆者が出る確率の高いといっている部分のみやりました。
解いてみる→解説をよんで解答の根拠を青字で大きく書くを繰り返しました。
最初のうちは画面を見ながら頑張っていましたが、問題に書き込めないことが辛すぎてコンビニで印刷しました。

午前Ⅱは大問2問のうち1問選ぶ形式でほとんどの年で論理データベース設計の問題が出ています。
そこで物理データベース設計の問題の対策は諦め、筆者の選んだオーソドックスな問題のみ3年分程度を解き、他の年の問題は解説のみ眺めていました。

当日

午前Ⅱについては6割くらいは自信を持って答えられたので、安心して終えました。(ギリギリですが苦笑)
問題は午後Ⅰでした。対策中は特に時間を意識していませんでしたが、だいたい試験時間の半分くらいの時間で解けていたので問題ないと考えていました。
しかし、当日問1を解き終え、時間はすでに半分以上経っておりかなり焦りました。その中でもう1問を問2に決めて解き始めたところ焦りからか問題文を読み飛ばしてしまったのかどうしても問題が頭に入ってこなくなってしまいました。
二進も三進もいかなくなってしまい急遽問題を変更し解き始めましたが3分の2程度しか答えを埋めることができませんでした。
時間をかけてしまった問1も大して自信がなかったので、もうダメかと思い正直帰ろうかと思っていました。
しかしせっかく午後Ⅱの勉強をしていたのにもったいないかなと思い、「お絵かきするか」くらいのテンションで臨みました。

いざ結果が返ってくると午後Ⅰが7割程度取れていたので、採点もよく分からないなという感じでした。
合格していたから良かったものの、不合格だったら午後Ⅱの試験に臨む姿勢を後悔しただろうなと思います。

合格後の感想

どの資格区分でも同じだとは思いますが、資格をとっただけで何かができるようになるわけではないなぁという感想です。
本当に身につけるためには机上で勉強するだけでなく手を動かして、問題が発生して、解決するっていうサイクルが必要なんだなぁと思う今日この頃

翔泳社主催の「ITエンジニア本大賞 2017」選出の技術書を読む

 もう2017年も残り2ヶ月ですが、今年の2月に大人買いした「ITエンジニア本大賞 2017」の選出技術書9冊を順に読んでいきます。

(ルビィのぼうけん以外の9冊です。)

「ITエンジニア本大賞 2017」とは翔泳社主催のITエンジニアに読んでほしい技術書・ビジネス書を選ぶイベントで翔泳社以外の本も対象です。

ITエンジニア本大賞は、ITエンジニアにおすすめの技術書・ビジネス書を選ぶイベント。ITエンジニアによるWeb投票で各ベスト10を選出し、大賞は、Web投票で特に票の多かった6冊(技術書・ビジネス書各3冊)の書籍の著者、編集者、翻訳者などによるプレゼン大会の最終投票で決定する。

なぜか自分は一番モチベーションが高いのが2月なので、まずは誰もが勧める本を読んでおけば間違いない!ということで買ったものの全てつまみ食い状態で見事に積読となっていました。

細かく見れば分野はバラバラですが、仕事とは直接関係なく幅広く読みたかったので、こういう企画で票を集めた本を買うのは思わぬ出会いに繋がりいいかなと思います、が、なんせ仕事と直接関係ないので読むのにパワーが必要でした・・

 

年内に一体何冊読めるかな・・?

 

この9冊です!(順不同)

『達人プログラマー』から読んでいきます!

新装版 達人プログラマー 職人から名匠への道

新装版 達人プログラマー 職人から名匠への道

 

 

リーダブルコード ―より良いコードを書くためのシンプルで実践的なテクニック (Theory in practice)

リーダブルコード ―より良いコードを書くためのシンプルで実践的なテクニック (Theory in practice)

 

 

Python機械学習プログラミング 達人データサイエンティストによる理論と実践 (impress top gear)

Python機械学習プログラミング 達人データサイエンティストによる理論と実践 (impress top gear)

 

 

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

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

 

 技術書大賞はこの本です↓

ゼロから作るDeep Learning ―Pythonで学ぶディープラーニングの理論と実装

ゼロから作るDeep Learning ―Pythonで学ぶディープラーニングの理論と実装

 

 

SOFT SKILLS ソフトウェア開発者の人生マニュアル

SOFT SKILLS ソフトウェア開発者の人生マニュアル

 

 

マスタリングTCP/IP 入門編 第5版

マスタリングTCP/IP 入門編 第5版

 

 

SQLアンチパターン

SQLアンチパターン

 

 

 

『データ分析の力 因果関係に迫る思考法』を読みました

 現在買いためて積んだままの本を消化中です。

まずは「データ分析の力」というワードに惹かれて買ったこの本です。

データ分析の力 因果関係に迫る思考法 (光文社新書)

データ分析の力 因果関係に迫る思考法 (光文社新書)

 

 

因果関係がありそうと言うための条件、因果関係があると判断してはいけない状況が起こる要因が整理されていてわかりやすかったです。

 

「企業や自治体の施策の効果があったと立証する」というシーンを中心にどのようなやり方でデータを収集、または分析すれば良いのかが書かれています。

 具体的に扱われているのはRCT・RDデザイン・集積分析・パネルデータ分析です。

事例中心でさくさく読めて、数式がわからなくても問題ないのでデータ分析の入門書としても良いかもしれませんね。

一方で巻末に数式を用いた解説もあり、筆者の誠実さも感じました。

 

 

PyconJP感想まとめ

2日目のまとめ記事が長くなりすぎてしまったのでPycon全体の感想は別記事にしました。

 

行く前は必要以上に不安がってしまったなーと思ってます笑

もし参加したいけどためらっている方がいたら(いないかもしれませんが)是非参加して見てほしいです。

 

どうしても仕事で使っている分野以外は意識的触れないと知らないまま終わってしまいそうだったので、今回キーワードレベルでも全く知らなかったことを知ることができて良かったです。

 

せっかく行く前に自分の抱いていたイメージを書き残していたので自分のイメージが合っていたか、どれくらいギャップがあったか確かめて見ます。

この記事で書いた内容についてです。

 

somtam.hatenablog.jp

 

  • 講演のジャンルはWebアプリから分析まで幅広い

→その通りですが、長く来ている方は特に近年は機械学習・分析系のトークが増えたとおっしゃっていました。各時間1つは分析系トークがあるイメージでした。

  • 講演を聞きに行く人だけでなく、知り合いと話をしに来ている人も少なくないらしい

→思っていたより初参加、特に知り合いもいないという方が多かったです。

  • 外国人も多い

→思ったよりは多くなかったです。お話する機会もなかったので残念でした

  • 朝の基調講演は直前までが人がまばらだったり、エンジニアは朝が遅い

→まさかの自分が遅刻の危機でした。。。

  • ご飯、おやつが豪華、美味しそう

→パーティーでクラフトビールが飲めたのが幸せでした!

  • 懇親会は知らない人をつかまえて話をするらしい

→Pyconという共通話題があるので以外と困りませんでした。

  • 運営の方の改善がすごい 1日目→2日目できちんと問題改善されている

→元々改善してほしいほどの課題がありませんでした。去年は翻訳機が行き渡ってなかったりしたらしいのでその辺は改善されていました。

 

やっぱり食べることが好きなので、結論美味しいものがあれば大抵幸せです(Python関係ない笑)

 

これまで何かの技術コミュニティに関わったことがないので、これからはどこかに顔を出してみたいなーと考えています。

その時はよろしくおねがします!

 

Pycon行って来ました! 〜Pycon Day2〜

 

PyconJP2日目も無事行ってくることができました。

今日も楽しく過ごせて本当に参加して良かったです!

 

1日目のそむたむまとめはこちら

 

somtam.hatenablog.jp

すでにまとめのまとめがあるようなので詳しくはこちらを! 

 PyconJP Day2 9/9(土)の感想をまとめます。

※今日は1日目よりさらに食べもの多めです

〜朝ごはん

門が閉まっておりオロオロ。。

でも今日はきちんと朝ごはんをGET!豪華で衝撃でした

写真からは実は分かりづらいですが、空腹のあまりサンドイッチを1つつまんだ後です。

f:id:somtamchan:20170909204212j:plain

 

Keynote

株式会社ARIZEanalyticsの堀越さんです。

仕事でも良く使っているpandasのコミッターの方です。

pandasでのOSS活動についてやOSSへの参加方法など具体的なお話で理解しやすかったです。

pandasはコミットのたびにコミット前後でのパフォーマンス比較を行っているんですね。他にもユーザが使いやすく、多くの開発者が参加しやすい仕組みが作られているのを感じることができました。

OSSへの参加については、あまりやってみようと考えたことはなかったのですが、今日のお話で気になるプロジェクトをウォッチするところから始めようというお話があり、気楽に関われる部分(ウォッチですが)から始めてみようかな〜と思いました。

 

pandasのような巨大なプロジェクトを維持するために人的リソースの面でどうしているかという話では、自分でできることであっても比較的簡単な修正はやり方の方向性だけ示して別の開発者に任せるという話がありました。仕事のやり方的な面でも通じるところがあり参考になりました。

 

 トーク

今日も時間みっちりトーク聞きました。

地理データに関する英語のトークも聞いてみましたが、自分の英語力不足を痛感する結果に。。

ただそこで紹介されていた"geopandas","osmnx","folium"は便利そうだったので調べてみたいと思っています。

 

今の仕事と関連するところでいうと「機械学習におけるデータの再現性について」と「Jupyter(Python)とBigQueryによるデータ分析基盤のDevOps」が普段の課題感とも合っていて興味深かったです。

 

機械学習におけるデータの再現性について

クックパッドの研究開発部門の染谷さん

ソフトウェア開発と違って分析分野はチームで働く時の仕組みに関するメソッド、特に休暇時の引き継ぎ時などの方法論があまり確立されていないという問題提起をされていました。

今回の発表は利用するデータの取得方法の再現性にスポットが特に当てられているように感じましたが、最後に発表者の方が課題としてあげていたデータの固定化、データの履歴管理といったこともまさに自分が課題に感じていたことでした。

発表を通じてこれまでもやっと考えていたことだったので言語化されて良かったです。

 

 Jupyter(Python)とBigQueryによるデータ分析基盤のDevOps

 

優秀賞おめでとうございます!

スライド約150枚の超大作でした。

使ってもらえる分析基盤を作るためには今すでにある業務を少しずつ置き換えていくことというのが心に響きました。構築過程を見ていても泥臭い場面が多そうでしたね。

いろんな部署ごとにデータ疎通、加工していたら全体がカオスなことになってしまった話はあるあるすぎて泣きそうでした。。

 

Lunchタイム

今日は帆立ごはんです。今日も美味しかったです!

f:id:somtamchan:20170909204432j:plain

 JOBフェアを見ながら食べていました。

英語を使って仕事をするとはどういうことかについてパネルディスカッションが行われていました。

英語を使うことで敬語を意識しないため風通しが良くなる、日本語の曖昧さを排除できると行った話がされていました。

各国の文化の違いについては会議で"Any question?"の後シーンとなった時にアメリカ人はNoと言っていないのだから当然Yesと考えていて、逆にイギリス人はYesとは言っていないと考えている、という話が興味深かったです。一口に英語圏とは丸められないですね。

 

Break Time

今日はオリジナルパッケージの最中でした!

可愛いのでできれば周りに配れるくらい欲しかったです笑

f:id:somtamchan:20170909205435j:plain

 

LT

1日目の記事では触れませんでしたが、トークのあとはLTタイムです。

みなさん話が上手ですね。

プロジェクトKNJ(彼女)、自分のTweetからLINEBot(彼女)を作ろうという試みが面白かったです。

インプットのデータを変えて試してみたら想像を超える文章を作れそうで楽しそうだなと思いました!

Closing

じゃんけん大会とビンゴ大会もありました!

じゃんけんは一回戦負け。。

ビンゴも最初4隅穴を開けていいという変則ルールでしたがリーチすらせず。。

運を温存したということで良しとします。

f:id:somtamchan:20170909210003j:plain

来年のPyconJP

Pycon2018のカンファレンスはは2018/09/17-18で大田区産業プラザPiOで開催決定だそうです!

f:id:somtamchan:20170909205653j:plain

 

 

スタッフ、発表者の方をはじめ様々な方々のお力で成り立っているカンファレンスなんだといろんな場面で実感しました。

ありがとうございました!