2021年7月31日 星期六

Thonny 離線安裝 Python 套件的問題

因為微軟將於 2022 年 6 月 15 日終止對 IE 的更新支援, 之前幫公司寫的網頁版程式屆時就無法使用了 (因為使用了一些 ActiveX 元件), 所以必須超前佈署, 改用 Python 來寫個替代的作業輔助軟體. 但由於資安限制, 無法用 pip 直接安裝所需套件, 必須下載 whl 檔進行離線安裝, 忙了兩天終於在昨天搞定了. 

我會用到的主要套件包括用來進行 SSH 連線的 paramiko, 還有網路爬蟲用的 requests, BeautifulSoup, 以及資料科學四大天王, Numpy, Pandas, Matplotlib, 與 Scipy 等等. 由於離線安裝要考慮到相依套件問題, 例如 Pandas 並不是只下載 Pandas 的 whl 檔就可以了, 還要先下載安裝完它的相依套件後才能順利安裝 Pandas. 

我打算使用 Thonny 來開發, 所以先安裝最新版 Thonny, 它目前內建的是 Python 3.7. 安裝程序則參考了下面這篇空大老師吳俊逸博士的文章 : 


我先到 PyPi 網站依序下載這些套件的 whl 檔, 但要先確認 Python 直譯器版本與 32(x86)/64(amd) 位元, 因為有些套件有分版本與位元數, 有些則沒有. 下錯 whl 檔安裝會失敗, 例如我的 Thonny 內建直譯器是 3.7 版, 下載非 3.7 版的 Numpy 就無法安裝, 同樣是 3.7 版, 下載 64 位元版也是不行, 而是要 32 位元版 : 





不過我照此程序安裝發現作者的這張列表寫得並不完全, 還有些其他相依套件漏列, 我依據安裝錯誤訊息下載闕漏套件來回用隨身碟複製到主機好幾次才完成整個常用套件離線安裝作業. 

2021年7月30日 星期五

好文 : Python 六大自然語言處理函式庫之比較 (from KDnuggets)

今天在 KDnuggets 看到一篇好文章 : 


此文對 Python 六大自然語言處理函式庫進行了評比 , 剛好我最近在研讀 NLP, 所以仔細看了全文, 對於這六大套件的優劣算是有了一個粗略的印象, 內容摘要翻譯整理如下 :
  1. 自然語言處理包含下列次領域 :
    (1). 語音辨識與生成 (speech recognition & generation)
    (2). 文本分析 (text analysis)
    (3). 情緒分析 (sentiment analysis)
    (4). 機器翻譯 (machine translation)
  2. 研究 NLP 除了需要數學與機器學習基礎外, 還要具有語言學概念. 
  3. NLP 函式庫讓文本的前置處理 (preprocessing) 大幅簡化, 使我們可以專心於機器學習模型之建立與超參數 (superparameter) 的微調. 
  4. Python NLP 六大函式庫 :
    (1). NLTK
    (2). SpaCy
    (3). Scikit-Learn
    (4). Gensim
    (5). Pattern
    (6). Polyglot
    其中 NLTK 是最知名且歷史悠久的 NLP 套件, 彈性大且支援最多語言, 但執行速度較慢, 學習曲線較陡, 且無神經網路模型. SpaCy 的處理速度最快, 易學易用屬於工業級產品, 但只支援 7 種語言. Scikit-Learn 提供廣泛的演算法來建立模型, 但前處理時無法使用神經網路, 需靠其他套件支援. Gensim 支持深度學習, 但主要是設計用來建立非監督式的文本模型, 且其工具無法支持完整的 NLP 作業管線 (pipeline). Pattern 提供了主要的 NLP 功能且內建網頁爬蟲 API, 但它主要是一個網頁探勘套件, 無法對某些特定的 NLP 作業進行優化. Polyglot 支援最多達 196 種語言, 但處理效能較慢且社群支持較少. 
  5. 目前最受歡迎的 NLP 套件是 NLTK 與 SpaCy, 兩者也互為主要的競爭者. NLTK 較偏向學術性, 使用者可測試其所提供的各種方法與演算法, 或混用它們. SpaCy 則對每個問題提供開箱即用 (out-of-box) 的單一解決方案, 所以也不需要去比較哪個方法較好. SpaCy 的優勢是其工業級的處理效能 (是 NLTK 的好幾倍), 可惜所支援的語言數目較少, 不過也在持續增加中. 因此在大部分的情況下建議採用 SpaCy, 如果想嘗試一些不同的做法也可考慮使用 NLTK 來做. 
