Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
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
4章 構造化されたプログラムを書く
Yuta
December 05, 2014
More Decks by Yuta
See All by Yuta
20160422 文献紹介
sudo
0
180
NLP2016 報告
sudo
0
200
NLP2016 発表スライド
sudo
0
230
20160218 文献紹介
sudo
0
270
20150909 発表資料
sudo
0
150
20150820 文献紹介
sudo
0
190
20150708 文献紹介
sudo
0
160
20150610 文献紹介
sudo
0
200
20150512 文献紹介
sudo
0
190
Other Decks in Education
See All in Education
Info Session MSc Computer Science & MSc Applied Informatics
signer
PRO
0
260
[2026前期火5] 論理学(京都大学文学部 前期 第5回)「 ならばの問題演習・proof net・かつの規則」
yatabe
0
150
Protecting Patrons with Digital Vendors
dsalo
0
120
AWS Certified Generative AI Developer - Professional Beta 不合格体験記
amarelo_n24
1
240
View Manipulation and Reduction - Lecture 9 - Information Visualisation (4019538FNR)
signer
PRO
1
2.6k
Populism, Post-Liberalism & Climate Change
vyadav
0
150
Course Review - Lecture 13 - Next Generation User Interfaces (4018166FNR)
signer
PRO
0
2.2k
Visualisation Techniques - Lecture 8 - Information Visualisation (4019538FNR)
signer
PRO
1
3k
Human-AI Interaction - Lecture 11 - Next Generation User Interfaces (4018166FNR)
signer
PRO
0
990
SL AMIGOS 教育格差と私たちの取り組み - スリランカの支援学校への支援プロジェクト:リシンドゥ リオ 氏 (別府溝部学園短期大学 ビジネス観光コース 留学生):2720 Japan O.K. ロータリーEクラブ2026年4月6日卓話
2720japanoke
0
570
事業紹介資料(トレーナー養成講座)
kentaro1981
0
280
What workforce agencies must have in place to compete for and deliver on RESTART grants
territorium
PRO
0
150
Featured
See All Featured
Unsuck your backbone
ammeep
672
58k
No one is an island. Learnings from fostering a developers community.
thoeni
21
3.7k
SEO Brein meetup: CTRL+C is not how to scale international SEO
lindahogenes
1
2.6k
Context Engineering - Making Every Token Count
addyosmani
9
880
Connecting the Dots Between Site Speed, User Experience & Your Business [WebExpo 2025]
tammyeverts
11
910
Building Better People: How to give real-time feedback that sticks.
wjessup
370
20k
Prompt Engineering for Job Search
mfonobong
0
300
Impact Scores and Hybrid Strategies: The future of link building
tamaranovitovic
0
270
Taking LLMs out of the black box: A practical guide to human-in-the-loop distillation
inesmontani
PRO
3
2.2k
16th Malabo Montpellier Forum Presentation
akademiya2063
PRO
0
120
Embracing the Ebb and Flow
colly
88
5k
Sam Torres - BigQuery for SEOs
techseoconnect
PRO
0
260
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 グラフと呼ばれる節点と辺から構成された 構造を定義し、操作する