LoginSignup
9
4

More than 3 years have passed since last update.

形態素解析で読むQiitaコミュニティガイドライン

Last updated at Posted at 2017-05-10

Qiitaコミュニティガイドラインを読んでも意味がよく分からなかったので、形態素解析してみました。

手法

形態素解析する手段はいくつかあるようですが、今回はgooラボが提供している形態素解析APIを使用しました。

ソースコード

index.html
<!DOCTYPE html>
<html lang="ja">
<head>
  <meta charset="UTF-8">
</head>

<body>
  <script>
  const URL_SOURCE = 'https://help.qiita.com/ja/articles/qiita-community-guideline'
  const URL_API = 'https://labs.goo.ne.jp/api/morph'
  const APP_ID = ''  // TODO:アプリケーションIDを入力してください

  fetch(URL_SOURCE)
  .then(response => {
    if (response.ok) {
      return response
    } else {
      throw new Error(response)
    }
  })
  .then(response => response.text())
  .then(text => {
    const doc = new DOMParser().parseFromString(text, 'text/html')
    const texts = [...doc.querySelectorAll('p')].map(p => p.textContent.replace(/\n/, ' '))
    const sentence = texts.join(' ')
    const body = createParams({
      app_id: APP_ID,
      sentence: sentence
    })

    fetch(URL_API, {
      method: 'POST',
      body: body
    })
    .then(response => {
      if (response.ok) {
        return response
      } else {
        throw new Error(response)
      }
    })
    .then(response => response.json())
    .then(json => {
      const words = json['word_list'].reduce((a, b) => a.concat(b))
      const wordNames = words.map(word => word[0])
      document.body.innerHTML = wordNames.join('<br>')
    })
    .catch(e => console.error(e, URL_API))
  })
  .catch(e => console.error(e, URL_SOURCE))

  function createParams (data) {
    const params = new URLSearchParams()
    Object.keys(data).forEach(key => params.append(key, data[key]))
    return params
  }
  </script>
</body>
</html>

結果

Qiita
は
「
プログラミング
に
関
する
知識
を
記録
・
共有
する
ため
の
サービス
」
です
ので
、
再
利用
性
・
汎用性
の
高
い
情報
が
多く
集ま
っ
て
い
る
場
を
つく
っ
て
い
き
たい
と
考え
て
い
ます
。
その
ため
には
、
記事
を
読
む
こと
、
記事
を
書
く
こと
を
通
し
て
、
読
む
側
・
書
く
側
それぞれ
が
お
互い
に
関わ
り
合
っ
て
、
再
利用
性
・
汎用性
の
高
い
情報
を
育て
て
い
き
ましょう
。

あなた
が
記事
を
読
ん
だり
、
書
い
たり
する
こと
は
、
その
行為
だけ
に
とどま
ら
ず
、
記事
を
通して
誰か
と
つなが
る
きっかけ
と
な
り
ます
。
同じ
分野
に
関心
を
持
っ
て
い
る
方
や
スキル
セット
が
似
た
よう
な
方
と
、
Qiita
の
記事
を
通して
つなが
る
こと
が
でき
る
か
も
しれ
ません
。
「
あなた
」
と
「
誰か
」
が
つなが
る
こと
で
、
新し
い
発見
や
気付き
が
もたら
さ
れ
る
よう
な
場
として
いき
ましょう
。

HRT
と
は
、
書籍
『
Team

Geek
――
Google
の
ギーク
たち
は
いかにして
チーム
を
作
る
のか
』
で
紹介
さ
れ
て
い
る
「
Humility
(
謙虚
)
」
、
「
Respect
(
尊敬
)
」
、
「
Trust
(
信頼
)
」
を
示
す
言葉
です
。
書籍
では
“
あらゆる
人間関係
の
衝突
は
、
謙虚
・
尊敬
・
信頼
の
欠如
による
もの
だ
”
と
述べ
ら
れ
て
い
ます
。
Qiita
を
利用
する
際
には
、
この
HRT
を
意識
する
よう
心がけ
ましょう
。
記事
は
記事
を
書
い
た
本人
では
あ
り
ません
。
記事
を
書
い
た
本人
も
記事
を
読
む
人
も
、
そのこと
を
心得
て
コミュニケーション
し
て
くださ
い
。

