SlideShare une entreprise Scribd logo
1  sur  75
Télécharger pour lire hors ligne
pythonで
オフィス快適化計画
PyCon APAC 2013
kzfm
自己紹介
•  kzfm (@fmkz___)
–  blog.kzfmix.com
–  Shizuoka.py
•  とある製薬企業の研究員
•  日本酒とdrum n bass好き
•  Python歴は6年くらい
–  (その前はPerl)
•  よく使うのはFlask, Pandas
内容
•  Excelでの書類入力にイライラしない☆
•  社会人としてWordとどう付き合うか?
•  ルーチンワークなスライド作成からの開放
•  xlsx,docx,pptxとは何なのだろう?
どうして社会人はExcelで書
類をつくるのか?
特に総務系のヒトの
Excel好きは異常
表計算完全無視☆Excel
h"p://toge"er.com/li/101450
論破してもムダ(-_-;)
総務のヒトと仲良くするための
Python☆
表計算がしたければ
R(Rpy2)かPandasで
一年に一度くらいのExcel申請
書は耐えられるが、
毎週とか毎日は辛い
例えば
pubmed
•  医学・生物学分野の学術文献検索サービ
ス
•  医学・生物学論文検索界のグーグル
– ないと死ぬ
欲しい文献がない場合
•  図書の係のヒトに大学図書館に出向いて
もらって複写をしてもらっていた
– ちょっと前まではpdfなんて少なかった
– Excel申請書類にコピペしてお願いする
めんどくさすぎる!
複写して欲しい論文が何十報
もあるとげんなりする
優秀な人程困る…
そこでPython☆
OpenPyXL+BioPython
•  OpenPyXL
– Excel 2007 xlsx/xlsmを読み書きする
パッケージ
•  BioPython
– PythonでBioinformatics(ゲノム配列や
タンパク質立体構造を扱う)
– PubmedのAPI(xmlが返ってくる)にも対
応
それっぽいxlsx
コード
from	
  Bio	
  import	
  Entrez,	
  Medline	
  
from	
  openpyxl	
  import	
  load_workbook	
  
Entrez.email	
  =	
  ”_____@gmail.com"	
  
handle	
  =	
  Entrez.efetch(db="pubmed",	
  id=["21982300"],	
  re"ype="medline",	
  retmode="text")	
  
records	
  =	
  Medline.parse(handle)	
  
record	
  =	
  list(records)[0]	
  
wb	
  =	
  load_workbook('ref_cp.xlsx')	
  
ws	
  =	
  wb.get_acSve_sheet()	
  
ws.cell('B1').value	
  =	
  record.get("JT",	
  "")	
  
ws.cell('B2').value	
  =	
  record.get("VI",	
  "")	
  
ws.cell('B3').value	
  =	
  record.get("PG",	
  "")	
  
ws.cell('B4').value	
  =	
  record.get("IS",	
  "")	
  
ws.cell('B5').value	
  =	
  record.get("DP",	
  "")	
  
ws.cell('B6').value	
  =	
  "	
  ".join(record.get("FAU")[:3])	
  
ws.cell('B7').value	
  =	
  record.get("TI",	
  "")	
  
wb.save('openbabel.xlsx')	
  
