SlideShare uma empresa Scribd logo
1 de 38
Baixar para ler offline
⽤用 Python 打造你⾃自⼰己
的 Summly
Andy Dai @ PyConAPAC 2014
1
About me
• Andy (andy@dorm7.com)
• PyCon staff、Taipei.py
co-Organizer、PyCon
Tutorial 講師
• 在 PyCon APAC 2014 主
席的公司⼯工作
2
Summly 是什麼?
3
4
5
從跟朋友⼀一起做了⼀一個
APP 開始
6
• 截取各⼤大報(不包含中X時報)本
⽂文,去掉廣告、圖⽚片
等等讓慢 3G 變更慢的
東⻄西
!
• 每天也是有些⼈人⽤用...
7
“我們也來做個中⽂文版
的 Summly 吧”
8
⾃自然語⾔言處理⽤用 Python 的
NLTK 應該很簡單吧!
9
思路
• 分詞
• 找關鍵詞
• 分句
• 找關鍵句,組合起來就收⼯工
10
分詞
11
我們/也/來/做/個/中⽂文
版/的/Summly/吧
我們也來做個中⽂文版的
Summly 吧
12
讓我們⽤用 NLTK 解決..
13
§
14
Google 是我們的好朋友
15
“结巴" 中⽂文分词:做最好
的 Python 中⽂文分词组件
16
簡單搞定
17
找關鍵詞
18
什麼叫做關鍵詞
• ⽂文章當中出現頻率最⾼高的詞 (Term Frequence)
• 如果 ”程式”、”台灣”、”進⼊入” 的出現頻率都⼀一樣
呢?
• 加權調整 - Inverse Document Frequency
• TF - IDF
19
結巴也幫你做好了...
20
再度簡單搞定
21
“结巴" 中⽂文分词:做最好
的 Python 中⽂文分词组件
22
分句
23
感謝中⽂文標點符號
!
。!?;
24
找關鍵句,組合起來就
收⼯工
25
Example
• 除了考公職你還有其他選擇:程式設計 (http://
yowureport.com/?p=11468)
• 關鍵字:程式, 設計, 產業, 公務⼈人員, 考試, 錄取,
⼈人才, 領域
26
似乎到處都需要會寫程式的⼈人來做個 App 或是架設網站。Hour of
Code 的⺫⽬目標是向超過⼀一千萬的美國學⽣生,宣傳程式設計的重要性
!
另⼀一⽅方⾯面,資訊產業近年來蓬勃發展。就算之前「18%」 的公務
⼈人員退休優惠存款被調降,在⼤大環境不景氣之下,考公職的⼈人數仍
是居⾼高不下,絲毫不⾒見衰退。
!
想成為公務員,多半得參加⾼高普初考,或者是特種考試。近幾年初
考約七萬⼈人報考,錄取率卻只有 1.1%。
!
先不看台灣如何培育⼈人才,台灣就業市場是否需要這麼多程式設計
⼈人才?從經濟部⼯工業局的「重點產業專業⼈人才需求調查」報告中,
可以看到程式設計相關領域未來三年內的⼈人才需求量:
從上表可看出,列出的重點產業對於⼈人才的需求是逐年成⻑⾧長的。
!
試想若是考公職的⼈人有⼀一半能轉換想法,不選擇穩定的公職,轉⽽而
投⼊入學寫程式會變得如何?很多其他產業的程式設計⼯工作,必需同
時具備兩個領域的知識。
27
2293 字 -> 346 字
28
乍看之下很成功,好像
可以上線了!
29
READY FOR LAUNCH
事情不會那麼簡單
30
這是某報的報導
針對越南明⽇日反中⽰示威抗議,外交部上午召開緊急會議,研
商應變⽅方案,全體備戰,除決議將越南全境旅遊警⽰示提升為
⿈黃⾊色,暴亂源起的平陽省、同奈省同列橙⾊色外,也進⼀一步將
明⽇日⽰示威重點區域的胡志明市第⼀一郡,加⼊入橙⾊色警⽰示⾏行列,
籲台商國⼈人明⽇日切莫涉⾜足第⼀一郡的統⼀一⼯工、市政廳、中國駐
越南總領市館等重點抗議區。
!
⽽而除了我駐越南代表處河內辦公室、駐胡志明市辦事處辦公
室,今起24⼩小時開設避難所,開放台商投奔提供保護外,也
將在越南三個省份包括和平旅館等地,同時開10個台商避難
點,由外交官進駐,備妥疏散⼤大巴⼠士,協調越南公安保護,
領務局⻑⾧長龔中誠上午也率3位曾駐胡志明市的資深官員,清
晨出發到越南,親⾃自協調台商便利領務通關事宜。
!
! 31
這是某報的報導
針對越南明⽇日反中⽰示威抗議,外交部上午召開緊急會議,研商應變⽅方案,
全體備戰,除決議將越南全境旅遊警⽰示提升為⿈黃⾊色,暴亂源起的平陽省、
同奈省同列橙⾊色外,也進⼀一步將明⽇日⽰示威重點區域的胡志明市第⼀一郡,加
⼊入橙⾊色警⽰示⾏行列,籲台商國⼈人明⽇日切莫涉⾜足第⼀一郡的統⼀一⼯工、市政廳、
中國駐越南總領市館等重點抗議區。
!
⽽而除了我駐越南代表處河內辦公室、駐胡志明市辦事處辦公室,今起24⼩小時
開設避難所,開放台商投奔提供保護外,也將在越南三個省份包括和平旅
館等地,同時開10個台商避難點,由外交官進駐,備妥疏散⼤大巴⼠士,
協調越南公安保護,領務局⻑⾧長龔中誠上午也率3位曾駐胡志明市的資深官
員,清晨出發到越南,親⾃自協調台商便利領務通關事宜。32
每⼀一段只有⼀一句話,從
頭逗號⽤用到尾
33
標點符號很重要,孩⼦子的
學習不能等!
34
結論
• ⺫⽬目前暫時沒招,希望有⼈人指教
• Garbage in, garbage out
35
⼯工商服務
36
⼯工商服務
37
Q&A
38