我以前安裝完 NLTK 後做了簡單測試就放下了, 因為它所提供的方法有點多, 光是 tokenization (斷詞) 的函數就好幾個, 最近稍微看了一下 SpaCy 的用法, 發覺 SpaCy 乾脆俐落, 它不會提供一大堆函數來處理相同的問題, 而且內建的模型也考慮到語境 (context), 所以斷詞的結果非常正確, 所以我想先學學 SpaCy, 以後有需要再來玩看看 NLTK. 

2021年7月29日 星期四

打 AZ 疫苗

下午請公假到巨蛋打疫苗, 預約 3 點, 但我 2 點 45 就到了, 遵循指引填寫資料, 醫師問診, 到打完針不超過 10 分鐘, 休息 15 分鐘就可以離開了.




晚上在看倚天屠龍記時, 婷婷打電話來問感覺怎樣, 我說才 6 小時好像沒感覺哩, 聽說一般要 12 小時左右才會有反應. 現在已過了 9 小時, 普拿疼已備好, 預防半夜發燒頭痛. 


2021-07-30 補充 :

昨晚很好睡, 沒發燒也沒頭痛, 早上起來手臂施打處微痛. 但一整天上班感到累累的, 中午午睡還睡過頭. 早上同事看到我, 還問我怎麼跑來上班, 因為樓上同事前一天下午請公假打疫苗, 第二天早上又徵得主管同意請半天公假在家休息. 但我覺得又沒怎樣不舒服, 況且還有 Python 離線安裝沒做完, 幹嘛找主管再請公假呢? 雖然沒有像水某打第一劑那樣頭痛昏睡一天半, 但腰痠倦怠倒是有的, 打之前忐忑不安, 備好的普拿疼也用不到. 

2021年7月28日 星期三

樹莓派架站 (十二) : 申請中華電信 ADSL/光世代固定 IP

由於湘雲老師要八月底才回學校, 所以想利用這段時間試看看讓網站用光世代連上 Internet. 中華電信 ADSL/光世代雖然是浮動 IP, 但提供用戶線上設定一個固定 IP + 7 個浮動 IP, 這對於有裝設上網型 VCR 監視器的用戶來說非常方便, 在監視器上設定用固定 IP 撥接帳號以 PPoE 方式撥接上網後即可在遠端連線此 IP 而存取監視器畫面, 當然也可利用此 IP 來連線網站伺服器. 

申請中華電信一個固定 IP 的網頁如下 :


點選 "Hinet 非固定制固定 IP" 按鈕 : 




按 "馬上登入" 鈕登入 Hinet 帳號 : 




輸入會員帳號 (HN 不要打, 只要輸入 HN 後面的數字即可) 與密碼, 按 "登入" 鈕 :




我鄉下家的設定範例 (非實際) 如下 : 



老張家的設定範例 (非實際) 結果頁面如下, 底下多了 PPoE 撥接方式的提醒 : 




亦即在使用 PPoE 撥接時, 固定 IP 登入帳號需為 xxxxxxxx@ip.hinet.net, 這個很重要, 如果是將固定 IP 綁定到 VCR 監視器, 也是要用此帳號 (但一戶只能有一台設備使用此固定 IP 帳號).

2021年7月27日 星期二

露天購買藍芽耳機與榨汁機

今天在露天看到 145 元的藍芽耳機, 想說最近常上線上課程所以就買了一組, 因為免運要 177 以上, 所以加買一個菁菁做蛋糕要用的檸檬榨汁器 :





免運合計 183 元. 

2021-07-30 補充 :

貨品今天到貨, 耳機試用音質還可以. 藍芽連線名稱為 i9s, 說明書操作方法摘要如下 : 
  1. 開機 : 長按按鍵 3 秒顯示燈閃爍藍燈後即開機. 
  2. 配對 : 開啟手機或電腦藍芽搜尋 i9s 名稱的藍芽裝置進行配對, 雙擊任一耳機的按鍵即自行配對, 成功後會間隔 5 秒閃爍藍燈. 
  3. 關機 : 長按按鍵 3 秒顯示燈閃紅燈三次後即關機, 在左右耳機配對使用時, 只要在其中一個操作關機, 另一支耳機將自動隨同關機. 
  4. 聽音樂 : 音樂播放中按一下按鍵將暫停播放, 再按一下則繼續. 長按 2 秒跳下一曲. 
  5. 電話 : 藍芽連線中可撥打電話, 這時音樂會暫停, 掛斷後會自動繼續播放. 聽音樂時接到來電會語音提示來電號碼, 按一下按鍵即暫停音樂接聽, 掛斷後音樂會繼續播放, 雙擊按鍵將回撥電話. 來電時若長按按鍵則為拒接, 通話中按一下可掛斷電話.  
  6. 充電 : 將耳機放進充電倉, 充電時耳機紅燈長亮, 充電口閃紅燈, 充飽電後兩個都熄滅. 

