StayFocusd ~ Extension

สำหรับ Blog ที่2 ในรอบปีงบนี้ จะขอว่าด้วยเรื่อง Extension บน Chrome ที่เรียกว่า StayFocusd !! StayFocusd คืออะไร แล้วเจ้าตัวนี้เนี่ยมันทำอะไรได้บ้าง ? มา ไม่ต้องเกริ่นไปเกริ่นมามากมาย เรามาเริ่มทำความรู้จักกันเลยดีกว่า StayFocusd เป็น Extension อีกตัวนึงที่ช่วยเพิ่มประสิทธิภาพในการทำงานของเราด้วยการ “บังคับ” และ “จำกัด” เวลาที่ตัวเราเองใช้ไปกับเว็บไซต์ต่างๆ ที่ทำให้เราเสียเวลา เว็บที่หัวหน้าเรามองว่าไม่มีประโยชน์ (แต่มันมีประโยชน์ทางจิตใจกับเราไง หัวหน้าไม่เข้าใจหนูหรอกกกกกก T T) extension อันนี้เหมาะมาก สำหรับใครที่ติด Social Network เปิด youtube อัพเดทสถานะบน facebook ดูซีรีย์เกาหลีออนไลน์ ดูละครย้อนหลังผ่าน line tv เข้า shopee lazada บลาๆ จนถึงระดับที่ทำให้เสียการเสียงาน ลองมาใช้ StayFocusd กันดูเถอะ เบื้องต้นมันจะให้เรานำเว็บไซต์ที่เรามองละ ว่ามีแนวโน้มที่จะสูบเวลาของเราไปโดยเปล่าประโยชน์ ไปใส่ไว้ใน List แล้วก็ให้ตั้งเวลาในการที่เราจะไม่สามารถเข้าเว็บนั้นๆ ไม่ได้ชั่วคราว (ตามเวลาที่เราระบุไว้) เพื่อให้ ณ ห้วงเวลาดังกล่าว เราสามารถกลับมามีสมาธิจดจ่ออยู่กับงานได้ 100% แทน *** ลองมาดูการติดตั้ง และใช้งานแบบคร่าวๆ กันเถอะ ขั้นตอนที่ 1. เข้า Chrome web store และค้นหาเลย StayFocusd หรือคลิกที่นี่ เพื่อติดตั้ง ขั้นตอนที่ 2. เมื่อ Add to Chrome เรียบร้อยแล้ว มุมซ้ายของ Browser ก็จะมีสัญลักษณ์กลมๆ สีฟ้าๆ แสดงขึ้นมา ตามรูปเลย ขั้นตอนที่ 3. เข้าไปตั้งค่าการใช้งาน โดยคลิกเลือก Settings ขั้นตอนที่ 4. ตั้งค่าการใช้งานตามต้องการ เช่น Active Days, Active Hours, Blocked Site, Option ว่าเราต้องการให้การตั้งค่าที่ระบุไว้ทำงานในวันไหน ช่วงเวลาใด และสิ้นสุดเมื่อไหร่ รวมถึง site ที่ต้องการ Block หรือแม้กระทั้งการ customize ข้อความที่จะแสดงเมื่อเราเข้าใช้ในช่วงเวลาที่เว็บดังกล่าวโดน Block เป็นต้น ขั้นตอนที่ 5. เมื่อเราทดลองกำหนดตั้งค่าเรียบร้อยแล้ว และลองเข้าใช้งานดูก็จะพบกับหน้าจอประมาณนี้ สำหรับครั้งนี้ทางผู้เขียนก็ขอจบการแนะนำเพียงเท่านี้ หวังว่า Blog สั้นๆ อันนี้จะมีประโยชน์เล็กๆ น้อยๆ สำหรับผู้อ่าน แต่ก็นะ ไม่ใช่ว่า block ผ่านคอมพิวเตอร์ แต่หยิบมือถือขึ้นมาเปิด app ช้อปปิ้งออนไลน์ เล่น facebook แทนนะ แบบนั้นมันก็ …….. เอาเป็นว่า ตั้งใจทำงานกันเถิดพี่น้องชาวไทยยยยย ไว้เจอกันใหม่โอกาสหน้าเน้อ 🙂

Read More »

python #06 – Sentiment Analysis ด้วย Keras + Tensorflow

