【JKI】031_Extracting_Keywords_from_a_Website
【JKI_031】課題を確認
Just KNIME It! (JKI)
今回の挑戦はこちら
問題文をGoogle翻訳し少し加筆して以下に
【サンプルデータの取得】
csvファイルをダウンロードして、KNIME workflow (WF)内に格納して相対パスで読み込むところはいつもの通りですが、結果を見て驚きました。
設定:
結果:
csvにURL一つだけです。
以下ネタバレを含んでいます
私はついここで上記のサイトにアクセスしてしまい、課題であるレシピの推測の正解を知ってしまいましたがそれは後ほど。自分で推測したい方はまだ見ない方がいいです。
【keyword search KNIME】
今回の課題は「Web ページからテキストを抽出し、キーワード検索を実行」
するのですが、私は自然言語処理など全く経験がないです。
そこで上記タイトルのクエリでGoogle検索して下記のサイトが見つかりました。
なるほど、SEOにも使えるコンポーネントなんですね。このサイト自体もSEO対策してたりするのかな。
上記KNIME社ブログ「How to build a KNIME workflow for semantic search and improve SEO」の筆者であるAli Asghar Marviさんが下記のKNIME workflow (WF)を公開して下さってます。
これ、もう正解そのものを含んでますよね。難易度が「簡単」とはこういうことかなと思いました。このWFを私が自力で0から構築は到底できないですが、KNIMEコミュニティがあれば大丈夫という一例だと思います。
今回の課題に必要な部分をそのまんまいただいて下記に紹介します。
【WFのコピペで実装完了】
上記WFを自分のKNIME APにインポートしました。
立ち上げると私の環境では追加インストールが必要なextensionsがあるようなので「YES」
「Next」
(以下略)でKNIME再起動後に
下記のWFから必要部分をコピー
自分の今回の解答WFへ貼り付けてノードを繋いで出来上がり。設定を変える必要すらなかったです。
では各コンポーネントなど体験していきます。
【Web Text Scraper】
上記ブログをGoogle翻訳して以下引用させていただきました。
Javaでの実装なんだと興味深く拝見しました。
また、上記のWF実行時に、WF内のdataフォルダにBoilerpipe環境が新たに作られていました。仕組みは私のような初心者には全くわかってないですが、KNIMEってこんなこともできるんだと感心。
わけもわからないで眺めてばかりでもいけないので先に進めます。以下は設定と結果です。
設定:
結果:
【Strings To Document】
日本語化されたディスクリプションによれば
うーん、初めて見たし使いどころがもう一つよくわからないノードです。
今回は次のKeyword SearchノードがDocument型のデータ入力しか受け付けないので利用は必須かなと理解しました。
設定:
結果:
ノードの出力テーブルだけでは何が起きたかわかりにくいですが、ドキュメント形式のデータが生成したと言うことで次に行きます。
【Keyword Search】
再びブログの記事を翻訳しての引用です。
このコンポーネントは
私は湯川学ではないので謎解きはなくあっさりと次へ進めます。今回はTF-IDFの結果を用いてのタグクラウド生成をするようです。
TFノードとIDFノードも初めてみましたが、Infocomさんはちゃんと日本語化して下さっていて感心しました。
TFノード:
IDFノード
ブラックボックスのまま使いたくないとは思って中を見たものの、パンドラの箱だった。ふたを一瞬開けて、そっとふたをして、次へ進みます。
一応読んでみた記事は下記に共有しておきます。
「単語の出現頻度」が高い方が重要(TF)と考える一方で、「いろんな文書に出てくるよく見る単語はそこまで重要ではない」こと(IDF)も合わせて評価する指標なのですね。感覚的にはなるほどと思いました。
設定:
結果:
TF-IDFスコア順に並べられた単語群を見たら何のレシピかは容易に推測が付くでしょうが次へ。
【Tag Cloud】
日本語化されたディスクリプションによれば
より詳しい利用法なども記載されていますが今日は割愛します。タグクラウドをインタラクティブに利用できる便利なノードなのですが、今回は下記設定での実行結果を見るだけにします。
設定:
結果:
もう完全にストロベリーケーキやがな。
KNIME Hubに解答は上げています。
おまけ:
【JKI_030 感想戦】
今回も本質的には正解できたようです。
但し手を掛け過ぎたようでした。
公式解答はこちら。
なるほどJoinerとPivotingでの効率よいデータ整形はいいですね。
2000年と最近のTop3比較は見ればわかるでしょってことなのか特に記載などなかったです。ま、いいか!
記事を読んでいただきありがとうございます。 先人の智慧をお借りしつつ、みなさんに役立つ情報が届けられたらと願っています。 もしサポートいただけるなら、そのお金はKNIMEの無料勉強会の開催資金に充てようと思います。