# Pythonの進化 ## こえどLUG 報告 Hiroshi Miura 8, May, 2021 slide https://hackmd.io/@miurahr/B1_KeiQOO --- ## 近況(1/2) - 昇降式の机と、バランス式スタンディングチェアを導入 - Pythonプロジェクトのベンチマーク、性能向上 - 2021.4末で、Java系の配布サイト JCenter/BinTrayが終了するのにあわせて, OSSRH Maven Centralに、いろんなプロジェクトを移行する --- ## 近況(2/2) - Conoha 昔バージョンのサービス終了 →移行 - マイクラフトのサーバをConohaにたちあげ - OSSなゲームをためす - OpenTTD 鉄道をひく都市Simulatorゲーム - SuperTuxKart マリオカート的な独自進化中 - Ryzen 7 を採用したThinkPadの動作不良への対応 --- # メインPC - ThnkPad T14s(AMD) Gen1 - Ryzen 7 PRO 16 core - 32GB MEM - 暗号化対応SSD - Mint Linux 20.1で利用中 - Kernel 5.11.16 - Firmwareも最新化 - TLP というバッテリツールの活用 --- ## TLP ![](https://i.imgur.com/90kxQjF.png) --- ## --- # PyKAKASIプロジェクト --- ## PyKAKASIとは - KAKASI: 日本語の漢字仮名交じり文を平仮名やローマ字綴りの文に変換するプログラム - 1994年ころに発表され、2000年以降は開発停止している - Pythonで実装したものが、PyKAKASIで 2010年から開発、公開している - 最近、ガイジンさんからの貢献がおおくて、開発が活発に継続中 --- ## 最近の話題 - 性能向上(v2.1.0, 2021.5.3リリース) - 辞書アクセスの変更と、内部のcache化 --- ## Before ![](https://i.imgur.com/NugYsi7.png) --- ## After ![](https://i.imgur.com/HyEcnc3.png) --- ## 成果 # 30-40倍速に --- # その他の話題 - 「オレンジ色」 が 「おれんじ」 と 「しょく」 になる - 有名な Mecabでも、だめ らしい - うまく変換できるようにする方法を開発中 - とりあえず「オレンジ色」「レモン色」に対応してみた(昨日) - 辞書before - いろ 色 - 辞書after - いろ 色 オレンジ レモン --- # その他の話題 - UniDicの利用化(本日着手) - UniDic: https://unidic.ninjal.ac.jp/ - 国立国語研究所が公開する辞書やデータベース - 形態素解析器MeCab用の解析用辞書など - KAKASI辞書 **3MB**に対し、**200MB** をこえる辞書サイズ --- # PyPPMdプロジェクトの紹介 --- ## PPM - Prediction by Partial Matching(PPM) - 1984年考案の圧縮アルゴリズム - PPMd は、バリエーションの一つ - RARや7zなどに採用されている - Cで実装されたアルゴリズムをPythonから高速につかえるライブラリ - テキストは原文の10%-20%程度に高圧縮可能 - 速度はLZMAよりちょっと速い --- ## 公開中(ReadTheDocs site, Github) https://pyppmd.rtd.io/ ![](https://i.imgur.com/iXgJMx3.png) --- ## 利用 - 7zip実装のPy7zrで、アルゴリズムサポートのために利用 - 一般の開発者むけに、クラスを提供 - コマンドラインは提供なし --- # py7zrプロジェクトでベンチマーク --- ## py7zr: Pure Pythonでかいた 7-zip圧縮フォーマットサポート - 7-zipの圧縮、解凍が可能 - 7-zipは複数のアルゴリズムをサポート - プロプラ以外のアルゴリズムをすべてサポート - 暗号化、復号化も可能 - 独自拡張 - Facebookが開発した ZStandardアルゴリズム - Google が開発した Brotli アルゴリズム --- ## pytest-benchmark モジュールを利用 - 自動的にベンチマーク結果をIssueコメント投稿する仕組みを作成 - Image>> ![](https://i.imgur.com/hvl4h9E.png) --- ## 性能比較 py7zrプロジェクトでの性能比較 ![](https://github.com/miurahr/py7zr/wiki/images/compression_ratio_speed_chart.png) --- # まとめ - 在宅勤務および長期休暇のため、OSSの開発がはかどっています。 - 新型コロナのため、コントリビューションもたくさんきます。 - Happy Hacking
{"metaMigratedAt":"2023-06-16T00:06:51.495Z","metaMigratedFrom":"YAML","title":"Koedolug 20210508","breaks":true,"description":"View the slide with \"Slide Mode\".","contributors":"[{\"id\":\"a39fef58-9b07-42cd-973a-4a7e5bdc85cf\",\"add\":2925,\"del\":1716}]"}
    482 views