パソコンは業務遂行のための道具としてすっかり定着しました。書類の作成,コミュニケーション,業務管理,データ分析など,何をするにも欠かせないツールです。しかし当たり前の話ですが,パソコンを用いた業務は使用するソフトウェアに依存してしまいます。
一般的な業務であれば,それを支援する機能がソフトウェアに組み込まれています。そのため,これまでは既存のソフトウェアを十分に活用して業務を遂行する能力が重宝されました。しかし業務量が増加し,多様な成果も求められる現代において,既存の機能を活用するだけでは不十分です。また,機能拡張するにも金銭的コストが必要となります。
ではどうすればよいのでしょうか。自分でプログラムを書いて,ツールを作ってしまえばよいのです。幸いにして現在は,理解しやすいプログラミング言語が増え,開発に必要な情報は書籍やインターネット上にあふれるほど公開されており,誰かが作成したプログラムを参考にできる環境が整っています。
プログラミングの技術は,情報を扱うインフォプロの業務を効率化・高度化する上で極めて役立ちます。高度なデータ処理を行い個々の情報要求に合うサービスを提供したり,大量の単純作業を短時間でヒューマンエラー無く処理したりすることができます。また,検索サービスを含む様々なシステムの特性を理解したり,発注するシステムの仕様を検討する際にも有用です。
しかしながらプログラミングは一般的に行われておりません。そこで本号は,皆様のプログラミングに対するハードルを下げ,実際にプログラムを書くきっかけとなる特集を目指しました。具体的には,インフォプロが実際に作成したプログラムの事例とその解説を中心に構成しております。
まずはプログラミングのススメとして,前田朗氏(東京大学)にご自身の経験を踏まえてプログラミングのメリットをご紹介頂きました。次に,兼宗進氏(大阪電気通信大学)にプログラム一般に共通する基礎的な概念を,Tokyo.R運営チームの方々にテキスト分析の入門的な方法をご解説頂きました。その後,新出氏(富谷市図書館)および高久雅生氏(筑波大学)には図書館業務を対象に,西尾啓氏(株式会社エンライトオン)および安藤俊幸氏(アジア特許情報研究会)には特許調査関連業務を対象に,ご自身が作成したプログラムとその解説を中心に,それぞれ記事を執筆して頂きました。実際に手を動かすことを考慮して頂いたり,業務におけるプログラミングの考え方をご紹介頂いたり等,自身で作成したプログラムを業務で活用してきた皆様の知見を盛り込んだ,充実した内容となっております。
本特集が,皆様がプログラミングに着手するきっかけとなれば幸いです。折しも2020年度から小学校でプログラミング教育が必修となります。このタイミングに我々もプログラミングを始めてみませんか。
(会誌編集担当委員:今満亨崇(主査),炭山宜也,南山泰之,野村紀匡)
本稿では筆者の経験を事例として示しつつ,インフォプロを対象に仕事でのプログラミングへの向き合いかたを提示する。プログラミングができることで,仕事における課題をコンピュータにより解決すべく取り組んでいける。副次的に身につくプログラミング的思考は,自らが情報システムのありかたを考えるにあたり助けになる。プログラミングは必ずしも難しくなく,簡単なプログラミングであっても,仕事の課題を解決していけることも多い。プログラミング自体に楽しみを見出すことも,周囲やベンダーとのコミュニケーションに役立てることもできる。
プログラミングの基礎的な考え方を解説する。言語はPythonを使用し,Google Colaboratoryによるブラウザでの実習を紹介した。制御構造の説明にはフローチャートを使用し,プログラムの例を示しながら意味を説明した。プログラミングの学習過程で初心者がつまずきやすい制御構造の入れ子構造,配列やリスト,関数の定義についても例を示しながら解説を行った。
テキスト分析とは,文字として符号化された筆者の意図を定量的な手法により逆符号化するプロセスである。特に大量のデータを用い,その内部に潜む構造や背後にあるアルゴリズムを統計的に推定する手法が盛んに研究され,多くのプログラミング言語において実装が進んでいる。その中でもR言語はプログラミング初心者でも見通しよく解析プロセスを進めることができるため入門に適している。そこで本稿ではテキスト分析初心者に向けた,本格的な分析に挑む前に知っておくべき統計的な基礎知識・基本的な分析環境の構築法・小規模データによる解析の具体事例をハンズオン形式でまとめた。
中小規模の公共図書館では,図書館業務に必要なプログラムや新たなWebサービスを開発するための予算確保が困難なことが多く,図書館員がプログラミングスキルを身につけることで業務の効率化やサービスの向上を図ることができる。一方,プログラミングスキルを持った職員の組織的育成は困難な場合も多く,作成したプログラムのメンテナンス等が属人的となりがちな限界もある。実際に作成したプログラムを解説しながら,初歩的なプログラミングの効用について説明する。
本稿では図書館業務に関連するプログラムツールの開発事例を紹介し,それらのツール開発にかかわる要素を解説する。これまで筆者が開発してきたツールの事例として,PDFチェックツール「pdf-checker」,junii2メタデータ検証ツール「JuNii2 Validator」,Linked Open Data(RDF/Turtle)公開用ツール「ttl2html」などを取り上げ,それらのツールが内在する業務ニーズや開発動機,問題解決のために設定した業務フローの設計,ツールの入出力形式やユーザインタフェース,作業環境や代替ツールや代替手段といった関連する諸要素について解説する。
最近,特許分析の比重が高まり,かつ扱うデータの量と種類が多くなっているのを実感している。それに伴い,使うツールもエクセルやパテントマップ作成ソフトから,Pythonといったプログラミング言語に移る必要が出てきた。これらのツールは高速にデータを処理でき,自動化に役立つだけでなく,毎回の手作業を排除することができ,分析の再現性,信頼性を高めることができる。そのため,今回はデータ分析によく用いられるプログラミング言語である「Python」,特にその中のデータ分析ライブラリである「pandas」を用いた特許データの処理(前処理,集計,可視化)について紹介する。
特許等の調査業務にプログラミングを活用することで調査効率(精度)や網羅性(再現率)の向上が期待できる。本報ではDoc2Vecを用いて調査対象の特許文書集合を学習し,文書・単語ベクトルを求め,指定文書・単語に対し類似度の高い文書・単語を表示する手順を紹介する。文書ベクトルを次元圧縮して2次元表示して特許群の俯瞰可視化によるパテントマップ化も可能である。最近では有用なプログラミングライブラリがフリーで公開されていることも多くこれらのライブラリを使うと意外に簡単に各種調査業務の効率化が可能となる。プログラミングは参考になるサンプルプログラムを探してそれを改良するのが早道である。自分でできる特許調査のための一連のプログラムを説明する。
特許出願を戦略的に行っていると考えられる中小企業を対象に当該企業により形成された特許出願網が同業他社にどのような影響を与えているかを検討した。具体的には介護入浴装置業界のマーケットリーダーであるO社を分析対象とした。O社を含む主要3社は介護入浴装置市場において市場シェアを伸ばし,現在では寡占市場を形成している。このような状況を形成する上でO社の特許出願網が市場シェアの獲得に寄与していると仮定し,O社の出願戦略を出願件数,推移,出願時期,内容等から推定すると共に,競合する他2社の出願の権利化阻止に寄与しているか等を確認した。その上で,O社の出願の特徴及び知財戦略の関係について考察した。