Mais conteúdo relacionado

Destaque

Search search search
Search search searchSearch search search
Search search searchAndy Dai
 
Solvcon PyCon APAC 2014
Solvcon PyCon APAC 2014Solvcon PyCon APAC 2014
Solvcon PyCon APAC 2014weijr
 
Python with vim
Python with vimPython with vim
Python with vim嘉駿 戴
 
Introduction to Machine Learning in Python using Scikit-Learn
Introduction to Machine Learning in Python using Scikit-LearnIntroduction to Machine Learning in Python using Scikit-Learn
Introduction to Machine Learning in Python using Scikit-LearnAmol Agrawal
 
使用Supervisor守护python进程
使用Supervisor守护python进程使用Supervisor守护python进程
使用Supervisor守护python进程果 果
 
PyCon 2012: Militarizing Your Backyard: Computer Vision and the Squirrel Hordes
PyCon 2012: Militarizing Your Backyard: Computer Vision and the Squirrel HordesPyCon 2012: Militarizing Your Backyard: Computer Vision and the Squirrel Hordes
PyCon 2012: Militarizing Your Backyard: Computer Vision and the Squirrel Hordeskgrandis
 
三十年股票投资心得
三十年股票投资心得三十年股票投资心得
三十年股票投资心得greentask
 
Line@-keeptocuhme-blake
Line@-keeptocuhme-blakeLine@-keeptocuhme-blake
Line@-keeptocuhme-blakeHuang Blake
 
Facebook用AI改進OpenStreetMap圖資
Facebook用AI改進OpenStreetMap圖資Facebook用AI改進OpenStreetMap圖資
Facebook用AI改進OpenStreetMap圖資瑞霖 陳
 
Introduction to OpenCV (with Java)
Introduction to OpenCV (with Java)Introduction to OpenCV (with Java)
Introduction to OpenCV (with Java)Luigi De Russis
 
常用內建模組
常用內建模組常用內建模組
常用內建模組Justin Lin
 
類別的繼承
類別的繼承類別的繼承
類別的繼承Justin Lin
 
除錯、測試與效能
除錯、測試與效能除錯、測試與效能
除錯、測試與效能Justin Lin
 
《Python 3.5 技術手冊》第二章草稿
《Python 3.5 技術手冊》第二章草稿《Python 3.5 技術手冊》第二章草稿
《Python 3.5 技術手冊》第二章草稿Justin Lin
 

Destaque (19)

進階主題
進階主題進階主題
進階主題
 
