QiitaのLGTM数を予測したい(その1:ベース作り)

June 1, 2020

歌声合成をやりたくて(再)勉強しはじめたディープラーニングですが、 全然歌声に辿り着く気配がありません。

あまりにもアウトプットがなく、やる気がなくなってしまいそうなので、 情報が豊富な自然言語処理をやってみようと思います。

題材としてQiitaのLGTM数を使って「タイトルが受けそうか」を予測してみます。

まずはベースづくりです。

データ

  • 2019-01-01〜2020-05-31のデータを収集
  • 10以下・10より大きい・100より大きいの3カテゴリに分類
  • カテゴリごとの記事数が同じになるように、最も少ないカテゴリに合わせたデータ数とする(各カテゴリ約2500件)

学習

  • タイトルをMeCab(ipadic)で分かち書き
  • CountVectorizerでベクトル化
  • 隠れ層32の2層パーセプトロンで処理(活性化関数はReLU)
  • エポック数10

結果

スコア(正解率)

0.5211024978466839

サンプル (学習データ)

タイトル | 予測 | 正解 | LGTM数 | 判定 — | — | — | — | — [ver 1.2] Git でよく使われるコマンドにイラストによる説明を加えて1枚のチートシートにまとめてみた | 2 | 2 | 2424 | OK Laravelでクリーンアーキテクチャ | 2 | 2 | 126 | OK AWS Amplify ConsoleでCIを頑張った話 | 0 | 0 | 5 | OK Gatsby.js を完全TypeScript化する | 2 | 2 | 162 | OK 500ページ超えの新刊『わかりみSQL』を支える技術 | 2 | 2 | 590 | OK

サンプル (テストデータ)

タイトル | 予測 | 正解 | LGTM数 | 判定 — | — | — | — | — Flutter の状態管理についてお絵かきアプリ作りながら勉強した | 2 | 1 | 18 | NG Intel SGX入門 - SGX基礎知識編 | 0 | 1 | 38 | NG 新卒のトレーナーをするときの個人的まとめ | 2 | 2 | 1521 | OK 【Nuxt.js】Modal実践編:QueryでModalを管理する① | 1 | 0 | 1 | NG 元号対応に関するまとめ | 0 | 1 | 37 | NG

何も工夫してないので当然と言えば当然ですが、50%程度の正解率です。 そして、学習データは全問正解という過学習感。

これを徐々に改善していこうと思います。 (データ数が足りるのか心配ですが)