top of page

技術のつながりをchord diagram で

1.はじめに

  • 技術分野(特許分類=IPC)のつながりをマクロに把握したいなと思い検討しました。

  • plotapiというchord diagramを作成するAPIを契約し(年間11,000円くらい)、これを使って見てみることに。



2.BigQueryで共起データ作成

  • まずはIPCのつながりを把握するために毎度おなじみのGoogle Patents Public Datasetsを使ってIPCの共起データを作成。] 2000年以降の出願に絞り込みます。IPCは4桁(メイングループ)を利用します。


with rtable as (
  SELECT family_id as rappnum, SUBSTR(ipcs.code,0,4) as rcode
  FROM `patents-public-data.patents.publications_202101` ,
  UNNEST(ipc) as ipcs
  WHERE filing_date >= 20000101
  GROUP BY rappnum,rcode
),
ltable as (
  SELECT family_id as lappnum, SUBSTR(ipcs.code,0,4) as lcode
  FROM `patents-public-data.patents.publications_202101` ,
  UNNEST(ipc) as ipcs
  WHERE filing_date >= 20000101
  GROUP BY lappnum,lcode
),
cotable as (
  SELECT lappnum,rappnum,lcode,rcode 
  FROM ltable
  join rtable
  ON lappnum = rappnum 
)
SELECT lcode,rcode,COUNT(*) as count
FROM cotable
WHERE lcode != rcode
GROUP BY lcode,rcode

  • 25万件(つながり)ほど抽出。これをcsvで吐き出しておきます。




3 可視化

  • matrixのデータ(df.values.tolist()で2重配列にしたやつ)+ラベル用の配列が最低限必要です。

  • IPC4桁でも1000分野あり全部可視化しきれないため、共起の頻度で10000回以上共起している技術分野同士に絞り込みます。


edges = pd.read_csv("~~吐き出したcsv~~.csv")
matrix = edges[edges['count']>=10000].pivot_table(index='lcode',columns='rcode',values='count',fill_value=0)
matrix2 = matrix.values.tolist()
names = matrix.index.tolist()

  • matrixはこんな形に


 ⇓これを実行すれば出力されます。

Chord(matrix2,names,font_size_large="7px").show()



  • ハイライトしたところ



4.技術つながりを見る

  • A61K,A61Pといった医薬系が多い(同じセクションA内のつながりが多い様子だけど)



  • C07,C08(有機化学系)は上記のA61~とも太く繋がっている様子。



  • H01L(半導体)もかなりいろんなところと繋がっている。


  • H04~(通信系)はG06~(ソフトウェアなど)とのつながりがやはり強い


  • C12N(生化学)とG01N(人工知能とか)はバイオの遺伝子解析系だろう。



  • H04N(画像通信,例.テレビジョン)とB41J(タイプライタ)との繋がりは・・・プリンタ!


時系列の変化なども見れるように進化させていこうと思います。


閲覧数:8回0件のコメント

最新記事

すべて表示

Comments


bottom of page