Search search search
Search search searchSearch search search
Search search search
 
Solvcon PyCon APAC 2014
Solvcon PyCon APAC 2014Solvcon PyCon APAC 2014
Solvcon PyCon APAC 2014
 
Python with vim
Python with vimPython with vim
Python with vim
 
Openstack 簡介
Openstack 簡介Openstack 簡介
Openstack 簡介
 
Introduction to Machine Learning in Python using Scikit-Learn
Introduction to Machine Learning in Python using Scikit-LearnIntroduction to Machine Learning in Python using Scikit-Learn
Introduction to Machine Learning in Python using Scikit-Learn
 
使用Supervisor守护python进程
使用Supervisor守护python进程使用Supervisor守护python进程
使用Supervisor守护python进程
 
PyCon 2012: Militarizing Your Backyard: Computer Vision and the Squirrel Hordes
PyCon 2012: Militarizing Your Backyard: Computer Vision and the Squirrel HordesPyCon 2012: Militarizing Your Backyard: Computer Vision and the Squirrel Hordes
PyCon 2012: Militarizing Your Backyard: Computer Vision and the Squirrel Hordes
 
Cnc fablab
Cnc   fablabCnc   fablab
Cnc fablab
 
三十年股票投资心得
三十年股票投资心得三十年股票投资心得
三十年股票投资心得
 
Line@-keeptocuhme-blake
Line@-keeptocuhme-blakeLine@-keeptocuhme-blake
Line@-keeptocuhme-blake
 
Facebook用AI改進OpenStreetMap圖資
Facebook用AI改進OpenStreetMap圖資Facebook用AI改進OpenStreetMap圖資
Facebook用AI改進OpenStreetMap圖資
 
Introduction to OpenCV (with Java)
Introduction to OpenCV (with Java)Introduction to OpenCV (with Java)
Introduction to OpenCV (with Java)
 
常用內建模組
常用內建模組常用內建模組
常用內建模組
 
資料結構
資料結構資料結構
資料結構
 
類別的繼承
類別的繼承類別的繼承
類別的繼承
 
除錯、測試與效能
除錯、測試與效能除錯、測試與效能
除錯、測試與效能
 
《Python 3.5 技術手冊》第二章草稿
《Python 3.5 技術手冊》第二章草稿《Python 3.5 技術手冊》第二章草稿
《Python 3.5 技術手冊》第二章草稿
 
例外處理
例外處理例外處理
例外處理
 

Semelhante a 用 Python 打造你自己的 summly

Ready Programmer One
Ready Programmer OneReady Programmer One
Ready Programmer Oneflywindy
 
Python First Class
Python First ClassPython First Class
Python First ClassYao Zuo
 
2012,我的技术之选
2012,我的技术之选2012,我的技术之选
2012,我的技术之选勇浩 赖
 
Python in word cloud
Python in word cloudPython in word cloud
Python in word cloudFEG
 
社群軟體應用
社群軟體應用社群軟體應用
社群軟體應用泰維 陳
 
622數位分享
622數位分享622數位分享
622數位分享Joyce Chen
 
from passion import profession
from passion import professionfrom passion import profession
from passion import professionTsungWei Hu
 
iPad在教學上的應用[進階班]
iPad在教學上的應用[進階班] iPad在教學上的應用[進階班]
iPad在教學上的應用[進階班] teajia
 
Python 爬網⾴工具 - Scrapy 介紹
Python 爬網⾴工具 - Scrapy 介紹Python 爬網⾴工具 - Scrapy 介紹
Python 爬網⾴工具 - Scrapy 介紹Sammy Fung
 
導入 Flutter 前你應該知道的事
導入 Flutter 前你應該知道的事導入 Flutter 前你應該知道的事
導入 Flutter 前你應該知道的事Weizhong Yang
 
2014 台灣師範大學 立人中學 心智圖背單字講座 兆鴻老師主講
2014 台灣師範大學 立人中學 心智圖背單字講座 兆鴻老師主講2014 台灣師範大學 立人中學 心智圖背單字講座 兆鴻老師主講
2014 台灣師範大學 立人中學 心智圖背單字講座 兆鴻老師主講gary wang
 
与Python一路走来
与Python一路走来与Python一路走来
与Python一路走来leejd
 