บทความนี้กล่าวแบบทางเทคนิค ไม่เน้นวิชาการ ทฤษฏีมากนัก Sentiment Analysis เป็นตัวอย่างที่ดีของการเริ่มต้นทำงานด้าน NLP (Natural Language Processing) เริ่มจากหาตัวอย่างประโยค (Inputs) และเป้าหมาย (Labels) แยกคำจากประโยค (Tokenization) แปลงให้เป็นตัวเลข (Word Representation) แล้วสอน NN (Train) วัดผล (Test/Evaluate) แล้วนำไปใช้ โดยป้อนประโยคเข้าไป แล้วดูว่า โมเดลของเราจะจัดให้เป็น Labels ใด (ในตัวอย่างนี้จะเป็น Multiclass (Multinomial) Classification) ดู Jupyter Notebook Input สมมุติเรามีตัวอย่างประโยคประมาณนี้แบ่งเป็น Positive, Neutral, Negative เพื่อไว้ใส่เพิ่มเติมได้ แล้วเอามารวมกันเป็น data โดยแปลงเป็น Numpy Array เพื่อสะดวกในการ Tokenization ต่อไป Tokenization ใน Keras มีเครื่องมือให้แล้ว คือ Tokenizer ใน Keras Text Preprocessing fit_on_texts ทำหน้าที่ แปลงข้อมูล “หลาย ๆ ประโยค” จาก data ในคอลัมน์ 0 ให้เป็นคำ ๆ โดยแยกคำด้วย “เว้นวรรค” และกำหนด Index ให้แต่ละคำ (word_index) โดย “เรียงตามความถี่” จะสังเกตุว่า คำว่า i , it อยู่อันดับ 1, 2 ตามลำดับ (และจะเห็นว่า มีการแปลงเป็น lower ทั้งหมด) One-hot Encode สำหรับค่า labels keras มี to_categorical method ทำหน้าที่เปลี่ยน Integer เป็น One-hot Encode ดังตัวอย่างด้านล่าง ในการแปลงกลับ ใช้ argmax method ของ Numpy เตรียมประโยค ให้เป็น Sequence ที่มีความยาวเท่ากัน การนำข้อมูลเข้าสู่ NN ต้องเตรียม Array ที่มีขนาดเท่า ๆ กัน ดังตัวอย่างในที่นี้ใช้ texts_to_sequences แปลง ประโยค ให้เป็น Sequence (Array of Integer)จากนั้น หาความยาวของประโยค และหาค่าสูงสูด (maxlen) — มีทั้งข้อดีข้อเสียแล้ว เติมเต็ม (Padding) ให้ทุกประโยค มีความยาวเท่ากัน โดยเติม 0 ข้างท้าย (padding=’post’) Word Embeding Word Embedding เป็น “หนึ่งในหลายวิธี” ของการแปลง คำ เป็น เวคเตอร์ของจำนวนจริง (vector of real number) จะเห็นได้ว่าตัวแปร x ข้างต้น เป็นจำนวนเต็ม (Integer) มีมิติเดียว ส่วน Word Embedding จะแปลง คำ ๆ นี้ (แทนด้วย) เป็นเวคเตอร์หลายมิติตามต้องการ (output_dim) โดยคำนวนจาก input_dim=จำนวนคำทั้งหมด (vocab_size) และ input_length=ความยาวของประโยคสูงสุด (maxlen) ตัวอย่างต่อไปนี้ แปลง x จำนวน 9 ประโยค เป็น Word Embedding ซึ่งกำหนด input_dim=vocab_size, input_length=maxlen (ในที่นี้คือ 6) และ ต้องการแสดง Word

Read More »

ติดตั้ง Let’s Encrypt Certificate สำหรับ SSL Sites บน IIS

