Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
4章 構造化されたプログラムを書く
Search
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
Yuta
December 05, 2014
Education
300
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
4章 構造化されたプログラムを書く
Yuta
December 05, 2014
More Decks by Yuta
See All by Yuta
20160422 文献紹介
sudo
0
180
NLP2016 報告
sudo
0
210
NLP2016 発表スライド
sudo
0
230
20160218 文献紹介
sudo
0
270
20150909 発表資料
sudo
0
160
20150820 文献紹介
sudo
0
200
20150708 文献紹介
sudo
0
170
20150610 文献紹介
sudo
0
200
20150512 文献紹介
sudo
0
190
Other Decks in Education
See All in Education
FA26 CLU MS Clinical Psychology New Student Orientation
jdbedics
0
170
遊ぶかね欲しさの犯行(ルビ:労働)です
shirayanagiryuji
0
260
子どものためのプログラミング道場『CoderDojo』〜法人提携例〜 / Partnership with CoderDojo Japan
coderdojojapan
PRO
4
19k
Plano urbano de Madrid desde el Ensanche al s. XXI (2ª parte).
juanmartin2026
1
63k
Center for Entrepreneurship Education | Science Tokyo (Institute of Science Tokyo)
sciencetokyo
PRO
0
380
Course Review - Lecture 13 - Information Visualisation (4019538FNR)
signer
PRO
1
2.8k
AI時代のセキュリティ監査
matshogo
PRO
0
110
観察、仮説、実行、検証、計画、提案を一年で3000回トレーニングする方法/3000 Thinking Loops in 365 Days
moriyuya
5
1.3k
新入社員を「あの子」と呼ばない運動 -PBL その前に- / Stop Calling New Hires "Kids"
aokiplayer
2
840
2026年度春学期 統計学 第15回 分布についての仮説を検証する ― 仮説検定(2) (2026. 7. 9)
akiraasano
PRO
0
130
AI Generated Beer
lonbrew
0
110
AIの力を100%引き出すために
frievea
0
500
Featured
See All Featured
RailsConf & Balkan Ruby 2019: The Past, Present, and Future of Rails at GitHub
eileencodes
141
35k
Become a Pro
speakerdeck
PRO
31
6.2k
How to Think Like a Performance Engineer
csswizardry
28
2.8k
The World Runs on Bad Software
bkeepers
PRO
72
12k
The Invisible Side of Design
smashingmag
301
52k
Digital Ethics as a Driver of Design Innovation
axbom
PRO
1
420
The Psychology of Web Performance [Beyond Tellerrand 2023]
tammyeverts
49
3.5k
The Pragmatic Product Professional
lauravandoore
37
7.4k
Kristin Tynski - Automating Marketing Tasks With AI
techseoconnect
PRO
0
510
Discover your Explorer Soul
emna__ayadi
2
1.3k
Measuring & Analyzing Core Web Vitals
bluesmoon
9
990
Designing Experiences People Love
moore
143
24k
Transcript
入門 自然言語処理 4章 構造化されたプログラムを書く B3 須戸 悠太
4.1.1 代入 p.139 文字列の代入はコピーのあとに 新しい文字列で上書きしても影響を受けない リストの代入は「オブジェクト参照」のみ コピーされる
4.1.2 等価性 p.142 ” == “と” is “の二種類 ” ==
”はオブジェクトが同等かを判定 ” is ”はオブジェクトが内部的に 全く同一であるかを判定
4.1.3 条件分岐 p.142 if 文による条件分岐では空でない文字列や リストを真と評価 if 節が真の場合、elif 節の評価を行わない all(),any()はすべて、あるいはいずれかの
要素が条件に一致するか判定
4.2 シーケンス p.143 文字列、リストの他に「タプル」と呼ばれる シーケンスオブジェクトが存在する 任意の数のメンバを持つことができ、 添字を使ったアクセス、スライシング、 長さを調べることも可能
4.3.1 Pythonにおける コーティングスタイル p.148 インデントにはタブを使わず スペース4つを用いる 1行の長さは80字以下に 長くなってしまうようなら改行を
4.3.3 カウンタの正しい使い方 p.152 NLTKではbigrams(text)とtrigrams(text) 関数、 それらを一般化したngrams(text, n)がある 多次元構造の構築ではループ変数である i と
j が結果に利用されていないが 文法上必要である 乗算を利用する方法ではうまくいかない
4.4 関数 p.153 利点 →プログラム中のスペース節約 →関数に名前を付けることで読みやすくなる 関数の定義部分の最初の文字列 →ドキュメンテーション文字列
4.4.1 関数の入出力 p.154 関数へ情報を渡す際には仮引数を利用 ただし、必ず仮引数を取る必要はない 関数は引数の値を修正するか値を返すかの どちらかを行い、両方は行わない
4.4.2 引数を渡す p.155 オブジェクト参照(4.1)は 関数の引数として値を用いる場合も同様 Pythonは、関数へ渡された引数を値として 解釈する →値渡し
4.4.4 引数の型のチェック p.157 Pythonではプログラムを書く際に 変数の型の宣言は必要ない →様々な型の引数を柔軟に受け取れる 関数が正しく呼び出されなかった 場合に警告を出すことができる
4.4.6 機能を分割する p.159 関数の分割作業の終了後、各関数の目的を ドキュメンテーション文字列に記述(例4-1) 関数の呼び出し方と返る値を記述できる →doctestブロック
4.6.1 Pythonモジュールの構造 p.166 単なる .pyファイルにすぎない __file__変数を用いることで、すべての NLTKのモジュールについてコードの場所を 知る事ができる >>> nltk.metrics.distance.__file__
4.6.3 エラーの原因 p.168 入力データに予期しない文字が 含まれていた 関数が期待通りに動作しない 文法を正しく理解していない
4.6.4 デバッグの手法 p.170 バグの発生 →プログラマの仮定を確認する必要がある ランタイムエラーが起こる →インタプリンタがスタックトレースを表示 対話型のコマンドラインインターフェイス で同じ状況を再現してみる
デバッガによってブレークポイントにおける 変数の値を調べることができる デバッガへの指示を入力するための プロンプト(Pdb)の表示 >>> import pdb >>> import mymodule
>>> pdb.run(‘mymodule.myfunction()’)
4.6.5 防衛的プログラミング p.171 正しく動作することがわかっている小さな コードを積み上げて構築する コード修正の度に解決策を仮説し、 間違っていたら修正を元に戻す 開発、拡張、修正にあたり、一連の流れを 同時に維持管理していく →回帰テスト
4.7 アルゴリズムデザイン p.172 一般的に行われているアプローチ ・分割統治法(マージソート) ・二分探索
4.8 Pythonライブラリの例 p180 CSV CSV形式のファイルの読み書きができる すべて文字列として取得される Numpy 多次元配列オブジェクトであり、初期化と アクセスが容易
Matplotlib 数値データをグラフィカルに表示 NetworkX グラフと呼ばれる節点と辺から構成された 構造を定義し、操作する