Qiita
で
何か
コミュニケーション
する
時
には
、
人
と
向き合
っ
て
対話
し
て
い
る
こと
を
忘れ
ない
よう
に
心がけ
ましょう
。
言葉遣い
や
表現
において
、
対面
で
向き合
っ
て
も
同じ
こと
が
言え
る
か
、
立ち止ま
っ
て
考え
て
み
る
の
も
大切
です
。

記事
を
読
んで
助け
て
もら
っ
たり
、
自分
の
書
い
た
記事
が
誰か
の
役
に
立
っ
たり
し
た
、
Qiita
での
あなた
の
嬉し
い
体験
を
友人
・
知人
・
同僚
など
身近
に
い
る
人
に
共有
し
ましょう
。
次に
嬉し
い
体験
が
でき
る
の
は
、
あなた
の
身近
に
い
る
人
かも
しれ
ません
。

Qiita
は
「
プログラミング
に
関
する
知識
を
記録
・
共有
する
ため
の
サービス
」
です
。
プログラマー
が
興味
を
持
つ
もの
では
な
く
、
プログラミング
に
関
する
記事
を
投稿
し
ましょう
。

不適切
な
投稿
記事
を
見つけ
たら
、
投稿
閲覧
画面
の
右下
の
「
問題
が
あ
る
投稿
を
報告
する
」
まで
報告
を
お願い
し
ます
。


Qiita
は
「
プログラミング
に
関
する
知識
を
記録
・
共有
する
」
サービス
です
。
政治
や
スポーツ
を
語
る
記事
、
ニュース
の
速報
など
、
プログラミング
に
関係
し
ない
記事
は
投稿
し
ないで
くださ
い
。

読み手
を
煽
っ
たり
、
釣
っ
たり
する
よう
な
タイトル
付け
や
、
記事
内容
に
沿
わ
ない
タグ
付け
で
、
記事
における
再
利用
性
・
汎用性
を
損な
う
行為
は
やめ
て
くださ
い
。

個人
・
団体
・
企業
に
対
する
誹謗
中傷
や
差別
的
表現
、
犯罪
行為
を
助長
する
内容
が
含まれ
て
い
る
記事
は
禁止
し
ます
。

安全
な
インターネット
や
サービス
の
利用
と
い
う
観点
から
、
個人情報
は
慎重
に
扱
い
ましょう
。
本人
が
あきらか
に
し
て
い
ない
等
の
事情
において
、
本人
の
許諾
な
く
個人情報
を
投稿
する
の
は
やめ
ましょう
。

他人
の
書
い
た
ソース
コード
、
そのほか
写真
・
イラスト
・
音楽
など
に
関
し
て
、
権利
者
の
許諾
な
く
複製
し
て
掲載
する
著作権
の
侵害
は
やめ
ましょう
。
引用
する
場合
は
、
配布
元
の
ライセンス
規約
に
従
い
、
適切
な
表記
で
掲載
し
て
くださ
い
。

技術
に
関
する
情報
共有
を
目的
として
い
ない
、
宣伝
や
販売
を
主
目的
と
し
た
記事
は
投稿
し
ない
よう
に
お願い
し
ます
。
なお
自社
や
自作
の
技術的
な
解説
等
を
主
目的
として
い
る
記事
は
、
宣伝
や
販売
には
当た
り
ません
。

ご
自身
の
書
い
た
記事
が
「
宣伝
や
販売
に
当た
る
のか
判断
に
迷
う
」
と
い
っ
た
場合
は
、
サポート
窓口
へ
お
問い合わせ
くださ
い
。

Qiita
への
要望
や
意見
について
は
記事
として
では
な
く
、
ご意見
の
リンク
もしくは
サポート
窓口
へ
報告
を
お願い
し
ます
。

「
Please

Don't
ー
ー
あなた
や
みんな
が
不快
な
体験
を
し
ない
ため
の
マナー
」
に
違反
し
た
場合
は
、
コメント
や
記事
の
非公開
、
違反
行為
を
繰り返
し
た
場合
は
アカウント
停止
措置
と
な
る
こと
も
あり得
ます
。
また
不快
な
マナー
が
あまりにも
横行
する
場合
は
、
Qiita
自体
を
終了
せ
ざるを
得な
い
こと
も
考慮
し
て
くださ
い
。
より良
い
体験
が
でき
る
サービス
を
一緒
に
つく
っ
て
い
き
ましょう
。
9
4
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
9
4