Qiitaの記事のタグ情報を活用した意識高いアイデア創出方法
環境
node v14.5.0
作ったもの
特定の語句が使用されているQiitaの記事のタグのトップ10を抽出します。
この記事の後半で、このプログラムから抽出した言葉でマインドマップを作り、アイデアを考えます。(マインドマップ作成は手作業ですw)
たとえば、「Qiita」と入力すると、
$ node app.js
✔ 調べたい言葉を入力してください … Qiita
Python 15
JavaScript 11
初心者 9
PHP 6
Rails 6
AWS 6
Docker 6
docker-compose 5
Mac 5
Ruby 5
Qiitaという言葉を使っている記事のタグは、pythonが一番多いことが分かります。
これは、QiitaのAPIの中のitemsを使いました。
記事の一覧を新しいものから返してくれます。
https://qiita.com/api/v2/items?query="検索語句"
詳細はこちらを御覧ください。
https://qiita.com/api/v2/docs#投稿
コード
const axios = require("axios"); //HTTP通信ライブラリ
const prompts = require("prompts"); //コマンドプロンプト入力のライブラリ
async function main() {
// 入力 (参考記事:https://co.bsnws.net/article/288)
let questions = {
type: "text", // インプットタイプ
name: "word", // 変数名
message: "調べたい言葉を入力してください"
};
let search = await prompts(questions);
let loop_number; //ループ回数
let tag_name = [""]; //取得するタグ名の配列
let tag_number =[0]; //取得するタグの数の配列
let tag_add_flag = 0; //タグを追加するか判定フラグ
//調べたい言葉が含まれるQiitaの投稿をQittaのAPIで取得(直近100記事)
let response = await axios.get("https://qiita.com/api/v2/items?per_page=100&query="+ encodeURIComponent(search.word));
//データの数が100なければループ回数はデータの数、それ以外は100
if (response.data.length < 100){
loop_number = response.data.length;
}
else{
loop_number = 100;
}
//検索ワードにヒットした投稿からタグを抽出する
if (response.data.length > 0){
for (let i = 0; i < loop_number; i++ ) {
for (let j = 0; j < response.data[i].tags.length; j++) {
tag_add_flag = 1;
//tagは配列なのでループ
for (let k = 0; k < tag_name.length; k++){
//既に抽出したタグなら数をカウントする
if (response.data[i].tags[j].name == tag_name[k]){
tag_number[k]=tag_number[k]+1;
tag_add_flag = 0;
}
}
//はじめて見るタグなら追加する
if (tag_add_flag ==1 ){
tag_name.push(response.data[i].tags[j].name) ;
tag_number.push(1);
}
}
}
//タグを降順に並べ替え
sort(tag_name,tag_number);
//トップ10を表示
for (let i = 0; i < 10 ; i++ ) {
console.log(tag_name[i], tag_number[i]);
}
}else{
console.log("該当の投稿はありません");
}
}
// 降順に並び替え (この記事参照 https://qiita.com/may88seiji/items/a6047fd0fba9d598f103)
function sort(index,data) {
for(var i = 0; i < data.length+1; i++){
for(var j = data.length; j>i ; j-- ){
//隣りあう2つの値を比べて、後ろが多きければ交換する
if(data[j]>data[j-1]){
//数値の交換
let tmp1 = data[j];
data[j] = data[j-1];
data[j-1] =tmp1;
//インデックスの交換
let tmp2 =index[j];
index[j] = index[j-1];
index[j-1] =tmp2;
}
}
}
}
main();
参考サイト
promptsライブラリー
prompts : node.js用のコマンドラインからの値を受け取る時に便利なライブラリ
並べ替え
JavaScript バブルソート
ありがとうございました。
マインドマップ
これで終わりではなくて、ここからが始まりです。
タグをマインドマップでつなげてみると、おぼろげながら進むべき道が見えるような気がしてみました。
例えば、起業に興味があるとします。
$ node app.js
✔ 調べたい言葉を入力してください … 起業
Python 10
初心者 8
ポエム 8
起業 7
リーンスタートアップ 6
Qiita 6
個人開発 5
今読んでおくべき記事100選 5
PHP 5
スタートアップ 4
同様に、これらの語句の記事で使われてるタグを調べます。
pythonという言葉が使われている記事のタグは、 Python、機械学習、AtCoder、AWS、AIなど
初心者は、 CSS、PHP、HTML、Rails、Rubyなど
ポエムは、JavaScript、Python、初心者、機械学習、新人プログラマ応援など
リーンスタートアップは、アジャイル、リーン、スクラム、スタートアップ、Qiitaなど
Qiitaは、Python、JavaScript、初心者、PHP、Railsなど
同様のことを繰り返します。
これを意識高くマインドマップにしてみました。
(汚い手書きですいません)
なんとなく、おぼろげながら、Qiita民が起業に進むべき道が見えてきませんか?
まずは、HTML、CSS、Rubyなどで基礎をかためて、アジャイルってところですかね。(無理矢理感)
あと、私は地方創生に関する仕事をしています。せっかくなので何かヒントはないか、Qiitaのタグからマインドマップを作ってみました。
やっぱり、Qiita民が地方創生するには、ハッカソンが良さそうですね。
ProtoOutStudioやMAというタグも出てきました。
他にも開発合宿の誘致など、良いかもしれません。
今回の投稿は、めちゃくちゃ無理矢理感高いですが、タグ情報の繋がりから、今まで気づかなかった何かが見えてくるかもしれませんので、お試しください。
Author And Source
この問題について(Qiitaの記事のタグ情報を活用した意識高いアイデア創出方法), 我々は、より多くの情報をここで見つけました https://qiita.com/tatsuya1970/items/938e7997a475cf57341d著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .