本当なら、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
関連本、ロボット本、テストなどの系統が多いらしい。実にトレンドらしいですね。