หลังจากที่พี่หนุ่ม คณกรณ์ หอศิริธรรม  ได้เขียนเรื่อง วิธีติดตั้ง HTTPS ด้วย Certificate ของ Let’s Encrypt ไปแล้วนั้น ก็จะมาถึงทางฝั่ง Windows กันบ้าง ซึ่งจะติดตั้งผ่านเครื่องมือ บน Command Line ครับ ตัวอย่างนี้จะเป็นวิธีการติดตั้งโดยใช้เครื่องมือที่ชื่อว่า WinACME ซึ่ง ดาวน์โหลดได้ที่นี่ (จริงๆ มีหลายตัวให้เลือกใช้ครับ ซึ่งส่วนใหญ่จะเป็นการพัฒนาผ่าน ACME API มีทั้งแบบเป็น Command Line, Power shell และเป็น GUI ครับ) หลังจากดาวน์โหลดไฟล์มาแล้ว ผม Extract ไปไว้ที่ C:\LetsEncryptSSL จากนั้นก็เปิด Command Prompt ด้วยสิทธิ Administrator(เปิดด้วยสิทธิ Administrator เพื่อให้มีการสร้าง Schedule Task ในการ Renew Cert. โดยอัตโนมัติครับ) จากนั้นทำการเรียกด้วยคำสั่ง letsencrypt จะพบกับเมนูดังภาพนี้ครับ ผมเลือกตอบตัว “n” จะพบกับเมนูให้เลือกด้านล่างนี้ (สำหรับผู้ที่มีความชำนาญ สามารถเลือก M เพื่อเปิด advanced option ได้ครับ) และเนื่องจากเครื่องที่แสดงอยู่นี้ เป็น multiple site และผมจะทำการติดตั้งลงไปเพียง 1 site ตามนี้ครับ เลือก site จากนั้นกด Enter จะพบว่าโปรแกรมเริ่มทำการ Generate SSL Cert. และ Assign ไปยัง Site ของเรา พร้อมทั้งกำหนด Schedule Task เรียบร้อยแล้ว ลองดูผลลัพธ์ใน II ลองเปิดเว็บดู ผ่าน Google Chrome ปรากฎว่ามีรูปกุญแจขึ้นแล้วและเป็น Cert. ของ Let’s Encrypt ตามที่ต้องการ กลับไปตรวจสอบ Schedule Task พบว่ามีการสร้าง Task เพื่อ Renew Cert. เอาไว้แล้ว จบปิ๊ง…

Read More »

python #05 – การ Save/Load ตัวโมเดลจาก Keras แล้วนำไปใช้ใน Production Server

ต่อจาก python #03 – Train/Validation/Test and Accuracy Assessment with Confusion Matrix เมื่อสร้าง Neural Network Model แล้วทำการ Train/Test ปรับค่า Hyper parameters จนได้ผลเป็นที่พอใจแล้ว (Accuracy และ Confusion Matrix ให้ค่าที่รับได้) ก็สามารถเก็บ Model นี้เอาไว้ใช้งานภายหลัง ไม่ต้องเริ่มต้น Train ใหม่ โดยใช้คำสั่ง ก็จะได้ไฟล์ (ตามตัวอย่างนี้) ชื่อ example_model.h5 สามารถนำไปใช้บนเครื่อง Production ได้ โดยเรียกใช้งานด้วยคำสั่ง จากนั้น ก็จะสามารถใช้ mode.predict() เพื่อใช้งานได้ตามต้องการ ต่อ การสร้าง RESTful API สำหรับใช้งานจริง ง่าย ๆ ด้วย Flask และ Waitress ก็สามารถนำ Model นี้ไป Deploy เป็น RESTful API ได้เช่นกัน โดยเพิ่ม และ จากนั้น ก็สั่ง เพื่อส่งค่าผ่าน Postman ไป ที่ Server ก็จะ Error ว่า เหตุ เพราะยังไม่ได้มีการสร้าง Tensorflow Graph ขึ้นมา ดังนั้น ต้องเพิ่มคำสั่งต่อไปนี้ และ จากนั้น restart waitress_server แล้วส่งค่าเข้าไปใหม่ ก็จะได้การ Prediction แล้ว หวังว่าจะเป็นประโยชน์ครับ

Read More »

python #04 – Tensorboard

เมื่อติดตั้ง Tensorflow ก็จะมี Tensorboard ติดตั้งมาให้แล้ว วิธีการใช้งาน ก็แสนง่าย คือ ใน Code เพิ่ม(ตั้งชื่อ directory ให้ดี เช่นกรณีนี้ ตั้งชื่อว่า example-logs เป็นต้น) และในส่วนของ fit ให้เพิ่ม callbacks เข้าไป ดังภาพนี้ จากนั้นก็ Train ตามปรกติ เมื่อต้องการดู Tensorboard ก็เพียงเปิดอีก Terminal หนึ่ง (Command Prompt) ไปที่ Directory ที่มี log อยู่ แล้วใช้คำสั่ง ตัว Tensorboard ก็จะทำงาน อ่าน logs จาก –logdir ที่กำหนด แล้วแสดงผลที่ Port 6006 แต่รายละเอียดใช้ยังไง ขอศึกษาเพิ่มเติมก่อนครับ แหะ ๆ

Read More »