简单Pthon教程
简单Pthon教程简单Pthon教程
简单Pthon教程junjun chen
 
暖場與 Web 相關的小玩具 @ Tainan.py 2013.09.28
暖場與 Web 相關的小玩具 @ Tainan.py 2013.09.28暖場與 Web 相關的小玩具 @ Tainan.py 2013.09.28
暖場與 Web 相關的小玩具 @ Tainan.py 2013.09.28Chun-Yu Tseng
 
行動社群與網路社群Line與Facebook-三星統計謝章升20130904
行動社群與網路社群Line與Facebook-三星統計謝章升20130904行動社群與網路社群Line與Facebook-三星統計謝章升20130904
行動社群與網路社群Line與Facebook-三星統計謝章升20130904Beckett Hsieh
 
網路社群與行動社群 Facebook與Line-三星統計謝章升-20130905
網路社群與行動社群 Facebook與Line-三星統計謝章升-20130905網路社群與行動社群 Facebook與Line-三星統計謝章升-20130905
網路社群與行動社群 Facebook與Line-三星統計謝章升-20130905Beckett Hsieh
 
AtticTV and NodeJS
AtticTV and NodeJSAtticTV and NodeJS
AtticTV and NodeJSGrey Ang
 
2013多媒體融入華語教學 列印版
2013多媒體融入華語教學 列印版2013多媒體融入華語教學 列印版
2013多媒體融入華語教學 列印版Kun-Ting Yu
 
成大心理系-Prototyping方法
成大心理系-Prototyping方法成大心理系-Prototyping方法
成大心理系-Prototyping方法Souyi Yang
 

Semelhante a 用 Python 打造你自己的 summly (20)

Ready Programmer One
Ready Programmer OneReady Programmer One
Ready Programmer One
 
Python First Class
Python First ClassPython First Class
Python First Class
 
2012,我的技术之选
2012,我的技术之选2012,我的技术之选
2012,我的技术之选
 
Python in word cloud
Python in word cloudPython in word cloud
Python in word cloud
 
社群軟體應用
社群軟體應用社群軟體應用
社群軟體應用
 
622數位分享
622數位分享622數位分享
622數位分享
 
from passion import profession
from passion import professionfrom passion import profession
from passion import profession
 
iPad在教學上的應用[進階班]
iPad在教學上的應用[進階班] iPad在教學上的應用[進階班]
iPad在教學上的應用[進階班]
 
Python 爬網⾴工具 - Scrapy 介紹
Python 爬網⾴工具 - Scrapy 介紹Python 爬網⾴工具 - Scrapy 介紹
Python 爬網⾴工具 - Scrapy 介紹
 
導入 Flutter 前你應該知道的事
導入 Flutter 前你應該知道的事導入 Flutter 前你應該知道的事
導入 Flutter 前你應該知道的事
 
2014 台灣師範大學 立人中學 心智圖背單字講座 兆鴻老師主講
2014 台灣師範大學 立人中學 心智圖背單字講座 兆鴻老師主講2014 台灣師範大學 立人中學 心智圖背單字講座 兆鴻老師主講
2014 台灣師範大學 立人中學 心智圖背單字講座 兆鴻老師主講
 
HelloJS - Get Slack
HelloJS - Get SlackHelloJS - Get Slack
HelloJS - Get Slack
 
与Python一路走来
与Python一路走来与Python一路走来
与Python一路走来
 
简单Pthon教程
简单Pthon教程简单Pthon教程
简单Pthon教程
 
暖場與 Web 相關的小玩具 @ Tainan.py 2013.09.28
暖場與 Web 相關的小玩具 @ Tainan.py 2013.09.28暖場與 Web 相關的小玩具 @ Tainan.py 2013.09.28
暖場與 Web 相關的小玩具 @ Tainan.py 2013.09.28
 
行動社群與網路社群Line與Facebook-三星統計謝章升20130904
行動社群與網路社群Line與Facebook-三星統計謝章升20130904行動社群與網路社群Line與Facebook-三星統計謝章升20130904
行動社群與網路社群Line與Facebook-三星統計謝章升20130904
 
網路社群與行動社群 Facebook與Line-三星統計謝章升-20130905
網路社群與行動社群 Facebook與Line-三星統計謝章升-20130905網路社群與行動社群 Facebook與Line-三星統計謝章升-20130905
網路社群與行動社群 Facebook與Line-三星統計謝章升-20130905
 
