PyCon JP 2022

Your locale preferences have been saved. We like to think that we have excellent support for English in pretalx, but if you encounter issues or errors, please contact us!

Python ライブラリ開発における失敗談 〜開発者に選ばれるライブラリを作るために必要なこと〜
2022-10-14 , pyconjp_5
Language: 日本語

私は、これまで自然言語処理に関連する Python ライブラリをオープンソースのソフトウェアとして公開してきました。その中で、どうすればライブラリを開発者に利用してもらえるか、どのようなライブラリが開発者に必要とされるか、常に考えながら開発を続けてきました。

そこで、今後の Python ライブラリ開発の参考になることを目的とし、工夫してライブラリの利用者が増えたこと、逆に失敗して利用者を減らしてしまったことを経験談としてお伝えしたいと思います。

また、実際に開発者に利用されている Python ライブラリを、自然言語処理関連のライブラリを中心に調査し、開発者に選ばれるライブラリにはどのような特徴があるか分析した結果もあわせてお伝えしたいと思います。

資料:https://speakerdeck.com/taishii/pycon-jp-2022


私は、これまで自然言語処理に関連する Python ライブラリをオープンソースのソフトウェアとして公開してきました。その中で、どうすればライブラリを開発者に利用してもらえるか、どのようなライブラリが開発者に必要とされるか、常に考えながら開発を続けてきました。

工夫してライブラリの利用者が増えたこと、逆に失敗して利用者を減らしてしまったことが多くあります。例えば、PyCon JP に参加することでライブラリの利用者が増え、その利用者の意見を参考にライブラリを改善することができました。逆に、Python ライブラリの管理不足(具体的には Wheel の管理不足)で利用者を減らしてしまうこともありました。

ライブラリ開発の成功談は多く話題となりますが、失敗談はめったに表に出ることはありません。そこで、一定の利用者がいるオープンソースライブラリの開発者として、実際の失敗談を共有したいと思います。私の失敗談を共有することで、ソフトウェアエンジニアや研究者の方々の、今後のライブラリ開発の参考になればと考えています。

さらに、実際に開発者に利用されている Python ライブラリを、自然言語処理関連のライブラリを中心に調査し、開発者に選ばれるライブラリにはどのような特徴があるか分析した結果もあわせてお伝えしたいと思います。今回のトークでは、私の実体験に関する内容だけでなく、定量的に分析した実際の数字を踏まえつつ、両方の側面で内容をお伝えしたいと思います。

タイムライン

導入(2分)

  • 自己紹介
  • 本トークの概要と目的説明

言語処理ライブラリ nagisa の紹介(5分)

  • nagisa とは?
  • nagisa の利点
  • 類似ライブラリと比較したユーザー数の違い

開発者にライブラリを利用してもらうために工夫したこと(6分)

  • PyCon JP 2018 ポスター発表への参加
  • ユーザーの声を参考に機能を追加
  • PyCon JP 2019 のトーク発表に参加
  • ライブラリの実利用性を向上するための工夫
  • 工夫による効果のまとめ

ライブラリ開発において改善すべきだったこと(6分)

  • 解析速度の改善
  • 実利用を最優先にすべきだった
  • 大規模言語モデルへの対応遅れ
  • nagisa_bert の紹介
  • 開発者ファーストの徹底不足

開発者に選ばれるライブラリの分析(10分)

  • 他の言語処理ライブラリと nagisa の比較
  • awesome-japanese-nlp-resources の紹介
  • 比較対象の言語処理ライブラリの詳細
  • 最も利用されている言語処理ライブラリ
  • 1ヶ月単位で最も利用されたライブラリ
  • その他のライブラリの利用状況
  • 開発者に利用される言語処理ライブラリの傾向
  • nagisa に必要だったこと
  • これからライブラリを作るのであれば

まとめ(1分)

  • 開発者に選ばれるライブラリとは

資料:https://speakerdeck.com/taishii/pycon-jp-2022

See also: 発表資料 (1.3 MB)

自然言語処理に関連するソフトウェアをオープンソースで開発しています!

アカウント

過去の PyCon JP 発表経験

  • PyCon JP 2018 - NLP(自然言語処理)初心者のための単語分割/品詞タグ付けツールの紹介
  • PyCon JP 2019 - Python による日本語自然言語処理 〜系列ラベリングによる実世界テキスト分析〜
  • PyCon JP 2020 - 最先端自然言語処理ライブラリの最適な選択と有用な利用方法