Google検索結果を要約する何かを作ろうとしたのに、気づいたら Raspberry Pi Zero v1.3と遊んでいた件
こんな時だから、自分の手で要約ツール作ってみよう!思い立ったものの、気づいたらラズパイをポチっとしていた自分。コロコロと気分が変わってしまい、当初の「要約ツール」を作る話は何処へやら。スマホからラズパイに電源を供給するつもりだったが、残念ながらスマホが USB2.0 で電源供給対応せず。
more ...こんな時だから、自分の手で要約ツール作ってみよう!思い立ったものの、気づいたらラズパイをポチっとしていた自分。コロコロと気分が変わってしまい、当初の「要約ツール」を作る話は何処へやら。スマホからラズパイに電源を供給するつもりだったが、残念ながらスマホが USB2.0 で電源供給対応せず。
more ...660円ラズパイのセットアップをした。OS 起動用の SD カードは眠っていた8Gを、パソコンにつなぐケーブルは昔の出張道具を使用。そもそも WiFi が搭載されていない状態で初期設定できるかと疑問に思いながらも、コンピュータの基礎知識を思い出し、Google 先生に助けを求めながら進めた。
more ...ここから要約ツールのプログラミング開始。WEB アプリの事は詳しくないが、とりあえず GET からキーワードを受け取るように実装してみた。まずは簡単な送信フォームの用意と Python のフレームワーク bottle によるデータの受け取りを書いてみた。bottle 本当に簡単に扱える。
more ...当初は Google の検索結果をスクレイピング。いつの間にか検索結果を渡してくれなったので、おとなしく API を使う。API の無料枠は回数制限あるけど、私はこれで事足りた。検索結果は JSON 形式で受け取るので、辞書リストの扱いで要素が取れる。Python はリスト操作扱いやすくて好き。
more ...ここは AI でいう「識別」のような部分。当初、アクセスした結果を適当に使っていたが、クラスタ分けの部分(予測)で精度が出ず。使える元ネタを取得するべく、ユーザエージェントを指定、pdf は除外、p タグに限定するように工夫。スクレイピングでおなじみ BeautifulSoup を使用。
more ...取得した文章から単語を抽出。Mecab を使い、辞書は NEologd を指定。単語の集め方についてはもっと良いやり方ありそうだけど、思いつくまま、ほぼ気合で実装。これが正しいかは不明。名詞と形容詞を対象に、ストップワードもベタ打ちで指定。for 文グルグル使っているので目が回りそう。
more ...当初は要約文章を作ろうと思っていた。しかし感覚的に今回は LDA によるクラスタ分け結果を表示するだけで十分な気がしてきた。というよりもうお腹いっぱいになってきたので、そうすることにした。計算させるときのパラメータは昔使った値のまま。今思うとデフォルトの値でよかった気がする。
more ...今後書きたいことのメモ
more ...