ぬゅぼうのPython日記【やっぱりスクレイピングこそ正義】
↓前回↓
僕がやりたいのは、
「janomeにランダムに生成した文字列をぶっ込んで無理くり日本語文として解釈させ、janomeの中に存在するバイアスを教師として日本語文法を学習するコードを書く」
これです。
無理でした!!!!!!
うん、まあできなくはないかもしれないけど手間がかかり過ぎる!!
ここで詰まるのもアレなので一度、web上の文章をスクレイピングで引っ張ってきて
word_group関数に食わせる、word_group関数で保存した文法を記録する
この3つを主眼としてやっていこうと思います。
完璧を目指すより、まず終わらせろ。
ハイ!!!!!!!!
ということで、理想は後に回して現実的な方針で行きましょうかね。
スクレイピングするデータを選定する
さて、まずこのコードのために使用するデータを選定する必要がありますね。
スクレイピングが許可・あるいは容認されていること
実は僕、以前Wikipediaからデータを引っ張ってくるコードを書いてたんですが、
のちにWikipediaはスクレイピングを禁止していると知って使うのをやめた過去があるんですよね。
スクレイピング絡みでは逮捕事例もあったようなので、ここのところはしっかりしていきたいですね。
しかし逆に、公にスクレイピング許可を出しているwebサイトなんてモノもそうそうあるわけでもなく…
そこで調べてみると、スクレイピングに関する法的アレをまとめたページがありましたので引用させていただきます。
この記事によると…
著作権法は以下のような例外を認めています。
~中略~
コンピュータによって情報を解析することが目的である場合には、例外的に著作権者の同意を得ることなく、スクレイピングによって取得した他社情報などを記録媒体に記録したり翻案することができます。
僕の目的はjanomeで形態素解析して日本語の文法をコンピュータに学習させることなので、この条件はクリアしているはずですね。
法の裏付けは得たので、後は細かい規約やらなんやらに抵触しなさそうなサイトなら
大丈夫そうですね。
…で。
色々調べた結果、Weblio辞書さんというサービスがいいかなと。
多様な分野についての文章があるので幅広い語彙量が期待できますし…
というところで著作権・商標に関する規約のページに目を通したところ、
スクレイピングに関する項目は見当たらなかったのですが…
Weblioには、各国の著作権法・条約により保護されている以下の著作物が含まれます。
~中略~
権利者に無断で複製、送信、放送、配付、貸与、翻訳、変造、翻案することは、著作権侵害となり、法的に罰せられるほか、損害賠償を請求されることがあります。
ここがちょっと気になりはした。
一個ずつ考えていきましょうか…
複製
僕がしたいのは文章をweb上から取得してjanomeにかけることだけなので、
その文章データを内部的に保存することはない。
保存されるのは文章を構成する単語と文法的パターンだけ。
取得した文章と同一のデータがこちら側のデバイスに記録されないので、
複製には当たらないんじゃないかな?
送信
まあこれは全然する予定ないですね。
このデータをもとにチャットボットが完成したらそれを公開することはあるかも
しれませんが、学習に利用した文章データをそのまま送信することには当たらない
と思いますね。
放送
これも上の送信とほぼ同一ですね。割愛っ!
配付
これも送信・放送と同じくですね。
いずれ完成したチャットボットをDLできるようにしたとしてもその内部に
著作物がそのまんま含まれる仕様にはしない予定なので問題ないと思います。
貸与
別に貸すことはないので割愛しまーす。
翻訳
翻訳かあ…そもそもjanomeはあくまで日本語の形態素解析ライブラリなので
他言語への翻訳が問題になることはないと思います。
やりたい内容の仕様上不可能ですしね。
変造
別に既存の著作物を改変して別の著作物にしようって話ではなく、
人間に置き換えて考えれば会話を円滑にするために著作物としての文章を読んで
知識を蓄えるという行為でしかないので大丈夫なはず!
これがダメなら教科書読んで日本語覚えるのが教科書会社に対する著作権侵害になっちゃいますしね!
翻案
上に同じ!!割愛!!!!
以上!
うむ、完璧な言い分だ。
そしてちょいと検索してみたら普通にweblioさんの辞書スクレイピングしてるコード載せてる方とかポコポコ出てきたのでおそらく大丈夫ですね。
…大丈夫だよな…
読んでる方で、もしコレはアカンと思ったら気軽にコメントください!!!
(コメ稼ぎでは断じてない!!)
一応意思表示として書いておきますが、【やめろと言われたら一瞬でやめるつもり】
です!!!
よしこれで悪質性の無さの表明も万全!!!!!!
というわけで。
諸々の予防線は張り終わったところで、
次回から早速スクレイピングコードを書いていきましょうね!!
ではまた!!