2021年7月26日 星期一

2021 年第 30 周記事

上週二預約了打 AZ 疫苗, 原本想要周五下午請假去打, 但因周四周五兩天要上課, 所以預約 7/29 週四下午到巨蛋去打. 

週日下午打理完晚餐備菜後準備採收龍眼, 但一直在下雨, 直到傍晚間歇暫停時, 趕緊抬出高鋁梯, 請爸在底下拿竹籃竿接果, 總共採了六袋, 一袋給岳父, 一袋給元順他爸, 感謝他常拿拔樂過來, 一袋給琪大師, 因上回來鄉下辦桌, 拿錢又不收, 只好用龍眼略表心意. 另外給阿中一袋, 留給爸一袋, 其餘自用. 為了周末繼續採收靠田那邊以及較高的果子, 晚上也在露天買了一支採果器. 

本週實驗了了道菜, 週日中午試做咕咾肉, 雖然是用端午回鍋肉製作, 但滿滿一大盤也都銷完, 嗯, 非常有成就感. 晚上則試做紅燒吳郭魚, 比以前竿間要有味道, 但煎魚時用油太多是一敗筆 (就中午油炸咕咾肉丁剩下的), 下次還是像乾煎那樣的油量即可. 

本周我都在埋首讀 tkinter 文件並進行測試, 我以為可以快速搞定它, 實際上做起來並不容易. 我現在是採取雙主題學習, 先讀兩三天 Numpy, 疲乏之後就換 tkinter, 如此一再反覆就可以避免因為單一科目學太久太過單調而失去動力問題. 

露天購買 Type C 磁吸頭

上回幫爸的小米 Poco M3 手機買的磁吸頭到貨才發現勾選到安卓, 應該選 Type C 才對, 所以趁著露天奧運優惠上網再添購磁吸頭 (線已有) :





奇怪, 可能是沒達到門檻, 免運券有選但沒有用, 所以優惠券 60 元好底運費. 

露天購買高枝剪+摘果器

晒穀場邊的龍眼本周開始採收, 週日下午我拿高梯架在樹下, 爸拿裝果袋竹竿接取剪下來的龍眼, 趁著陣雨的間歇空檔, 順利將西側的龍眼大致採完, 但更高的就需要買個採果竿才行, 今晚 10 點露天剛好有奧運活動, 輸入 TEFIGHT 省兩百, 這次優惠終於被我搶到了! 





除了奧運優惠券省兩百, 還有免運券, 原價 1427 實付 1227 元, 哈哈. 

2021年7月25日 星期日

試做咕咾肉

鄉下家的冰箱因為放波羅蜜而幾乎塞滿必須清一清, 找出端午節拜拜的豬肉, 以前都用來做紅燒肉, 但這已吃膩了. 不如就先拿來試做咕咾肉, 先學個經驗, 下周姊姊回來再買新鮮的豬後腿肉來做. 作法參考柚子媽媽的食譜 :







雖然是回鍋肉, 我還是照食譜用刀背把每片肉都打過才切, 結果肉好像比食譜的還多, 起鍋前嘗一下味道發覺甜度不夠, 所以又補了半匙糖才對味. 滿滿一大盤居然吃到只剩下一點點, 不過還是夠裝爸的便當兩個啦! 

自評有 90 分, 這是我第一次做油炸實驗, 算是很成功, 以前都覺得油炸要用掉很多油很浪費, 所以用到油炸的食譜我都跳過, 但其實用過的油都可以存下來炒菜, 一點都不會浪費. 不過下周做之前要把程序記牢, 才不會臨時抱佛腳, 尤其油鍋需掌握一下火候與時間. 

天瓏書局預購優惠

今天在天瓏看到兩本即將上市的好書, 預購有 75 與 79 折優惠 :


旗標在明儀 VIP 是 85 折,  能拿 75 折算是很優啦!

另外這本也不錯 : 


還沒決定要預購, 因最近買書買太兇, 先記錄下來, 或許上市後 momo 更優.