技術をかじる猫

適当に気になった技術や言語、思ったこと考えた事など。

技術書展14 で出てきた新規本から、トレンドを探ってみた

本当なら、1ブースで複数本を出しているので、それも考慮に入れておくのが集計的には正しいのかもしれないが、面倒だったので…

  • 対象は 技術書展14 の新刊本のみ。
  • 書籍のタイトルのみ解析
  • 最頻の単語を探る

だけにとどめる。

本当なら、書籍の紹介文を全部拾いたいけど、管理めんどくさかったのでタイトルのみ…

早速調べてみる

必要なライブラリをインポートして

# Regex
import re

# pandas セット
import pandas as pd
from pandas import DataFrame
import numpy as np

# pip install janome
from janome.tokenizer import Tokenizer

オンラインマーケットの新刊本 ページから正規表現でタイトルを抽出して、突っ込む

allBookTitles = '''
ARを用いた箱の中身確認システムの検討 -クライアント準備編-
ARを用いた...アント準備編-
コピペでかんたんPower Apps七草式コードレシピ集 上巻
【初心者向け】公共データを用いたSingle Cell RNA-seq解析
クリエイティブコーディングとイラスト制作合体のすすめ
Aiming Tech Book Vol.3
Ultimate Hacking Keyboard 60入門
CSS GRADIENT PATTERNZ
...
'''

タイトルを1行づつ分割して、ついでに集計用の変数を用意

splitted_titles = allBookTitles.split('\n')

# to lists
tokenized_list = []

# Tokenized
cur_idx = 0
tokenizer = Tokenizer()

何行目でどんな単語が出たのかを集計

# 数字だけとか、#11 といったナンバリングは無視
remove_names = ['^[0-9\/\(\)\!]+$', '[#\*]']
def is_valid(value: str):
    if len(value) <= 1:
        return False
    for r in remove_names:
        if re.match(r, value):
            return False
    return True

for title in splitted_titles:
    tokens = tokenizer.tokenize(title)
    already = [] # 既出名刺
    for token in tokens:
        pos = token.part_of_speech.split(',')[0]  # 品詞名
        if ('名詞' in pos) and (token.surface not in already) and is_valid(token.surface):
            already.append(token.surface)
            tokenized_list.append([cur_idx, token.surface])
    cur_idx += 1

ここまでで表示してみたら

cr_df = DataFrame(data=tokenized_list, columns=['index', 'surface'])
cr_df

単語でグルーピングして、5回以上出現でフィルタリング

group_sizes = cr_df.groupby('surface').size()
gs_df = DataFrame({ 'count': group_sizes }).reset_index()
gs_df[gs_df['count'] > 5].sort_values('count', ascending = False)
700  入門  39
313 Vol 25
814 技術  18
392 ため  15
1023    開発  13
217 Python  13
364 vol 13
4   AI  12
39  Book    12
915 理解  11
467 ガイド   10
271 Tech    9
714 別刷  9
809 情報処理    9
912 特集  9
593 プログラミング   8
497 コード   8
552 データ   8
977 解析  8
454 エンジニア 8
430 アプリ   8
981 言語  8
822 挑戦  7
776 学習  7
779 完全  7
712 初心者   7
1034    電子  7
649 ロー  7
507 システム    7
928 研究  6
51  ChatGPT 6
986 設計  6
345 js  6
979 解説  6
957 自動  6
745 向け  6
785 実装  6
648 ロボット    6
837 攻略  6
835 改訂  6
662 不思議   6
664 世界  6
786 実践  6
540 テスト   6
  • Python と AI がやはり多い。
  • 本の種類は入門書、次点で特集、ガイドなどが多いようだ。
  • 技術要素では、 ChatGPT 関連本、JavaScript 関連本、ロボット本、テストなどの系統が多いらしい。実にトレンドらしいですね。