結果
あとはウェブサービスにしてブックマークレット用意しておけばOK
ここまでのまとめ
•  PyOpenXLを使うことで、既存の
Excelファイルをテンプレートとした入
力作業を自動化できる
•  時間の節約
•  無駄な作業からの開放
他にPythonでExcelを扱う
モジュール
XlsxWriter
•  https://github.com/jmcnamara/
XlsxWriter
•  PerlのExcel::Writer::XLSXのポート
•  xlsxファイルの書き込みのみサポート
•  既存のファイルを読み込んで修正して出力
みたいなことはできない
xlrd/xlwt
•  xlrd
– Excelファイルを読む(read)
•  xlwt
– Excelファイルに書き出す(write)
•  読み書きできるので既存のExcelファイ
ルをテンプレートとして編集した後別の
ファイルに出力できる
•  古いフォーマットにも対応
社会人としてWordと
どう付き合うか?
wordで文書作成
•  報告書のようなもの
–  誰に報告したいのか?
–  報告書は再利用されるのか?
–  そもそも読まれるのか?
•  申請書類のようなもの
–  テンプレートに記入
•  原稿っぽいもの
–  章立て
–  校正、修正
wordで文書作成
•  報告書のようなもの
–  誰に報告したいのか?
–  報告書は再利用されるのか?
–  そもそも読まれるのか?
•  申請書類のようなもの
–  テンプレートに記入
•  原稿っぽいもの
–  章立て
–  校正、修正
実験レポート
•  いつ誰がどういう実験をしてどういう結果を
出したかというレポート
•  トレーサビリティ重要
–  word(doc)フォーマットでファイルを作って深
い(不快)フォルダに入れるルール
•  /部門/研究室/年度/月度/実験者/区分/id.doc
•  これは使いづらかった
–  アクセスしにくい
–  全体の把握をしにくい
–  同僚が何やっているのか全然分からん
もっと楽をしたい
•  簡単に編集したい
•  レポートを簡単に検索したい
•  webブラウザでも見たい
•  で、Wikiを使うことにした
FSWiki
•  perlで書かれ
たwikiエンジ
ン
•  タグで分類
•  XML-RPCに
対応
•  pdfで出力で
きる
FSWiki
•  報告書をpdfで
出そうとしたら
wordで出せと
•  RTF::Writer
というモジュー
ルを使ってdoc
に出力するプラ
グイン作った
docのテンプレートに埋め込む
学んだこと
•  WIKIでレポートまとめていくので編集が
容易、仕事とレポートを並行して行う
TDDっぽい仕事感が得られる(リズムが
気持ちいい)
•  レポート作成の心理的障が下がった
•  軽いバージョン管理
•  必要十分な検索機能
コンテンツと見た目の分離重要
•  コンテンツはできるだけシンプルな記法
(markdown,ReST)で持っておく
– バージョン管理システムと相性がいい
– フォーマットの変換が簡単にできるように
•  epubとかmobiとか重要度上がってるし
•  docにするとコンテンツの再利用性が下
がる(doc->docならいいけど)
– word立ち上げる時間もバカにならない
– ファイルの管理コストも(SharePoint?)
doc(x)でコンテンツを管理しな
いというスタイルに転向した
Sphinxとかよく使う
Sphinx
•  「美しいドキュメントを簡単に生成する
ことができるドキュメンテーションツー
ル」ですね!
•  pdfとかepubに出力できて便利ですが
もちろんdocxに出力する拡張もあります
sphinx-docxbuilder
•  https://bitbucket.org/haraisao/
sphinx-docxbuilder
便利( ・ิω・ิ)
Sphinxの詳細は今日の午後のセッ
ションのスライドとかSphinx-
Users.jpのサイトをご覧下さい
Sphinxをはじめよう
h"p://www.oreilly.co.jp/books/9784873116488/
python-docx
•  word2007形式のファイルの読み書き
ができる
•  xmlを直接操作するような感じ
•  個人的にはもうちょっと高レベルなAPI
のほうが嬉しいかも
コード
from	
  docx	
  import	
  *	
  
relaSonships	
  =	
  relaSonshiplist()	
  
document	
  =	
  newdocument()	
  
body	
  =	
  document.xpath('/w:document/w:body',	
  namespaces=nsprefixes)[0]	
  
body.append(heading(u"日本酒",	
  1))	
  
sake_list	
  =	
  [{"name":u"開運",	
  "image":"kaiun.jpg",	
  "desc":u"(静岡)美味い"},	
  
	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  {"name":u"庭のうぐいす",	
  "image":"uguisu.jpg",	
  "desc":u"(福岡)スパークリング"},	
  
	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  {"name":u"空木",	
  "image":"utugi.jpg",	
  "desc":u"(宮城)カップの絵柄が素敵"}]	
  
コード(続き)
for	
  sake	
  in	
  sake_list:	
  
	
  	
  	
  	
  body.append(heading(sake["name"],	
  2))	
  
	
  	
  	
  	
  body.append(paragraph(sake["desc"]))	
  
	
  	
  	
  	
  relaSonships,	
  picpara	
  =	
  picture(relaSonships,	
  sake["image"],	
  
	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  sake["name"],	
  pixelwidth=100,	
  pixelheight=100)	
  
	
  	
  	
  	
  body.append(picpara)	
  
coreprops	
  =	
  coreproperSes(Stle="sake",	
  subject="",	
  
	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  creator="kzfm",	
  keywords=[])	
  
appprops	
  =	
  appproperSes()	
  
conten"ypes	
  =	
  conten"ypes()	
  
websegngs	
  =	
  websegngs()	
  
wordrelaSonships	
  =	
  wordrelaSonships(relaSonships)	
  
