Qiita 기사의 태그 정보를 활용한 의식 높은 아이디어 창출 방법

15147 단어 QiitaAPIaxiosNode.js

환경



노드 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라는 단어를 사용하는 기사의 태그는 파이썬이 가장 많다는 것을 알 수 있습니다.

이것은 Qiita API에서 items를 사용했습니다.
기사의 일람을 새로운 것으로부터 돌려줍니다.
https://qiita.com/api/v2/items?query="検索語句"

자세한 것은 이쪽을 봐 주세요.
https://qiita.com/api/v2/docs# 게시

코드



app.js
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, 기계 학습, AtCoder, AWS, AI 등
초보자는 CSS, PHP, HTML, Rails, Ruby 등
포엠은 JavaScript, Python, 초보자, 기계 학습, 신인 프로그래머 응원 등
린 스타트업은 애자일, 린, 스크럼, 스타트업, Qiita 등
Qiita는 Python, JavaScript, 초보자, PHP, Rails 등

비슷한 것을 반복합니다.

이것을 의식 높게 마인드 맵으로 해 보았습니다.
(더러운 필기 없습니다)


어쨌든, 아무렇지도 않게 Qiita 백성이 기업으로 나아가야 할 길을 볼 수 없습니까?
우선은 HTML, CSS, Ruby 등으로 기초를 두고 민첩한 곳입니까. (무리 화살감)

나중에 나는 지방 창생에 관한 일을하고 있습니다. 모처럼이므로 뭔가 힌트가 없거나 Qiita 태그에서 마인드 맵을 만들어 보았습니다.



역시, Qiita민이 지방 창생하기 위해서는, 해커슨이 좋을 것 같네요.
ProtoOutStudio와 MA라는 태그도 나왔습니다.
그 밖에도 개발 합숙 유치 등 좋을지도 모릅니다.

이번 투고는, 엄청 무리 야리감 높습니다만, 태그 정보의 연결로부터, 지금까지 눈치채지 못한 무언가가 보일지도 모르기 때문에, 시험해 주세요.

좋은 웹페이지 즐겨찾기