AtticTV and NodeJS
AtticTV and NodeJSAtticTV and NodeJS
AtticTV and NodeJS
 
2013多媒體融入華語教學 列印版
2013多媒體融入華語教學 列印版2013多媒體融入華語教學 列印版
2013多媒體融入華語教學 列印版
 
成大心理系-Prototyping方法
成大心理系-Prototyping方法成大心理系-Prototyping方法
成大心理系-Prototyping方法
 

Mais de Andy Dai

Grpc + python.key
Grpc + python.keyGrpc + python.key
Grpc + python.keyAndy Dai
 
該怎麼樣(認真的)部署你的 Python Web 應用程式?
該怎麼樣(認真的)部署你的 Python Web 應用程式?該怎麼樣(認真的)部署你的 Python Web 應用程式?
該怎麼樣(認真的)部署你的 Python Web 應用程式?Andy Dai
 
Power UP your CLI
Power UP your CLIPower UP your CLI
Power UP your CLIAndy Dai
 
Django channels
Django channelsDjango channels
Django channelsAndy Dai
 
Django Third party packages
Django Third party packagesDjango Third party packages
Django Third party packagesAndy Dai
 
Practical django secuirty
Practical django secuirtyPractical django secuirty
Practical django secuirtyAndy Dai
 
總之來講講 Search
總之來講講 Search總之來講講 Search
總之來講講 SearchAndy Dai
 
Python web meetup 11 18
Python web meetup 11 18Python web meetup 11 18
Python web meetup 11 18Andy Dai
 
Django in heavy load environment
Django in heavy load environmentDjango in heavy load environment
Django in heavy load environmentAndy Dai
 
Tradeoffs of replacing core components
Tradeoffs of replacing core componentsTradeoffs of replacing core components
Tradeoffs of replacing core componentsAndy Dai
 
ElastiCache
ElastiCacheElastiCache
ElastiCacheAndy Dai
 
Django deploy
Django deployDjango deploy
Django deployAndy Dai
 
Build your own trello witihin 100 LOC (with Meteor)
Build your own trello witihin 100 LOC (with Meteor)Build your own trello witihin 100 LOC (with Meteor)
Build your own trello witihin 100 LOC (with Meteor)Andy Dai
 
Boost your django admin with Grappelli
Boost your django admin with GrappelliBoost your django admin with Grappelli
Boost your django admin with GrappelliAndy Dai
 

Mais de Andy Dai (15)

Grpc + python.key
Grpc + python.keyGrpc + python.key
Grpc + python.key
 
該怎麼樣(認真的)部署你的 Python Web 應用程式?
該怎麼樣(認真的)部署你的 Python Web 應用程式?該怎麼樣(認真的)部署你的 Python Web 應用程式?
該怎麼樣(認真的)部署你的 Python Web 應用程式?
 
Power UP your CLI
Power UP your CLIPower UP your CLI
Power UP your CLI
 
Django channels
Django channelsDjango channels
Django channels
 
Django Third party packages
Django Third party packagesDjango Third party packages
Django Third party packages
 
Practical django secuirty
Practical django secuirtyPractical django secuirty
Practical django secuirty
 
總之來講講 Search
總之來講講 Search總之來講講 Search
總之來講講 Search
 
Python web meetup 11 18
Python web meetup 11 18Python web meetup 11 18
Python web meetup 11 18
 
Django in heavy load environment
Django in heavy load environmentDjango in heavy load environment
Django in heavy load environment
 
Tradeoffs of replacing core components
Tradeoffs of replacing core componentsTradeoffs of replacing core components
Tradeoffs of replacing core components
 
ElastiCache
ElastiCacheElastiCache
ElastiCache
 
Dynamo db
Dynamo dbDynamo db
Dynamo db
 
Django deploy
Django deployDjango deploy
Django deploy
 
Build your own trello witihin 100 LOC (with Meteor)
Build your own trello witihin 100 LOC (with Meteor)Build your own trello witihin 100 LOC (with Meteor)
Build your own trello witihin 100 LOC (with Meteor)
 
Boost your django admin with Grappelli
Boost your django admin with GrappelliBoost your django admin with Grappelli
Boost your django admin with Grappelli
 

用 Python 打造你自己的 summly