迷走ブログ

ファウスト的衝動を抱き、迷走している、凡人による気まぐれブログです。

【雑学】推理力を鍛えるのに適した思考法かもしれないーーフェルミ推定についてーー

はじめに

f:id:yktmmrmtoosa03:20220328045550j:plain

みなさんはフェルミ推定という言葉を聞いたことがありますか。

よくコンサル等の就活面接等で度々求められる思考法です。

実は、企画系のお仕事でも度々使用することはありますが、今回はお仕事で使うだけでなく、推理力を鍛えるためのツールとしても使えるのではないかと思い、この記事を書きます。

 

 こんな人におすすめ 

  • 推理力を鍛えたい人
  • 思考力を鍛えたい人
  • フェルミ推定を知りたい人

 

フェルミ推定とは何か

一般的には、以下のように定義されています。

 

フェルミ推定(フェルミすいてい、Fermi estimate)とは、実際に調査することが難しいような捉えどころのない量を、いくつかの手掛かりを元に論理的に推論し、短時間で概算することである。(出典: フリー百科事典『ウィキペディア(Wikipedia)』

 

私なりに言語化すると、フェルミ推定とは、

未知の量・数字を計算するために、常識や知識や経験等を総動員して結論を出すこと、

であると考えます。

 

ちなみに、WIKIに載っている定義の中で違和感が「短時間で概算すること」という部分にありました。

 

そのため、「短時間」の定義はさておき、必ずしも数秒や数分単位で結論を出すことって就活の面接でない限り、少なくとも私が接する企画系のお仕事ではあまりないので、「短時間」の部分は削りました。

 

閑話休題。

 

このフェルミ推定と推理の接点について

f:id:yktmmrmtoosa03:20220328051146j:plain

推理とフェルミ推定の関係は、フェルミ推定を包含する関係にあると思います。

下記に一般的な推理とフェルミ推定の定義を分解して、対比してみました。

 

  推理 フェルミ推定
目的 まだ知られていない事柄を明らかにするために 未知の量・数字を計算するため
手段 ある事実をもとにして 常識や知識や経験等を総動員して
動詞 おしはかること 結論を出すこと

 

一般的に、推理とは、特に数字を出すことなど、特定の目的に絞られているわけではないですよね。

 

例えば、薬で小さな身体となってしまった某少年探偵のように「犯人」を推理することもあれば、天才物理学者の如く「なぜその事象が起きたのか」を解明することもあります。

 

一方で、フェルミ推定は「未知の量・数字」を計算するために用いられる思考法であると考えられます。

 

そのため、フェルミ推定と推理の関係性は、フェルミ推定が推理の下位概念に位置付けられると言えそうですね。

 

フェルミ推定を用いるメリット

f:id:yktmmrmtoosa03:20220328051420p:plain

ここで、フェルミ推定のメリットを見ていきます。

 

大きく2つあると考えます。

  • 「調査することができないようなフワッとした規模感」を捉えるのには強いこと
  • フレームワークとして、新たなお題に対してゼロから考える必要性がほぼないこと

 

「調査することができないようなフワッとした規模感」を捉えるのには強いこと

一般的に、言われることですが、「調査することができないようなフワッとした規模感」を捉えるのには強い思考法だと言えます。

 

例えば、よく「アメリカのシカゴには何人のピアノの調律師がいるか?」という例題が挙げられます。このような漠然とした問いに対して、それぞれ数値を仮定して(シカゴの人口を300万人とする、等)、推論していきます。

 

要するに、お題を因数分解していき、ある程度のしっくりとくるようなところまで行ったら、計算する、ということです。

 

そのため、お題をある程度分解して、考察して、前提となる知識や経験を総動員して、当てはめていき計算することで、答えを導き出すことができるので、細かな誤差を気にする必要はないです。

 

これは、推理する場面として、例えば証拠、状況等を分解して観察することの能力を高めるための訓練になるのではないでしょうか。

 

フレームワークとして、新たなお題に対してゼロから考える必要性がほぼないこと

語弊があるので、正確に述べると、ある程度因数分解をする際にパターンがあるようです。

 

例えば、ビジネスでは、「商圏」「駅」「面積」「キャパシティ」「レジ」等のある程度、因数分解するさいの定式のようなもの存在します。

 

正直なところ、推理パターンは研究していないので、よくわかっていない部分もあるのですが、もしかしたら、ある程度定式化できるのではないか、と思います。

 

そこら辺は、物語論とかの本読めば、物語の構造化を分解するときのコツがわかるのでしょうかね。すみません、これから勉強していきます。

 

ちなみに、因数分解をどこまでするか、ですが、基本的に細かくし過ぎてもよくわからない数字になる場合が多いため、ある程度の規模感で区切ることをお勧めします。

 

これは下記のおすすめの本にも載っていることですが、細かい数字を見せる相手がその数字にピンとくる・把握できる(対比できる)ほどにしないと、細か過ぎて伝わらないと言う場面が往々にしてあります。

 

市場調査をするときに、50万程度とかまででして絞ってもあまり意味ないというか、意思決定に使えるところじゃないなと感じました。実際、僕も上司に突っ込まれた経験があります。「結局どう言うことなの?」と疑問を呈されてしまったことがありました。

まあ、見せ方も悪かったので、それも反省点ですが。

 

閑話休題。

フェルミ推定を用いるデメリット

f:id:yktmmrmtoosa03:20220328051435j:plain

最も厄介なデメリットは、「誤差」です。

 

お題に対して、前提・仮定の方向性が間違ってしまうと、その後の知識や常識・経験等を総動員して結論を出しても、その結論に誤差が生じる可能性が高いことです。

 

どういうことかと言うと、例えば、「サッカー人口は?」と言うような問いの場合(フットサル人口ではない!)、「学生」+「社会人」と置き、さらに「学生」=「部活、サークルの数」*「所属する人数」〜と言うように分解していくことができます。

 

しかしこの時に、例えば、社会人の場合は、単にサークル等のコミュニティと置けるでしょうか。おそらく現実をそのまま反映できないでしょう。少なくとも、競技に打ち込める年齢=期間があり、その上で、離脱しない率をかける必要がありそうですよね。

 

このように分解をする際、あるいは数字を置くときに、その時点で推論の方法が異なると、当然ながら導き出される数字にも誤差が生じてしまいます。

 

従って、誤差がデメリットかなと思います。

 

まあ、いずれにしても結論を出すこと自体はできるので、その結論に納得できるかどうかはロジックの問題や説明力の問題なんでしょうがね。。。

 

おすすめの本

問題解決大全

問題解決大全

Amazon

おわりに

まとまりないですが、フェルミ推定が推理力を鍛えるための一つの方法かなと思ったので記事にしました。

 

ちなみに、もしも新卒の方でこの記事をお読みになっている方がいる場合、コンサル系では、フェルミ推定を用いて課題が出されることがあるようですので、対策をお勧めします(なんと浅いアドバイス!?)。

 

 

【新卒・就職】社会人1年目で身につけると良いビジネスで求められる5つのスキルを考えてみた

はじめに

f:id:yktmmrmtoosa03:20211016113107j:plain

上司曰く、社会人として働く上で、身につけた方が良いスキルがあるらしい。。。

 

今回はそのようなスキルについて、経験談とともに、僕が社会人1年目で知ってよかった、逆に知りたかったこと(気が付けばよかったこと)について共有できたらと思います!

 

ここで述べているスキルとは、挨拶等の礼儀やビジネスマナーという慣習的なお話ではありません。仕事をする上で身に付けているとスムーズに事が運ぶであろうスキルのことを指しています。

 

これをおさえれば、社内で評価されるとまではいえませんが、最低限、仕事を進めることはできるようになるはずです。。。

 

 こんな人におすすめ 

  • これから社会人になる人
  • インターンシップに行く人
  • 意識の高い学生
  • 社会人1〜3年目くらいの人

 

【前提】仕事を割り振る人と割り振られる人がいるということ

まあ、当然ですが、仕事というものは、割り振る人と割り振られる人がいます(笑)

言い換えると、仕事は前工程から後工程に渡すということですね。

 

当然組織や業界等によって「誰が」「どのように」割り振る(割り振られる)のか異なる部分はあります。が、少なくとも仕事には「納期」と「完成」が求められます。

 

「何を当たり前のことを言っているのか」

はい、当たり前のことですみませんが、少しお付き合いください。

 

この仕事を割り振る人というのは、もちろんただ漠然と仕事を割り振ることはほぼありません(ほぼと表現したのは例外もあるからです)。何かしらの完成基準・目的をもっています。例えば「3月1日までに〇〇という調査結果が欲しい。なぜならば〜」というようなイメージですね。

 

ただし、言語化してくれる人としてくれない人がいます。また個人の趣味嗜好等の問題なので仕方ないですが、「察してくれ」というパターンもあります。

 

いずれにしても、仕事を割り振られた人はまず、仕事を割り振っている人と「納期」や最低限の「妥協点」といった前提事項をあらかじめ共有(確認)しておくことをおすすめします。

 

前提を共有していないと、齟齬が生じてしまうからです。

 

仕事を割り振られた人がせっかくアウトプットをしたのに、仕事を割り振った人は「本当は〜をして欲しかったのに。使えない」というような状況になってしまいます。

 

これは両者とも確認不足・コミュニケーション不足であると考えられますので、何度も手直しが発生し、お互いイライラが積もり、不幸になってしまいます。

 

往々にして、社会人1年目は仕事を割り振られる側であることが多く、仕事を割り振る人は上司・先輩のことが多いはずです。そのため、その人たちの印象=自分の仕事の評価として、人事部門等へダイレクトに伝わってしまうことが多いです(もちろん、営業職でお客さんからの評価・数字しか見られないなど、色々あると思いますが、一旦、割愛します)。

 

ここで述べたいことは、一度「できない」みたいな印象を持たれると、挽回するのが厄介ということです。そして、いわゆる負のスパイラルに陥ってしまう可能性があることです。

 

「できない」→「(上司・先輩)あいつは使えないから、単調な業務任せよう」→「単調な雑務を割り振られる」→「つまらない」→「モチベ下がる」→最悪「ミス」になる

 

上記のようなスパイラルに陥ると本当にしんどいです。

 

モチベが下がる時に、その雰囲気というのは、上司は鋭く感じるものです(近い将来マネジメントする側になると感じると思います)。

 

上司も人間ですから仕事の振りが雑になる等、合わせ鏡の如く自分の態度と呼応することがあります。当然、僕も偉そうなことは言えませんが、相手が心開いていないとちょっと身構えてしまいます。

 

閑話休題。

 

ここで述べたかったことは、とにかく、仕事を割り振る人と割り振られる人がいる以上、その両者間でギャップを無くしましょうということです

 

【個人的な意見】ビジネスで求められるスキル

f:id:yktmmrmtoosa03:20210922133844p:plain

「結論」から話すこと

よくビジネス書に書かれていることですが、「結論」から話すことは重要なスキルだなと感じます。

 

基本的に、上司・お客さんは、社会人1年目から見える以上に忙しいはずです。

そのような忙しい人たちに少しでも伝わるように工夫する必要があります。

そのため、結論から話すというのは、身に付けた方が良いスキルですね。

 

ただし、この「結論」から話すことの難しさは、一度、最後まで思考する必要があるということです。考えながら話すのとは異なるため、自分なりの結論を出し切ってからではないとできません。

 

仮説思考ように思考法があるので、それらの本を読みトレーニングすると良いです。

 

またテクニックとしては、「ちょっと1〜2分ほど考えさせてください」みたいにその場で少し回答を待ってもらう方法もあります。相手や状況を鑑みて使い分けるのがおすすめです。

 

【補足】

ところで、ビジネスから離れた日常でも「結論」から話したほうがよい、みたいなことを言われることがありますが、個人的には好きではありません。

 

何でもかんでも結論から話せばいいわけではなく、相手や状況を鑑みて、対話の中でフワッと結論を出すことも重要ですよね(特に恋人との会話のこと!!!)。

 

あと、このようなダラダラのブログとか・・・

感情論と理論を使い分けること

よくビジネス本では「理論」で語りなさいと言われます。

もちろん、それは否定しませんし、基本的には数字、理論を優先させればよいと思います。。。

 

しかし、感情論を使う場面があります。

 

例えば、個人的な経験上、お客さんを最後に説得するのは理論(ロジック)ではなく、感情面(人柄とか)だったということもありました。

「〇〇さんの言うことだから(仕事)依頼するよー」などロジックだけでない部分でお仕事をもらったこともあります。

 

要するに、感情論も理論(ロジック)は、状況や人等によって使い分けることができるように訓練する必要があると考えます。

 

そうなると、その場・状況・人等を見極めて、感情論と理論(ロジック)を自由自在に使い分ける・併せることができるスキルが必要です。

 

「では、どのように使い分ける・併せるような訓練をすれば良いのか」

 

正直、経験的なところでしか補えない部分かなと感じます。

 

これは業界や説得する人或は相手の特性等、色々と関係するため、具体的にここで述べることが難しいため、試行錯誤していくしかないかなと感じます(に、逃げているわけでありません)。

 

ちょっとしたコーディングはできた方がいいこと

ちょっとしたコードを書いて試すことは、文系、営業職、事務職であろうが関係なく必要なスキルだと思います。

 

現在、ローコードのサービスが増えているため、直接的にコーディングのスキルが必要ではなくなりつつあります。とは言っても、そのようなサービスを使用したからといって、自分の仕事を必ずしも最適化できるわけではありません。

 

そのため、やはり日々の事務の効率化や雑務をこなすためには、簡単なコーディングでデータ整理やファイル処理等にて、最適化できるようになった方がいいと感じます。

 

僕はベンチャー、大企業どちらも経験しているのですが、どちらもやはりまだまだ自動化できていない無駄な作業があると感じました。そのため、自分の日々の業務を改善していくためには、自分でオリジナルでコーディングした方が早いことが多々あります。

 

そのような時に、ちょっとコードを書いて、とっとと雑務の処理をしてしまい、アイデア出し等の自分の色・クリエイティブな成果物を出せるような仕事に時間を割くことができます。

 

僕は、流行りのPythonを身に付けようと勉強している最中です。

 

どの言語を学習するかは、仕事の性質上異なると思いますが、とりあえずPythonがわかりやすい言語だと言われるため、そこから始めるのはいかがでしょうか。

Pythonの沼にようこそ

 

 

 

課題管理表を作成すること(情報共有の大切さ)

現在だとNotionやトレロ等、タスク管理用のクラウドサービスがあるため、それらを利用できる環境であれば、それらを利用することをおすすめします。

 

一方で、時代遅れ甚だしいJTCのように社内で一切のクラウドサービスが使えない環境の場合は、excel等で作ることをお勧めします。

 

目的は、チーム内の見える化とモチベの維持、成果物の可視化のためです。

 

誰が何をどのようなタスクとして、いつまでに終わらせるのか等、仕事全体の動きと関連性がわからないと、自分の次の動きがとりようがありません(全体と部分を対比しないと改善案を考えることもできません)。

 

そのため、まずはそれぞれの人が持っている情報を共有する場(システム・仕組み)を作る、あるいは作らなくても朝会、チャット等で情報交換や整理しておくことをお勧めします(部以上のレベルでも行った方がいいですが、まあ一般職等の場合は難しいんでしょうね)。

 

ちなみに最近の流行りとしては、アジャイル開発的な手法・方法があります。

詳細はググっていただきたいのですが、短期的に区切って、開発するようなイメージですね。それをマネジメントでも使用していくような感じです。

価値観描いて(チームに)共有して、(カスタマー)ジャーニーマップ作って、インセプションデッキ作って、バックログ構築、更新しながら、バーンダウンチャートで可視化して〜みたいな感じですね。

 

【補足】

ところで、仕事を割り振る側が間違っていることが往々にしてあります。

 

ビジネスにおける「間違っている」・「正しさ」とは何かという定義はさておき、仕事を割り振る側が「イケていないよね」という場面があり、仕事を振られる側で指摘しないと「この仕事は逆に非効率だよね」ということがあります。

 

また、そのような時に限って、往々にしてわからない単語やあやふやな意味で用いている言葉と出逢います。その際のおすすめとしては、どのような意味で使っているのか直接確認した方が良いです。

 

フワッとした意味合いで話を進めていき、結局どこかで辻褄が合わなくなることがあります。

例えば上司から「社員に〇〇を知らせて」と割り振られる場合に、その「社員」は「正社員」のみを指しており「派遣さん」を含めているかわからないなど、曖昧な振られ方をされたりします。

そのため、その都度バックグラウンドを含めて、「何を言っているのか」「どんな意味で使っているのか」、腑に落ちるまで確認することをお勧めします。

 

要するに、疑問を呈することや状況の確認のためにも、情報共有の大切さ(可視化)があると個人的には思います(当たり前だろなどと言わないでください。すみません)。

 

Notion - notes, docs, tasks

Notion - notes, docs, tasks

  • Notion Labs, Incorporated
  • 仕事効率化
  • 無料

 

Trello

Trello

  • Trello, Inc.
  • ビジネス
  • 無料

 

コストを考えること

これは、自分自身にかけられている教育コストもそうですが、仕事の価値を測るということですね。

 

例えば、Aという資料は誰のどのような課題を解決するために作り、その資料によって生み出される価値はどのくらいなのか、ということを漠然とでもいいので、考えると良いと思います。

 

簡単に言い換えると、「生産性」という言葉がいいかもしれません。

 

生産性=成果物(アウトプット)÷投入(インプット)

 

上記は生産性の式と言われるものですが、自分なりに計算式を立てて、自分の価値はこれくらい生み出している、ということが日々意識できると、自然と仕事の質を意識できます。

 

例えば、営業職であれば、お客さんからの依頼件数等があるので、単価等わかりやすいかもしれませんが、事務系だと自分の価値がわかりにくいため、自分なりの生産性の式を作ると良いと感じます。

 

また、日々、生産性というか、自分の仕事の価値を測るような意識を持つメリットがあります。

 

そう、それは考課の際にもアピールできることです!

 

これは重要です!ボーナスに直結しますから!笑

 

閑話休題

 

いずれにしても、仕事の価値を測ることとコスト削減の考え方を抑えると、仕事が楽しくなりますので、お勧めです(仕事に楽しさを求めていない人もいると思いますが、わかりやすい目標数値を立てることでゲーミフィケーションの観点で良いかなと感じてますので、ここではコストを考えることをご紹介しました)。

 

【おまけ】社会人1年目におすすめの本

社会人1年目に読んでよかった本を紹介します。

コンサル一年目が学ぶこと

コンサル一年目が学ぶこと

  • 作者:大石哲之
  • ディスカヴァー・トゥエンティワン
Amazon

 

 

 

おわりに

個人的に、社会人1年目に知ったことや知っておけばよかったことをつらつらと書きました。

 

なお社内政治的なお話や仕事の仕組み化、雰囲気や文化的なこと等は会社によって異なると思われるため、割愛していますのでご了承ください。

 

少しでも、迷走している社会人1年目の方のお役に立てると幸いです。

 

【徹底レビュー】ソニー ワイヤレスヘッドホン「WH-1000XM4」【仕事・勉強・読書に超集中!】

はじめに

ソニー ワイヤレスノイズキャンセリングヘッドホン WH-1000XM4 : LDAC/Amazon Alexa搭載/Bluetooth/ハイレゾ 最大30時間連続再生 密閉型 マイク付 2020年モデル 360 Reality Audio認定モデル ブラック WH-1000XM4 BM

今回は、神ヘッドホンをレビューします。
とりあえず、「買い」の商品だと思います。

ソニーのヘッドホン「WH-1000XM4」を使用している感想です。

特に、この記事が自宅で仕事や勉強をする際に、
周囲の環境音が邪魔で邪魔で仕方がない!集中できない!という方々のお助けになること間違いなしです。


こんな人におすすめ

  • これからヘッドホンの購入を検討している人
  • 周囲の環境音をどうにかしたい人
  • 集中して勉強・仕事に取り組みたい人
  • ソニーのヘッドホンの性能について知りたい人

ソニーのワイヤレスヘッドホン「WH-1000XM4」を徹底レビュー【最強!ヘッドホン】

今回の記事では、いくつかのおすすめポイントに絞ってレビューします。

ノイズキャンセリング機能が最高の働きをしてくれる

イズキャンセリングのボタンを押すと、無になります。

今までノイズキャンセリング機能のあるヘッドホンをいくつか使用してきましたが、
このソニーのワイヤレスヘッドホン「WH-1000XM4」のノイズキャンセリング機能は、最高の働きをしてくれます。

「CUSTOM」ボタンを押すと、ノイズキャンセリング機能がオンとなり、外音に最適化した状態で雑音をシャットダウンしてくれます。

少なくとも、カフェの前を走っている環七の音が全く気にならないです。

ただし、残念ながらバイクの唸り等、完璧に無音になるというわけではないです・・・

が、ほぼ気にはならないほどに雑音が軽減されます。

これはもちろん、自宅で使用する際は、より読書、勉強、仕事に集中できる最高の環境となります!

ただ注意点は、ノイズキャンセリング機能を用いると無音です。
チャイムに気がつかないくらいに周囲の音を、一切の雑音をシャットダウンしてくれます。

そのため、仕事していたらあっという間に定時になります……というのは冗談ですが、集中して取り組むことはできますね。

くれぐれも作業に集中しすぎて、会議に遅れてしまうなどとならないようにお気をつけて!

音質が最高に綺麗

ほぼ有線のヘッドホンと変わらない、いやそれ以上の音質であると感じます。

特に今までも僕が使用していたOneOdio Pro50 というシリーズと比べたら、ソニーの「WH-1000XM4」の方が良いと感じます。

低音から中、高音域まで幅広くクリアーに聴こえてきます。

特に、低音域の重圧感が半端なく伝わってきます。

音楽鑑賞だけでなく映画鑑賞にもうってつけの音質を再現してくれているなと感じました。

また、一度だけとあるセミナーを視聴するために使用したことがあるのですが、
相手のこもった声も非常に聞き取りやすい音質で再現してくれました。

長時間でも耳が痛くならない

なんと言っても長時間ヘッドホンをしていても全く耳が痛くならないです。

まず、耳を覆うヘッドホンのクッションがめちゃくちゃふわふわしています。
弾力性がそこら辺の安物のヘッドホンとは一味違います。

次に、頭の上からの締め付け感(ヘッドバンドの調節性)が非常にフィットして、安定しています。
本体としての重量はあるのですが、装着時の嫌な重みは感じることがありません

よく安物のヘッドホンだと締め付け感と言えばいいのかわかりませんが、圧迫感のようなものを感じる時があります。
しかしながら、このソニーのヘッドホンからはそのような重みのような圧迫感(?)が全く感じられません。

そのため、勉強や会議等で集中して長時間でも着けていられることが可能です。

商品名 ソニー「WH-1000XM4」 ゼンハイザー 「HD450BT-BLACK」 オーディオテクニカ 「ATH-WS660BT BGD」
重さ 254g 238g 220g

コスパが良い(付属品の有線も含めて)


最後に、コスパの点ですが、非常に良いと感じます。
付属品には有線もついているのですが、そのようなソニーさん側の心遣いも含めて使い勝手が良いと思います。


ジェスチャーを受け取るパッド部分もしっかりと反応してくれます。
また、バッテリーの持ち非常に良いです。
余裕で終日、充電せずに過ごすことができます。

加えて最近はオフにしたままですが、誰かと話すときも声をしっかりと拾ってくれて音が止まります。
このような誰かの話し声を拾って音が止まる機能は、スピーク・トゥ・チャットと呼ばれるようです。
その機能をオンにすることで、再生中の音楽が自動的に止めることが可能です(下記の写真の赤線部分のボタンをオンにすることで使用できます)。


注意点

やはり、ワイヤレスということなので、雑多な人混みだとプツプツと音が切れる時があります。
しかしながら、ヘッドホン自体のソフトウェアが更新されているようなので、そのような音切れの問題も今後改善されていくのではないでしょうか。

そもそも、音切れが気になるならば有線にするという選択肢一択かもと個人的には思いますが。。。

余談:ちょっと高いかも・・・の人には、audio-technica「ATH-WS660BT BGD」

こちらは、1万弱でかなりコスパ良いですね。

おわりに

このレビューがヘッドホンの購入を検討している人の助けになることができれば幸いです。
ぜひこのヘッドホンで最高に集中できる環境づくりをしてみてください。

【python】とにかく強制的にアイデアを創り出したい!ランダムに単語を選び出すプログラムを考えてみた

はじめに

f:id:yktmmrmtoosa03:20220112185442p:plain

 

非エンジニアのpython初心者が、頑張ってPySimpleGUIを用いて単語を選び出すプログラムを作ってみました。

 

メンターがいないためここら辺が自分の限界かなとおもう今日この頃ですが、とりあえずめげずにコードを書きまくるという思いで作りました(笑)

 

 こんな人におすすめ 

  • python初心者
  • アイデアを強制的に引き出したい人
  • オリジナルの単語を作りたい人

 

 

どのようなプログラムを作ったのか

f:id:yktmmrmtoosa03:20220112190454j:plain

はじめて作成したアプリ

あらかじめ複数の単語を記したテキストファイルを用意しておきます。そのテキストファイルを読み込むことで、単語をランダムに選び出し、画面に選び出した単語を表示するというプログラムとなります。

 

そのため、例えば、整っていない状態の文章から形態素解析をして、そこから重みをつけて、類義語、対義語等を踏まえて、単語を生成するなどというたいそうな機能は付いていませんのでご理解いただければ幸いです。

 

用意するテキストファイルについて

f:id:yktmmrmtoosa03:20220112192451j:plain

あらかじめ用意するテキストファイル。単語が記載されている。

あらかじめ用意するテキストファイルには、単語を列挙し保存しておきます。その際、単語を左端に寄せて、改行で単語を並べておきます。

 

一応、テキストファイルにスペースがあれば、そのテキストファイルを読み込んだあとである程度整形するためのコードも書いてはいるのですが、時々、よくわからないが単語が上手く分けることができないです。

 

本来であれば、MeCab等を用いて、形態素解析して、品詞ごとに識別できるようにすればよいのでしょうが、ちょっと、今の僕には難しいため、断念しました。

 

単語を生成してみる

f:id:yktmmrmtoosa03:20220112192137j:plain

「生成」のボタンを押すと、下方に単語が表示される


テキストを選び終えると、そのテキストの存在するパスが表示されます。

そして、「生成」のボタンを押すと、単語が画面下方の「ーーー」のところに表示されます。

 

この時、2つの単語を選び出す際に、どのような挙動にするべきか非常に迷いました。

 

今回は単語をリストに入れておいて、そこからそれぞれ単語1と単語2を選びだすという方法にしました。そのため、重複して単語が選ばれてしまうことになるため、条件分岐にて、単語1と単語2が同じならば、単語2が単語1と異なるまで選び直し続けるというようにループするという処理を考えました。

 

ちょっと、それ以外、よい案がわかりませんでした。

 

エラーを吐く処理について

ちなみに、ファイルを選ばずに「生成」ボタンを押すと、ポップを表示することにしてみました。そして、「OK」ボタンを押すと強制終了するように処理しています。

 

f:id:yktmmrmtoosa03:20220112193619j:plain

エラーの処理

本来であれば、ポップアップ画面のみを閉じて、元の画面のままを残したかったのですが、条件分岐を作るときの流れがイマイチ理解できておらず、中途半端な状態になっています。

 

基本的な挙動の書き方を理解しきれていない部分があるので、勉強し直すしかなさそうだと感じています。ただし、やはり何かつくりながらではないと、退屈な文法のお勉強で終わってしまいそうなので、取り組み方は工夫しますが。。。

 

単語の生成を繰り返す

f:id:yktmmrmtoosa03:20220112195229j:plain

再度「生成」ボタンを押すと、再度単語を選び直す

 

ファイルを選択し、一度単語を生成した後に、再度単語を生成することを考えました。

この時、元の単語のどちらかを残す処理にしようかと思ったのですが、実力不足のため諦めました。

 

コード

gist7c7e1c66495e7f9c12bca9ec5e20990c

 

 

反省点

やはりプログラムが汚いのはどうにかしたいけれど、どこをどのように改善していけばよいのか。。。

 

例えば、for文のところをできるだけリスト内表記した方がよいというのは知りましたが、実際にリスト内表記にしてみたらエラー吐き出す始末。。。

 

リストから文字列への変換が必要なるのはわかったけれど、その前までの空白を削除するための処理はどう変更すればよいのか等、疑問ばかりの状態になりました。

 

また、機能面にしてもテキストファイル自体の処理を終えた後の単語の生成ももっと凝ったもの(例えば、単語に重みづけし、単語の類似度を測る等)をつくりたいけれど、そこまでいくと、たぶん、ディープラーニングあたりの知識が必要そうですよね。。。

 

そうなるとより一層、はやい処理をするための工夫も必要でしょうから、ちょっと、今の実力では太刀打ちできないですね。。。

参考文献

 

 

 

 

おわりに

とりあえず、コツコツ勉強しながら、具現化する力を養っていくしかない!!!

【python】プログラミング初心者がデータ加工の練習として知財データの可視化を試みた

はじめに

f:id:yktmmrmtoosa03:20210922133844p:plain

 

最近、データ分析に興味があるため、今回は企業分析も兼ねてとある企業の特許出願について分析をしてみました。

 

僕は非エンジニアのしがない会社員であり、プログラミング初心者であるため、あたたかな目でお読みいただければ幸いです。

 

 こんな人におすすめ 

  • Pythonで特許データを加工したい人
  • Python初心者の人
  • 企業の研究傾向を知りたい人

 

特許データをどこから持ってくるか

公開されている特許データについては、様々な方法で得ることができる様です。その中でも、お金を掛けずにJplat-patから取得するという方法があります。

 

今回は、Jplat-patを利用しました。なお、ググると、ぼくのように特許データをお金をかけずに集めようとする方がいましたので、こちらの記事も参考にしました。

【特許分析】Pythonでお金を掛けずにパテントマップを作ってみた - Qiita

 

ただし、結局上記に書かれている方法で真似て加工しても勉強にならないと考えたため、やり方を変えて、一からデータを集めるところから考えました。

 

大まかな方針

まず、Jplat-patから集めることは集めますが、上記のサイトのようにhtmlとして保存するのではなく「一覧印刷」を「選択」して、直接手作業でエクセルに張り付け、保存することにしました。

 

次に、保存したエクセルを読み込んで加工、分析、可視化という流れにしました。

 

もちろん、htmlに出力する方がスマートですが、ちょっとそこは別の方法で強行突破してしまいました。本当はスクレイピングをしたいところですが、それは禁止されているため諦めました。

 

また、今回は特定の企業について知りたいため、そこまでの件数がないという前提ですので、この方法でも問題ないかなと思っていました。

 

行ったこと

Jplat-patからデータを集める

まず、Jplat-patで今回調べたい企業について、ググりました。

そう、僕が知りたいのは、OPTiMさんの特許戦略なので、「出願人/権利者/著者所属」に「オプティム」と追加で「出願人/権利者住所」に「佐賀」を選択することで検索しました。

 

f:id:yktmmrmtoosa03:20220110003241p:plain

jplat-patの検索画面

 

この時にはじめ、オプティムだけで調べると、関係ない会社も含まれてしまっていたため、住所も加えて検索を試みました。

 

その際に初めて知ったのですが、OPTiMは佐賀に登記しているみたいですね。

f:id:yktmmrmtoosa03:20220110003543p:plain

一覧印刷ボタンの場所

 

f:id:yktmmrmtoosa03:20220110003901p:plain

一覧印刷の表示画面

一覧印刷のボタンを押すと、「一覧印刷」の画面へとランディングします。そこで、これらの表示された結果を選択して、下まで範囲選択しました。

 

次に、エクセルにその選択した結果を貼り付けます。

f:id:yktmmrmtoosa03:20220110004712p:plain

エクセルに張り付けた

ここでデータが集まりましたので、とりあえずはよしとします。

最終的に筆頭のFIが分かればいいので、「他」のところはちょっと無視をすることに決めました。

 

エクセルに張り付けたデータの加工を試みる

まず、Jupyter notebook上にてデータを読み込みました。

以下が出力結果となります。

 

gistf62ed5b8097ee9def7501c6cf9251c0a

 

エクセルに張り付けた時点で気が付いてはいましたが、同じ特許に付与されている複数のFIのところがやはり複数行に渡ってしまっており、このままでは困りました。

 

しかし、上述で述べた通り、とりあえず、今回はFIを細かく分析するということは主眼においていないので、強行突破として、NaN部分を含む行を取っ払ってしまうことにしました。

 

gistf0f718d1232935e5c3647d2fd04c298f

 

そして、次に、出願日のところを加工していきます。日という細かな単位は必要なさそうなので、出願年だけを取り出していきました。

 

可視化を試みる

ここまでで、とりあえず出願の推移を時系列にまとめることができそうなので、可視化をしました。

 

可視化のために使用しているのは、plotlyにしました。僕の中で今もっともあついライブラリーであり、綺麗なグラフを作成できるので好きです。

 

f:id:yktmmrmtoosa03:20220110010943p:plain

OPTiMの国内特許出願の推移

次に、筆頭のFIを取り出して行こうと思います。

FIのタームの分類とかは正直すべて理解しきれていない部分もあるのですが、とりあえず、メイングループを取り出していきました。

 

gist1f434f0203b25e7683a702cbbd8fba11

 

うまくFIの部分をもとのデータに結合するところまでいっきに進めました。

 

ここからは、FIの可視化をしていきます。

まずは、FIの付与されている合計値が高いものからソートして棒グラフで可視化しました。

 

f:id:yktmmrmtoosa03:20220110031137p:plain

付与数の多いFIトップ10

 

やはり、プログラムに関する技術が強みのようですね。

 

まあ、そんなことは会社のHPを読めばはやいんでしょうが、ここはPythonの勉強という建前上、細かいことは気にしないでいきます(笑)

 

次に、上記の付与数の多さが直ちに会社にとって重要な技術とイコールだとは限らないため、出願年も合わせてわかるような可視化を色々と試してみました。

 

f:id:yktmmrmtoosa03:20220110031624p:plain

可視化の試み1

まず、棒グラフで引き続き可視化してみました。

プログラムに関する技術はやはりコンスタントに出願していることが把握できそうです。

 

f:id:yktmmrmtoosa03:20220110031713p:plain

可視化の試み2

次に、散布図的な表現を試みました。

これは、縦軸にFI、横軸に特許番号を並べてみました。

その上で、それぞれの軸の値が大きいものを基準にソートしています。

 

ここで行いたかったのは、出願年が変化することに強みとなる技術が変化しているのかどうかを把握したかったという意図がありました。

 

正直、どのように可視化すればよいのか判然としないため、とりあえずこれで良しとしました。

 

ここにきて、衝撃の事実が判明!

Jplat-patには、「分類コードランキング」なる機能が実装されていることをいまさらながら気が付きました(笑)

 

おい、まじですか、という感じですね。

 

表示結果のファイルの出力は、一気に数百件などできないという仕様なのに、なぜにここに集計機能を設けているのか。。。

 

よくみると、筆頭だけでなくすべての付与されているFIの数をカウントしているようなので、こちらを可視化した方がより正確であると思いましたが、精根尽き果てたため、断念。

 

とりあえず、いつの日かのために先ほどと同じようにエクセルにコピペし保存しておきました。

f:id:yktmmrmtoosa03:20220110034623p:plain

fiの解説

 

商標のデータを可視化する

次に、特許の時と同様に商標のデータをコピペしてきます。

検索式も特許と同様に「出願人/権利者/名義人」に会社名、「出願人/権利者/名義人住所」に登記されている場所を指定して検索しました。

 

あとは特許のときと同じような処理を繰り返しましたのでここでは省略します。

 

f:id:yktmmrmtoosa03:20220110040144p:plain

商標出願の推移

 

OPTiMが東証一部に上場したのが2015年らしいのですが、やはりその前後で一気にサービス名や商品名を表示する商標の出願が増加しています!

 

特許の時もそうですが、やはり爆発的に伸びる会社はその前後で特許や商標へお金をかけることができるようになるのですね

 

また面白いのが、特許の出願数が減るのに呼応するかのように、2015~2018年くらいの商標の出願数も落ち込んでいるような印象が見受けられます。

 

サービスの過渡期というか、方向転換でもあったのでしょうかね。

 

参考文献

おわりに

pythonの使い手におれはなる!