savedocx(document,	
  coreprops,	
  appprops,	
  conten"ypes,	
  websegngs,	
  
	
  	
  	
  	
  	
  	
  	
  	
  	
  wordrelaSonships,	
  'sake.docx’)	
  
できること
•  段落
•  リスト
•  数字付きリスト
•  見出し
•  表
•  ページ分割
•  画像挿入
wordで文書作成
•  報告書のようなもの
–  誰に報告したいのか?
–  報告書は再利用されるのか?
–  そもそも読まれるのか?
•  申請書類のようなもの
–  テンプレートに記入
•  原稿っぽいもの
–  章立て
–  校正、修正
ルーチンワークなスライド作
成からの開放
例
•  Naverまとめから
画像を取り出して
pptxにする
–  【
新宿】ガチで美味い
ラーメン屋だけまとめ
た
python-pptx + requests
prs = Presentation()
bullet_slidelayout = prs.slidelayouts[1]
c = requests.get('http://matome.naver.jp/odai/2136205629354777701').content
urls = [x.group(1) for x in re.finditer(r'<img src="(.+)".*?class="MTMItemThumb".*?/>', c)]
for i, url in enumerate(urls, 1):
img_path = "{}.jpg".format(i)
r = requests.get(url)
if r.status_code == 200:
with open(img_path, 'w') as f:
f.write(r.content)
shapes = prs.slides.add_slide(bullet_slidelayout).shapes
shapes.placeholders[0].text = '新宿のガチで美味いラーメン ({})'.format(i)
pic = shapes.add_picture(img_path, Inches(2.1), Inches(2), Px(280 * 1.427), Px(280))
prs.save('ramen.pptx')
ガチで美味いスライド
創薬研究は様々なデータを収集
•  異なる技能をもった複数人のチームでゴールを目
指す
–  化合物合成するヒト(ケミスト)
–  効き目を実験するヒト
•  タンパク質
•  細胞
•  動物
–  体内での薬の動きをみるヒト、毒性みるヒト
•  細胞
•  動物
–  予測モデル作ったりシミュレーションしたりするヒト
•  コンピュテーショナルケミスト
–  データサイエンティスト
•  バイオインフォマティクス
•  ケモインフォマティクス
それぞれ違う人間が関わっている
XX0035	
   XX0036	
 XX0049	
 XX0088	
  
合成者	
 chemistA	
 chemitA	
 chemistB	
 chemistC	
Structure	
 
Molecular	
  weight	
  440	
 378	
 477	
 529	
AcSvity	
  10.0	
 0.99	
 0.24	
 5.5	
Stability	
   10	
 20	
 0	
 5	
logD	
  3.1	
 2.8	
 2.3	
 2.6	
Solubility	
  17	
 <1	
 36	
 42	
PAMPA	
  15	
 23	
 22	
 33	
hERG	
 5	
 3.3	
 -­‐	
 -­‐	
dGSH	
 N.D.	
 N.D.	
 -­‐	
 -­‐	
PPB	
 99.3	
 95	
 -­‐	
 -­‐	
PK	
 136	
 48	
 122	
 147	
PK	
  t1/2	
 17	
 3.7	
 5.2	
 5.2
コピペの問題
•  時間がかかる
– まとめるだけでも労力が要る
– それぞれの研究者からレポートを集めてせっ
せとコピペ作業は忙しい時には発狂する
•  ミスる
– 数字を間違えたり、入れるべきカラムを間違
えたり
– それを避けるための無駄なダブルチェック
pythonで解消
•  Python-pptx+SQLAlchemyで必要
なデータを取ってきて、表にまとめるのを
自動化できる
•  コピペからの開放☆
•  資料作成時間というムダの削減
パッケージまとめ
xlsx	
• XlsxWriter	
• xlrd/xlwt	
• OpenPyXL	
docx	
• python-­‐
docx	
pptx	
• python-­‐
pptx	
これでほとんど困らない
そもそも
xlsx pptx docx
とはなにか?
Office Open XML
•  Office Open XML (OpenXML、
OOXML) とは、XMLをベースとしたオ
フィススイート用のファイルフォーマット
である。
– http://ja.wikipedia.org/wiki/
Office_Open_XML
– ECMA標準(ECMA-376)
xmlを含むもろもろをzip圧
縮して拡張子を変えたもの
詳しく知りたいヒトは
•  仕様
– http://www.ecma-
international.org/publications/
standards/Ecma-376.htm
•  書籍
– 入門 OfficeOpen XML
例(prs1.pptx)
unzip prs1.pptx ; tree
.	
  
├──	
  [Content_Types].xml	
  
├──	
  _rels	
  
├──	
  docProps	
  
│	
  	
  	
  ├──	
  app.xml	
  
│	
  	
  	
  ├──	
  core.xml	
  
│	
  	
  	
  └──	
  thumbnail.jpeg	
  
└──	
  ppt	
  
	
  	
  	
  	
  ├──	
  _rels	
  
	
  	
  	
  	
  │	
  	
  	
  └──	
  presentaSon.xml.rels	
  
	
  	
  	
  	
  ├──	
  presProps.xml	
  
	
  	
  	
  	
  ├──	
  presentaSon.xml	
  
	
  	
  	
  	
  ├──	
  printerSegngs	
  
	
  	
  	
  	
  │	
  	
  	
  └──	
  printerSegngs1.bin	
  
	
  	
  	
  	
  ├──	
  slideLayouts	
  
	
  	
  	
  	
  │	
  	
  	
  ├──	
  _rels	
  
	
  	
  	
  	
  │	
  	
  	
  │	
  	
  	
  ├──	
  slideLayout1.xml.rels	
  
	
  	
  	
  	
  │	
  	
  	
  │	
  	
  	
  ├──	
  slideLayout10.xml.rels	
  
	
  	
  	
  	
  │	
  	
  	
  │	
  	
  	
  ├──	
  slideLayout11.xml.rels	
  
	
  	
  	
  	
  │	
  	
  	
  │	
  	
  	
  ├──	
  slideLayout2.xml.rels	
  
	
  	
  	
  	
  │	
  	
  	
  │	
  	
  	
  ├──	
  slideLayout3.xml.rels	
  
	
  	
  	
  	
  │	
  	
  	
  │	
  	
  	
  ├──	
  slideLayout4.xml.rels	
  
	
  	
  	
  	
  │	
  	
  	
  │	
  	
  	
  ├──	
  slideLayout5.xml.rels	
  
	
  	
  	
  	
  │	
  	
  	
  │	
  	
  	
  ├──	
  slideLayout6.xml.rels	
  
	
  	
  	
  	
  │	
  	
  	
  │	
  	
  	
  ├──	
  slideLayout7.xml.rels	
  
	
  	
  	
  	
  │	
  	
  	
  │	
  	
  	
  ├──	
  slideLayout8.xml.rels	
  
	
  	
  	
  	
  │	
  	
  	
  │	
  	
  	
  └──	
  slideLayout9.xml.rels	
  
	
  	
  	
  	
  │	
  	
  	
  ├──	
  slideLayout1.xml	
  
	
  	
  	
  	
  │	
  	
  	
  ├──	
  slideLayout10.xml	
  
	
  	
  	
  	
  │	
  	
  	
  ├──	
  slideLayout11.xml	
  
	
  	
  	
  	
  │	
  	
  	
  ├──	
  slideLayout2.xml	
  
	
  	
  	
  	
  │	
  	
  	
  ├──	
  slideLayout3.xml	
  
	
  	
  	
  	
  │	
  	
  	
  ├──	
  slideLayout4.xml	
  
	
  	
  	
  	
  │	
  	
  	
  ├──	
  slideLayout5.xml	
  
	
  	
  	
  	
  │	
  	
  	
  ├──	
  slideLayout6.xml	
  
	
  	
  	
  	
  │	
  	
  	
  ├──	
  slideLayout7.xml	
  
	
  	
  	
  	
  │	
  	
  	
  ├──	
  slideLayout8.xml	
  
	
  	
  	
  	
  │	
  	
  	
  └──	
  slideLayout9.xml	
  
	
  	
  	
  	
  ├──	
  slideMasters	
  
	
  	
  	
  	
  │	
  	
  	
  ├──	
  _rels	
  
	
  	
  	
  	
  │	
  	
  	
  │	
  	
  	
  └──	
  slideMaster1.xml.rels	
  
	
  	
  	
  	
  │	
  	
  	
  └──	
  slideMaster1.xml	
  
	
  	
  	
  	
  ├──	
  slides	
  
	
  	
  	
  	
  │	
  	
  	
  ├──	
  _rels	
  
	
  	
  	
  	
  │	
  	
  	
  │	
  	
  	
  └──	
  slide1.xml.rels	
  
	
  	
  	
  	
  │	
  	
  	
  └──	
  slide1.xml	
  
	
  	
  	
  	
  ├──	
  tableStyles.xml	
  
	
  	
  	
  	
  ├──	
  theme	
  
	
  	
  	
  	
  │	
  	
  	
  └──	
  theme1.xml	
  
	
  	
  	
  	
  └──	
  viewProps.xml	
  
書き換えればよろしい
$	
  zip	
  -­‐r	
  prs2.pptx	
  [Content_Types].xml	
  _rels	
  docProps	
  ppt
簡単☆
pythonでやってみる
{{title}}	
{{name}}
Torii	
  of	
  Miyajima	
  /	
  nobusue
コード
from	
  jinja2	
  import	
  Template	
  
from	
  zipfile	
  import	
  ZipFile	
  
f	
  =	
  ZipFile("template.pptx")	
  
w	
  =	
  ZipFile("sample.pptx",	
  "w")	
  
for	
  name	
  in	
  f.namelist():	
  
	
  	
  	
  	
  s	
  =	
  f.read(name)	
  
	
  	
  	
  	
  if	
  name	
  ==	
  "ppt/slides/slide1.xml":	
  
	
  	
  	
  	
  	
  	
  	
  	
  template	
  =	
  Template(s.decode("ux-­‐8"))	
  
	
  	
  	
  	
  	
  	
  	
  	
  s	
  =	
  template.render(Stle=u"髭もいいけど神社でしょ(^_^)v",	
  name="@kzfm")	
  
	
  	
  	
  	
  	
  	
  	
  	
  s	
  =	
  s.encode("ux-­‐8")	
  
	
  	
  	
  	
  w.writestr(name,	
  s)	
  
f.close()	
  
w.close()	
  
髭もいいけど神社でしょ(^_^)v	
@kzfm
Torii	
  of	
  Miyajima	
  /	
  nobusue
zipfile(とlxml)モジュール
があればOK
Office文書をPythonで
生成することのメリット
•  何度もくり返すような作業を毎回手でやる
必要がなくなる
•  ドキュメント構築のプロセスを再利用で
きる
•  Gitのようなバージョン管理システムで管
理できる
MS Officeだけでなく
Pythonを使うことで
あなたのオフィスも
快適になるかも☆
ご清聴ありがとうございました

Contenu connexe

Tendances

Rのオブジェクト
RのオブジェクトRのオブジェクト
RのオブジェクトItoshi Nikaido
 
シリーズML-07 ニューラルネットワークによる非線形回帰
シリーズML-07 ニューラルネットワークによる非線形回帰シリーズML-07 ニューラルネットワークによる非線形回帰
シリーズML-07 ニューラルネットワークによる非線形回帰Katsuhiro Morishita
 
Redmine 4.2で作るヘルプデスク向け問い合わせ受付・管理システム
Redmine 4.2で作るヘルプデスク向け問い合わせ受付・管理システムRedmine 4.2で作るヘルプデスク向け問い合わせ受付・管理システム
Redmine 4.2で作るヘルプデスク向け問い合わせ受付・管理システムGo Maeda
 
グラフィカルモデル入門
グラフィカルモデル入門グラフィカルモデル入門
グラフィカルモデル入門Kawamoto_Kazuhiko
 
こわくない Git
こわくない Gitこわくない Git
こわくない GitKota Saito
 
一人でもはじめるGitでバージョン管理
一人でもはじめるGitでバージョン管理一人でもはじめるGitでバージョン管理
一人でもはじめるGitでバージョン管理Takafumi Yoshida
 
わかりやすいパターン認識_2章
わかりやすいパターン認識_2章わかりやすいパターン認識_2章
わかりやすいパターン認識_2章weda654
 
計算機アーキテクチャを考慮した高能率画像処理プログラミング
計算機アーキテクチャを考慮した高能率画像処理プログラミング計算機アーキテクチャを考慮した高能率画像処理プログラミング
計算機アーキテクチャを考慮した高能率画像処理プログラミングNorishige Fukushima
 
PyTorchLightning ベース Hydra+MLFlow+Optuna による機械学習開発環境の構築
PyTorchLightning ベース Hydra+MLFlow+Optuna による機械学習開発環境の構築PyTorchLightning ベース Hydra+MLFlow+Optuna による機械学習開発環境の構築
PyTorchLightning ベース Hydra+MLFlow+Optuna による機械学習開発環境の構築Kosuke Shinoda
 
tf,tf2完全理解
tf,tf2完全理解tf,tf2完全理解
tf,tf2完全理解Koji Terada
 
社会人博士という選択肢
社会人博士という選択肢社会人博士という選択肢
社会人博士という選択肢Hiroki Toyokawa
 
モダン PHP テクニック 12 選 ―PsalmとPHP 8.1で今はこんなこともできる!―
モダン PHP テクニック 12 選 ―PsalmとPHP 8.1で今はこんなこともできる!―モダン PHP テクニック 12 選 ―PsalmとPHP 8.1で今はこんなこともできる!―
モダン PHP テクニック 12 選 ―PsalmとPHP 8.1で今はこんなこともできる!―shinjiigarashi
 
FastAPIのテンプレートプロジェクトがいい感じだった話
FastAPIのテンプレートプロジェクトがいい感じだった話FastAPIのテンプレートプロジェクトがいい感じだった話
FastAPIのテンプレートプロジェクトがいい感じだった話NipponAlgorithm
 
Active Learning 入門
Active Learning 入門Active Learning 入門
Active Learning 入門Shuyo Nakatani
 
自然言語処理 Word2vec
自然言語処理 Word2vec自然言語処理 Word2vec
自然言語処理 Word2vecnaoto moriyama
 
Prophet入門【Python編】Facebookの時系列予測ツール
Prophet入門【Python編】Facebookの時系列予測ツールProphet入門【Python編】Facebookの時系列予測ツール
Prophet入門【Python編】Facebookの時系列予測ツールhoxo_m
 
MoveItの新機能、 OMPL Constrained Planningを試してみた
MoveItの新機能、 OMPL Constrained Planningを試してみた MoveItの新機能、 OMPL Constrained Planningを試してみた
MoveItの新機能、 OMPL Constrained Planningを試してみた Ryo Kabutan
 
君はyarn.lockをコミットしているか?
君はyarn.lockをコミットしているか?君はyarn.lockをコミットしているか?
君はyarn.lockをコミットしているか?Teppei Sato
 
放送大学テキスト「自然言語処理」 7章 構文の解析(1)
放送大学テキスト「自然言語処理」 7章 構文の解析(1)放送大学テキスト「自然言語処理」 7章 構文の解析(1)
放送大学テキスト「自然言語処理」 7章 構文の解析(1)Yasuhide Miura
 

Tendances (20)

Rのオブジェクト
RのオブジェクトRのオブジェクト
Rのオブジェクト
 
シリーズML-07 ニューラルネットワークによる非線形回帰
シリーズML-07 ニューラルネットワークによる非線形回帰シリーズML-07 ニューラルネットワークによる非線形回帰
シリーズML-07 ニューラルネットワークによる非線形回帰
 
Redmine 4.2で作るヘルプデスク向け問い合わせ受付・管理システム
Redmine 4.2で作るヘルプデスク向け問い合わせ受付・管理システムRedmine 4.2で作るヘルプデスク向け問い合わせ受付・管理システム
Redmine 4.2で作るヘルプデスク向け問い合わせ受付・管理システム
 
グラフィカルモデル入門
グラフィカルモデル入門グラフィカルモデル入門
グラフィカルモデル入門
 
Oss貢献超入門
Oss貢献超入門Oss貢献超入門
Oss貢献超入門
 
こわくない Git
こわくない Gitこわくない Git
こわくない Git
 
一人でもはじめるGitでバージョン管理
一人でもはじめるGitでバージョン管理一人でもはじめるGitでバージョン管理
一人でもはじめるGitでバージョン管理
 
わかりやすいパターン認識_2章
わかりやすいパターン認識_2章わかりやすいパターン認識_2章
わかりやすいパターン認識_2章
 
計算機アーキテクチャを考慮した高能率画像処理プログラミング
計算機アーキテクチャを考慮した高能率画像処理プログラミング計算機アーキテクチャを考慮した高能率画像処理プログラミング
計算機アーキテクチャを考慮した高能率画像処理プログラミング
 
PyTorchLightning ベース Hydra+MLFlow+Optuna による機械学習開発環境の構築
PyTorchLightning ベース Hydra+MLFlow+Optuna による機械学習開発環境の構築PyTorchLightning ベース Hydra+MLFlow+Optuna による機械学習開発環境の構築
PyTorchLightning ベース Hydra+MLFlow+Optuna による機械学習開発環境の構築
 
tf,tf2完全理解
tf,tf2完全理解tf,tf2完全理解
tf,tf2完全理解
 
社会人博士という選択肢
社会人博士という選択肢社会人博士という選択肢
社会人博士という選択肢
 
モダン PHP テクニック 12 選 ―PsalmとPHP 8.1で今はこんなこともできる!―
モダン PHP テクニック 12 選 ―PsalmとPHP 8.1で今はこんなこともできる!―モダン PHP テクニック 12 選 ―PsalmとPHP 8.1で今はこんなこともできる!―
モダン PHP テクニック 12 選 ―PsalmとPHP 8.1で今はこんなこともできる!―
 
FastAPIのテンプレートプロジェクトがいい感じだった話
FastAPIのテンプレートプロジェクトがいい感じだった話FastAPIのテンプレートプロジェクトがいい感じだった話
FastAPIのテンプレートプロジェクトがいい感じだった話
 
Active Learning 入門
Active Learning 入門Active Learning 入門
Active Learning 入門
 
自然言語処理 Word2vec
自然言語処理 Word2vec自然言語処理 Word2vec
自然言語処理 Word2vec
 
Prophet入門【Python編】Facebookの時系列予測ツール
Prophet入門【Python編】Facebookの時系列予測ツールProphet入門【Python編】Facebookの時系列予測ツール
Prophet入門【Python編】Facebookの時系列予測ツール
 
MoveItの新機能、 OMPL Constrained Planningを試してみた
MoveItの新機能、 OMPL Constrained Planningを試してみた MoveItの新機能、 OMPL Constrained Planningを試してみた
MoveItの新機能、 OMPL Constrained Planningを試してみた
 
君はyarn.lockをコミットしているか?
君はyarn.lockをコミットしているか?君はyarn.lockをコミットしているか?
君はyarn.lockをコミットしているか?
 
放送大学テキスト「自然言語処理」 7章 構文の解析(1)
放送大学テキスト「自然言語処理」 7章 構文の解析(1)放送大学テキスト「自然言語処理」 7章 構文の解析(1)
放送大学テキスト「自然言語処理」 7章 構文の解析(1)
 

Similaire à pythonでオフィス快適化計画

卒研発表
卒研発表卒研発表
卒研発表yayugu
 
Lisp Tutorial for Pythonista Day 6
Lisp Tutorial for Pythonista Day 6Lisp Tutorial for Pythonista Day 6
Lisp Tutorial for Pythonista Day 6Ransui Iso
 
R超入門機械学習をはじめよう
R超入門機械学習をはじめようR超入門機械学習をはじめよう
R超入門機械学習をはじめよう幹雄 小川
 
[db tech showcase Tokyo 2014] B22: Hadoop Rush!! HDFSからデータを自在に取得、加工するにはどうする? ...
[db tech showcase Tokyo 2014] B22: Hadoop Rush!! HDFSからデータを自在に取得、加工するにはどうする? ...[db tech showcase Tokyo 2014] B22: Hadoop Rush!! HDFSからデータを自在に取得、加工するにはどうする? ...
[db tech showcase Tokyo 2014] B22: Hadoop Rush!! HDFSからデータを自在に取得、加工するにはどうする? ...Insight Technology, Inc.
 
EmbulkとDigdagとデータ分析基盤と
EmbulkとDigdagとデータ分析基盤とEmbulkとDigdagとデータ分析基盤と
EmbulkとDigdagとデータ分析基盤とToru Takahashi
 
EmbulkとDigdagとデータ分析基盤と
EmbulkとDigdagとデータ分析基盤とEmbulkとDigdagとデータ分析基盤と
EmbulkとDigdagとデータ分析基盤とToru Takahashi
 
WebAppDev勉強会 #2 at cafe? IKAGAWA DO
WebAppDev勉強会 #2 at cafe? IKAGAWA DOWebAppDev勉強会 #2 at cafe? IKAGAWA DO
WebAppDev勉強会 #2 at cafe? IKAGAWA DOKohei Noda
 
位置情報を使ったサービス「スマポ」をPostgreSQLで作ってみた db tech showcase 2013 Tokyo
位置情報を使ったサービス「スマポ」をPostgreSQLで作ってみた db tech showcase 2013 Tokyo位置情報を使ったサービス「スマポ」をPostgreSQLで作ってみた db tech showcase 2013 Tokyo
位置情報を使ったサービス「スマポ」をPostgreSQLで作ってみた db tech showcase 2013 TokyoYoshiyuki Asaba
 
Rを用いた外国語教育データの整理・要約
Rを用いた外国語教育データの整理・要約Rを用いた外国語教育データの整理・要約
Rを用いた外国語教育データの整理・要約Yusaku Kawaguchi
 
Programming camp 2008, Codereading
Programming camp 2008, CodereadingProgramming camp 2008, Codereading
Programming camp 2008, CodereadingHiro Yoshioka
 
asm.jsとWebAssemblyって実際なんなの?
asm.jsとWebAssemblyって実際なんなの?asm.jsとWebAssemblyって実際なんなの?
asm.jsとWebAssemblyって実際なんなの?Yosuke Onoue
 
Tech Fielders 2009/9/18 LT
Tech Fielders 2009/9/18 LTTech Fielders 2009/9/18 LT
Tech Fielders 2009/9/18 LTterurou
 
コミケの取りまとめをしたので
コミケの取りまとめをしたのでコミケの取りまとめをしたので
コミケの取りまとめをしたのでKenichiro MATOHARA
 

Similaire à pythonでオフィス快適化計画 (20)

卒研発表
卒研発表卒研発表
卒研発表
 
Lisp Tutorial for Pythonista Day 6
Lisp Tutorial for Pythonista Day 6Lisp Tutorial for Pythonista Day 6
Lisp Tutorial for Pythonista Day 6
 
R超入門機械学習をはじめよう
R超入門機械学習をはじめようR超入門機械学習をはじめよう
R超入門機械学習をはじめよう
 
Drupal補完計画
Drupal補完計画Drupal補完計画
Drupal補完計画
 
[db tech showcase Tokyo 2014] B22: Hadoop Rush!! HDFSからデータを自在に取得、加工するにはどうする? ...
[db tech showcase Tokyo 2014] B22: Hadoop Rush!! HDFSからデータを自在に取得、加工するにはどうする? ...[db tech showcase Tokyo 2014] B22: Hadoop Rush!! HDFSからデータを自在に取得、加工するにはどうする? ...
[db tech showcase Tokyo 2014] B22: Hadoop Rush!! HDFSからデータを自在に取得、加工するにはどうする? ...
 
EmbulkとDigdagとデータ分析基盤と
EmbulkとDigdagとデータ分析基盤とEmbulkとDigdagとデータ分析基盤と
EmbulkとDigdagとデータ分析基盤と
 
EmbulkとDigdagとデータ分析基盤と
EmbulkとDigdagとデータ分析基盤とEmbulkとDigdagとデータ分析基盤と
EmbulkとDigdagとデータ分析基盤と
 
Tokyo r38
Tokyo r38Tokyo r38
Tokyo r38
 
WebAppDev勉強会 #2 at cafe? IKAGAWA DO
WebAppDev勉強会 #2 at cafe? IKAGAWA DOWebAppDev勉強会 #2 at cafe? IKAGAWA DO
WebAppDev勉強会 #2 at cafe? IKAGAWA DO
 
Haikara
HaikaraHaikara
Haikara
 
位置情報を使ったサービス「スマポ」をPostgreSQLで作ってみた db tech showcase 2013 Tokyo
位置情報を使ったサービス「スマポ」をPostgreSQLで作ってみた db tech showcase 2013 Tokyo位置情報を使ったサービス「スマポ」をPostgreSQLで作ってみた db tech showcase 2013 Tokyo
位置情報を使ったサービス「スマポ」をPostgreSQLで作ってみた db tech showcase 2013 Tokyo
 
Tokyo r30 beginner
Tokyo r30 beginnerTokyo r30 beginner
Tokyo r30 beginner
 
Tokyo r50 beginner_2
Tokyo r50 beginner_2Tokyo r50 beginner_2
Tokyo r50 beginner_2
 
Rを用いた外国語教育データの整理・要約
Rを用いた外国語教育データの整理・要約Rを用いた外国語教育データの整理・要約
Rを用いた外国語教育データの整理・要約
 
Programming camp 2008, Codereading
Programming camp 2008, CodereadingProgramming camp 2008, Codereading
Programming camp 2008, Codereading
 
asm.jsとWebAssemblyって実際なんなの?
asm.jsとWebAssemblyって実際なんなの?asm.jsとWebAssemblyって実際なんなの?
asm.jsとWebAssemblyって実際なんなの?
 
Rでreproducible research
Rでreproducible researchRでreproducible research
Rでreproducible research
 
TwitterToDayOne
TwitterToDayOneTwitterToDayOne
TwitterToDayOne
 
Tech Fielders 2009/9/18 LT
Tech Fielders 2009/9/18 LTTech Fielders 2009/9/18 LT
Tech Fielders 2009/9/18 LT
 
コミケの取りまとめをしたので
コミケの取りまとめをしたのでコミケの取りまとめをしたので
コミケの取りまとめをしたので
 

Plus de Kazufumi Ohkawa

ハッピーハッピー構造生成まつり’67
ハッピーハッピー構造生成まつり’67ハッピーハッピー構造生成まつり’67
ハッピーハッピー構造生成まつり’67Kazufumi Ohkawa
 
ClickでCLIをお手軽につくるぅぅぅ
ClickでCLIをお手軽につくるぅぅぅClickでCLIをお手軽につくるぅぅぅ
ClickでCLIをお手軽につくるぅぅぅKazufumi Ohkawa
 
SAR精度70% その先へ
SAR精度70% その先へSAR精度70% その先へ
SAR精度70% その先へKazufumi Ohkawa
 
視覚化サービス構築の際に気をつけること
視覚化サービス構築の際に気をつけること視覚化サービス構築の際に気をつけること
視覚化サービス構築の際に気をつけることKazufumi Ohkawa
 
量子化学計算外伝 すごいよ!! FMO
量子化学計算外伝 すごいよ!! FMO量子化学計算外伝 すごいよ!! FMO
量子化学計算外伝 すごいよ!! FMOKazufumi Ohkawa
 
あまり知られていない静岡の言語戦争の歴史
あまり知られていない静岡の言語戦争の歴史あまり知られていない静岡の言語戦争の歴史
あまり知られていない静岡の言語戦争の歴史Kazufumi Ohkawa
 
IPython notebookを使おう
IPython notebookを使おうIPython notebookを使おう
IPython notebookを使おうKazufumi Ohkawa
 
実践コンピュータビジョン8章
実践コンピュータビジョン8章実践コンピュータビジョン8章
実践コンピュータビジョン8章Kazufumi Ohkawa
 
エンジョイ☆スクレイピング
エンジョイ☆スクレイピングエンジョイ☆スクレイピング
エンジョイ☆スクレイピングKazufumi Ohkawa
 
Redmineでもめない会議☆
Redmineでもめない会議☆Redmineでもめない会議☆
Redmineでもめない会議☆Kazufumi Ohkawa
 
入門機械学習読書会9章
入門機械学習読書会9章入門機械学習読書会9章
入門機械学習読書会9章Kazufumi Ohkawa
 
Javascriptを書きたくないヒ トのためのPythonScript
Javascriptを書きたくないヒ トのためのPythonScriptJavascriptを書きたくないヒ トのためのPythonScript
Javascriptを書きたくないヒ トのためのPythonScriptKazufumi Ohkawa
 
入門機械学習読書会二回目
入門機械学習読書会二回目入門機械学習読書会二回目
入門機械学習読書会二回目Kazufumi Ohkawa
 
入門機械学習1,2章
入門機械学習1,2章入門機械学習1,2章
入門機械学習1,2章Kazufumi Ohkawa
 

Plus de Kazufumi Ohkawa (20)

圏論walker
圏論walker圏論walker
圏論walker
 
ハッピーハッピー構造生成まつり’67
ハッピーハッピー構造生成まつり’67ハッピーハッピー構造生成まつり’67
ハッピーハッピー構造生成まつり’67
 
ClickでCLIをお手軽につくるぅぅぅ
ClickでCLIをお手軽につくるぅぅぅClickでCLIをお手軽につくるぅぅぅ
ClickでCLIをお手軽につくるぅぅぅ
 
SAR精度70% その先へ
SAR精度70% その先へSAR精度70% その先へ
SAR精度70% その先へ
 
視覚化サービス構築の際に気をつけること
視覚化サービス構築の際に気をつけること視覚化サービス構築の際に気をつけること
視覚化サービス構築の際に気をつけること
 
量子化学計算外伝 すごいよ!! FMO
量子化学計算外伝 すごいよ!! FMO量子化学計算外伝 すごいよ!! FMO
量子化学計算外伝 すごいよ!! FMO
 
あまり知られていない静岡の言語戦争の歴史
あまり知られていない静岡の言語戦争の歴史あまり知られていない静岡の言語戦争の歴史
あまり知られていない静岡の言語戦争の歴史
 
IPython notebookを使おう
IPython notebookを使おうIPython notebookを使おう
IPython notebookを使おう
 
Mishimasyk141025
Mishimasyk141025Mishimasyk141025
Mishimasyk141025
 
実践コンピュータビジョン8章
実践コンピュータビジョン8章実践コンピュータビジョン8章
実践コンピュータビジョン8章
 
R -> Python
R -> PythonR -> Python
R -> Python
 
ChEMBLを使おう
ChEMBLを使おうChEMBLを使おう
ChEMBLを使おう
 
Unigram mixtures
Unigram mixturesUnigram mixtures
Unigram mixtures
 
エンジョイ☆スクレイピング
エンジョイ☆スクレイピングエンジョイ☆スクレイピング
エンジョイ☆スクレイピング
 
Redmineでもめない会議☆
Redmineでもめない会議☆Redmineでもめない会議☆
Redmineでもめない会議☆
 
入門機械学習読書会9章
入門機械学習読書会9章入門機械学習読書会9章
入門機械学習読書会9章
 
入門機械学習6章
入門機械学習6章入門機械学習6章
入門機械学習6章
 
Javascriptを書きたくないヒ トのためのPythonScript
Javascriptを書きたくないヒ トのためのPythonScriptJavascriptを書きたくないヒ トのためのPythonScript
Javascriptを書きたくないヒ トのためのPythonScript
 
入門機械学習読書会二回目
入門機械学習読書会二回目入門機械学習読書会二回目
入門機械学習読書会二回目
 
入門機械学習1,2章
入門機械学習1,2章入門機械学習1,2章
入門機械学習1,2章
 

pythonでオフィス快適化計画