流れに従ひて己を失はず.

日々の研究について書きます

深夜の馬鹿力で出題された問題を解く

TBSラジオの超人気番組,月曜JUNK伊集院光深夜の馬鹿力の「少しおもしろい」のコーナーで気になる投稿があった.

【問題】
都道府県の最初の漢字だけで表すことのできる(多分)唯一の芸能人は長島三奈
(月曜JUNK伊集院光深夜の馬鹿力 20181224深夜放送分より)


www.tbsradio.jp



伊集院さんも他にないのかなー??と唸っていた.
芸能人のお名前を片っ端から調べてみる.
芸能人のリストとしてgooのタレント一覧のページ(https://news.goo.ne.jp/entertainment/talent)を使う.

news.goo.ne.jp



残念ながらこちらには,放送内で先に正解例として挙がっている長島三奈さんは含まれていない.他に良さそうな情報源が発見できなかったのでこちらを使用.

目視で調べるのもあれなのでスクレイピングして芸能人の名前リストを取ってくる.
スクレイピングについての参考と注意点は以下.

https://qiita.com/Azunyan1111/items/9b3d16428d2bcc7c9406
https://docs.pyq.jp/column/crawler.html



gooのタレント一覧のページのソースをみると,<p class="list-title-news margin-bottom5">のあとにタレント名が記載されているようなので,
この要素だけ見るようにする.

【https://news.goo.ne.jp/entertainment/talent/j-a/ より】
(中略)
<ul class="gn-thumbs-list thumbs-list-large">
<li><a href="/entertainment/talent/W17-0923.html">
<div class="gn-news-item news-list-item">
<div class="news-item-thumbs"><img src="https://img.news.goo.ne.jp/talent/MW-W17-0923.jpg" alt="" class="thumbs-xx-small"></div>
</div>
<div class="image-news-block">
<p class="list-title-news margin-bottom5">あぁ〜しらき</p>
<p class="list-news-source">アァ〜シラキ</p>
</div>
</a></li>
<li><a href="/entertainment/talent/M10-0879.html">
<div class="gn-news-item news-list-item">
<div class="news-item-thumbs"><img src="https://img.news.goo.ne.jp/talent/MM-M10-0879.jpg" alt="" class="thumbs-xx-small"></div>
</div>
<div class="image-news-block">
<p class="list-title-news margin-bottom5">Asu</p>
<p class="list-news-source">アアス</p>
</div>
(以下略)


https://news.goo.ne.jp/entertainment/talent/j-以下がa-1,a-2,a-3...となっていくので総当たりで調べていく.
ページのソースが回収できたら,先程の<p class="list-title-news margin-bottom5">のあとに続く文字列が,都道府県の最初の漢字だけかを判定.

【name.py】
import urllib.request
from bs4 import BeautifulSoup
import time

#都道府県名最初の一文字と全角スペースのリスト
list_todohuken=[" ","北","青","岩","秋","宮","山","福","茨","栃","群","埼","東","長"
               ,"千","神","静","新","富","石","岐","愛","滋","三","京","奈","和","大","兵","鳥"
               ,"島","岡","広","香","徳","高","佐","熊","鹿","沖"]

#与えられた人名が,すべて都道府県名最初の一文字かを検証する関数
def check_name_todohuken(name):
    for c in name:
        if c in list_todohuken:
            continue
        else:
            return

    #与えられた人名が,すべて都道府県名最初の一文字なら出力
    print(name)

def check_list_url(url):
    # html取得
    html = urllib.request.urlopen(url)

    # htmlをBeautifulSoupで扱う
    soup = BeautifulSoup(html, "html.parser")

    # p要素全てを摘出する
    p = soup.find_all("p")

    # class=""list-title-news margin-bottom5"となっているところを探す
    for tag in p:
        try:
            string_ = tag.get("class").pop(0)

            if string_ in "list-title-news margin-bottom5":
                check_name_todohuken(tag.string)
        except:
            pass

shiin = ["","k","s","t","n","h","m","r"]
boin = ["a","i","u","e","o"]
other = ["ya","yu","yo","wa"]
num = ["1","2","3","4","5"]

#子音と母音のセットで各ページをチェック
for s in shiin:
    for b in boin:
        for n in num:
            check_list_url("https://news.goo.ne.jp/entertainment/talent/j-"+s+b+"-"+n+"/")
            #サーバアクセスの間隔を1秒以上空ける
            time.sleep(1)
            
#「や」「ゆ」「よ」「わ」は個別にチェック
for o in other:
        for n in num:
            check_list_url("https://news.goo.ne.jp/entertainment/talent/j-"+o+"-"+n+"/")
            #サーバアクセスの間隔を1秒以上空ける
            time.sleep(1)

【結果】
秋山 静香
東 千秋
大山 秋

神山 大和

島 和三
千石 愛
千秋
新奈
新山 大
東 大
大和
大和
和香
和香奈

結構いらっしゃいました.
あまりタレントさんには明るくないので知らない人ばかり.
ああ!確かに!となるのは千秋さん.
データセットを変えれば他にも見つかると思われる.

WaybackMachine

WaybackMachine(https://archive.org/web/)というWebアーカイビングサービス.
Web上のあらゆるサイトのデータを残しておいてくれている.

例えば昔書いていたブログ(http://blog.masahikoyasui.jp/)はOCNのブログサービス閉鎖に伴って現在は見れないけれど,
ここだと残っている.
web.archive.org


もともとは小学校のころ(2000年)の情報の時間に作ったクラスのホームページを探していたが,
そちらはアクセス数が少なかったからか一部しか残っておらず,目的のページは発見できなかった.
友達の書いた記事はかろうじて残っていた.
(30年くらい時代のズレた20世紀少年にありそうなネタ).

ポケモンだいすきクラブとか休み時間にコンピュータ室でみてたなぁ.
web.archive.org

plt.xlim()が効かないときのメモ

matplotlibで軸の範囲を指定しているのにうまく描画できないときのメモ.

t = np.linspace(0,2*np.pi,100)
x = 2.0*np.cos(t)
y = 2.0*np.sin(t) 
plt.figure()
plt.axis('equal')
plt.plot(x, y)
plt.xlabel("x")
plt.ylabel("y")
plt.xlim([-5,5])
plt.ylim([-5,5])
plt.show()

f:id:Yasutchi:20190219215524p:plain

上のコードでは以下のようにx軸y軸ともに[-5,5]の範囲で指定しているにもかかわらずy軸の範囲がおかしい.

plt.xlim([-5,5])
plt.ylim([-5,5])

これはx軸y軸の比率を均等にするために指定していた

plt.axis('equal')

が良くなかったらしく,

plt.gca().set_aspect('equal', adjustable='box')

に変更したらちゃんと動いた.

t = np.linspace(0,2*np.pi,100)
x = 2.0*np.cos(t)
y = 2.0*np.sin(t) 
plt.figure()
plt.gca().set_aspect('equal', adjustable='box')
plt.plot(x, y)
plt.xlabel("x")
plt.ylabel("y")
plt.xlim([-5,5])
plt.ylim([-5,5])
plt.show()

f:id:Yasutchi:20190219220125p:plain

参考URL:
https://github.com/matplotlib/matplotlib/issues/8093
https://stackoverflow.com/questions/17990845/how-to-equalize-the-scales-of-x-axis-and-y-axis-in-python-matplotlib

2018年論文投稿

昨年投稿した論文の,提出から採録までの経緯をメモ.
投稿内容は博士課程在学中の研究.
 
Optics Express 
・20180325 submit
 
・20180412 rejected
査読結果通知.リジェクト.
物体計測についての内容で投稿したが,このシステムで実装できている計測点の数はまだ少なく,
計測と言うには点数が少なすぎることから,評価してもらえなかった.
 
この結果を受け,物体検出にテーマを変更.
実験を追加,タイトル及び文章を修正.
この内容によりマッチする同学会の別の論文誌(Applied Optics)に投稿することに.
 
Applied Optics (特集号: DIGITAL HOLOGRAPHY AND 3-D IMAGING 2018)
・20180915 submit
 
・20181025 revision in 21days
査読結果通知.条件付き採録
レビュアからのコメントはとても建設的な内容.
おそらく先にOptics Express へ投稿していたこともあり,査読結果に厳しいものはなかった.
 
・20181113 complete
査読結果を受けての修正版を提出.
OverleafなるオンラインTexコンパイルシステムを使っての提出.
提出するのはtexファイルと図ファイル一式だったが,うまく提出が完了せず徹夜.
原因は一式ファイルの中に関係のないpngファイルがあったことが原因だった.
 
・20181119 accepted 
アクセプト通知が来る.
 
・20181122 copy revision
学会側から文中で使ってる単語を微修正するよう指示が来る.
ここまで投稿や修正はすべて学会の用意したuniversal format(シングルカラム)を使用していた.
微修正と(気を遣って)ダブルカラム版に図などを修正して提出しようとするも,Overleafがエラーを吐くので提出できず.
図はダブルカラム用(縦に細長く)にして,フォーマット自体はこれまでの形式(シングルカラム)にして提出.コメントのところに事情を書いた.
 
・20181206 copy revision
最終確認版が学会から送られてくる.
向こうの編集者がきれいに配置してくれているものの,縦に細長くした図をダブルカラム横にぶち抜きで配置しているため,余白が大きい.
もともとの横長図を送付.
 
・20190112 final manuscript
きれいに図が配置された原稿が送られてくる.
OKの返事と支払いを済ます.
 
・20190117 published