おすすめYouTubeチャンネル 紹介君
この授業で扱った情報アクセスと知的処理に関する手法を活用したマッシュアップを考えたところ、
授業で利用したsudachiの形態素解析を使ってなにかを作りたいと思った。
私にとって役立つプログラムを作りたかったため、私がよく利用する、YouTubeと形態素解析を関連付けた。
プログラムの大まかな流れとしては、コンソールにYouTubeチャンネルのURLを入力(複数可)し、Enterを押すと、デフォルトのブラウザが開き、おすすめのYouTubeチャンネルが表示されるといったものだ。
今回作成したプログラムに関連する技術の動向について述べる。
今回、sudachiを利用した形態素解析を行った。Sudachiの近年の動向としては、
2020年10月9日より、国内最大規模の日本語言語処理資源「SudachiDict」および「chiVe」をOpen Data on AWSで公開開始
されたそうだ。
コンソールに入力した任意のYouTubeチャンネルのURLから、おすすめYouTubeチャンネルが表示されるシステム
任意のYouTubeチャンネルのURLをコンソールに入力後、Enterを2回押すと起動する。数秒後に各デバイスのデフォルトのブラウザでおすすめチャンネルが表示される。
YouTubeチャンネルのURL以外をコンソールに入力すると、エラーを吐く
- 名称:YouTube
- 概要:YouTubeチャンネル
- 利用目的:htmlからYouTubeチャンネルのチャンネルIDとチャンネル名を取得
- URL例:https://www.youtube.com/channel/UCKnPsmCuIyXioKofQa217JQ
- 形式:HTML
- 名称:YouTubeチャンネルの最新動画情報
- 概要:YouTubeチャンネルの最新の動画15本の情報
- 利用目的:YouTubeチャンネルの最新動画のタイトルを取得
- URL例:https://www.youtube.com/feeds/videos.xml?channel_id=UCKnPsmCuIyXioKofQa217JQ
- 形式:Atom
- 名称:GoogleNews
- 概要:世の中のニュース
- 利用目的:該当YouTubeチャンネルのGoogleNewsを取得
- URL:https://news.google.com/topstories?hl=ja&gl=JP&ceid=JP:ja
- 形式:HTML
まずこのプログラムは
- Main.java
- GetYouTubeChannelId.java
- FeedYouTubeChannel.java
- GetYouTubeChannelName.java
- GetGoogleNewsTitle.java
- Sudachi.java
- FreqWordsCount.java
- SearchRecommendedYouTubeChannel.java
の8つのプログラムからなる。
YouTubeチャンネルリンク>チャンネルID & チャンネル名>Feedから最新動画15件のタイトル & GoogelNewsででてきたNewsタイトル >
形態素解析で登場頻度の高い名詞TOP3を選択>名詞からYouTubeチャンネルをブラウザ起動して検索
というのが大まかな流れだ。
FreqWordsCount.javaにて動画タイトルに使われたすべての名詞が格納された文字配列を、HashMapを利用して、頻度の高い順に並び替え、上位3名詞を配列に格納した。
YouTubeチャンネルのURLは主に、
https://www.youtube.com/channel/チャンネルID
https://www.youtube.com/user/ユーザー名
https://www.youtube.com/c/チャンネル名?
の3種類からなっている。
1種類目だけであればチャンネルIDは一目瞭然なのだが、残りの二種類はチャンネルIDがわからない。
調べてもチャンネルIDを取得できるツールがなかったため、HTMLから自力で探した。
(苦労した)
プログラムの入力について説明すること。 データを入力とする場合には、データの件数、データの時間範囲など、 データの持つ性質に即した説明をすること。 ライブラリや外部ツールの version についても記載すること。
Main.javaを実行後、コンソールの指示通りに、任意のYouTubeチャンネルのURLを入力しEnterを2回押す。
URLは基本的に何行でも入力可能。
sudachiのバージョンは0.5.2
入力URL:
https://www.youtube.com/user/HikakinTV
https://www.youtube.com/c/junchannel
https://www.youtube.com/c/koyakky-ch
改良点としては 動画タイトルの頻出名詞、GoogleNewsタイトル以外からも、おすすめYouTubeチャンネルを検索する要素を取り出すべきだった
大量の名詞が格納された配列から、頻度の高い順に並べるアルゴリズムは ハッシュマップを利用して効率よくできた
リソースは最大限有効に活用できた。
今回YouTube(最新動画タイトル)とGoogleNewsのマッシュアップをしたわけだが、もっと効率的にチャンネルの特徴を表す要素を引き出す方法を考えたかった
今後の展開として、YouTube以外にもTwitterなどのSNSからおすすめYouTubeチャンネルを探す機能などもつけてみたい
そこそこ実用的なプログラムが書けたのが嬉しい。
3.5 その他の工夫点で記述したが、
YouTubeチャンネルのURLが3種類(もっとあるかも)あるせいで、
チャンネルIDをHTMLから自力で探すはめになった
もとから1種類であってくれ、、、、、(AtomのためにチャンネルIDが必要だった上、チャンネルIDの取得が意外と大変だった)
国内最大規模の日本語言語処理資源「SudachiDict」および「chiVe」をOpen Data on AWSで公開開始
ー自然言語処理技術で日本語の曖昧さを吸収し、さらに便利でオープンなシステムへー
株式会社ワークスアプリケーションズ2020年10月9日 13時20分
https://prtimes.jp/main/html/rd/p/000000178.000011485.html
情報アクセスと知的処理ー形態素解析ーSudachi
https://www.mlab.im.dendai.ac.jp/~yamada/ir/MorphologicalAnalyzer/Sudachi.html