Week14:Sentiment Analysis

Suppanut Sittimakarn
Nov 1 · 3 min read

Sentiment Analysis นั้นคือการวิเคราะห์ในแง่ของภาษาว่าจะเป็นไปในรูปแบบไหน โดยแบ่งเป็นสามส่วนหลัก ๆ ก็คือ 1.Neutral(เป็นกลาง) 2.Negative(เชิงลบ) 3.Positive(เชิงบวก) โดยทั้งนี้ก็จะสามารถนำไปต่อยอดต่างๆได้มากมาย ตัวอย่างเช่น การสร้างแชทบอท สำหรับคุยกับลูกค้า จะทำให้เรารู้ได้ว่าลูกค้ามีความรู้สึกอย่างไรกับผลิตภัณฑ์ที่เราทำ เป็นต้น ลองไปดูในส่วนของโค้ดกันครับ

ข้างล่างนี้จะเป็นการimport Libraryที่ใช้และก็โหลดดาต้าไฟล์มานะครับ

แบ่งความหมายของคำดังรูปนะครับ โดยที่neg= Negative,neu=neutral, pos=posirtive

หากจะวาดเป็นกราฟเปรียบเทียบจำนวนก็จะได้ประมาณนี้

ทดลองการตัดคำ ของประโยคที่ยกตัวอย่าง ซึ่งถือว่ามีความแม่นยำอยู่ เช่น นิสสัน นั้นเป็นคำเดียวกัน โดยที่มันไม่ได้ตัดแบ่งเป็น นิส กับ สัน เป็นอย่างละคำ

ความยาวของประโยค และทำการหาค่าcount,mean,std และคำที่ยาวที่สุดตามโค้ดด้านล่าง

หาคำที่มีความยาวสูงสุด ซึ่งของผมจากข้างบนจะเห็นได้ว่าค่าที่ยาวที่สุดเป็น 758 ดังนั้นเราจึงมาดูกันครับว่าจะมีหน้าตาเป็นอย่างไร

แบ่งแยกว่าแต่ละคำอยู่ในเชิงไหน ให้เป็นในรูปแบบกราฟและแบ่งว่าความยาวที่เท่านี้จะมีจำนวนเท่าไหร่ตามรูปด้านล่าง

สุ่มเลือกคำที่เป็นกลางมา

แสดงข้อความที่มีความหมายเชิงบวกและจำนวนคำของมัน

เหมือนกับขอข้างบนเลยครับ แต่เป็นความหมายเชิงลบ

นำข้อมูลของทุกความหมายมาต่อกัน

ทดลองทำWord2Vec

ผลลัพธ์ที่ได้

ทดลองทำหาค่าของความใกล้เคียงกันของคำในแต่ละบริบท ว่ามีความเหมือนกันแค่ไหน

ทีนี้มาถึงการเทรนข้อมูลของเรากันบ้างครับ ทำเป็นone-hotกันก่อน

เปลี่ยนหนังสือเป็นตัวเลข

ทำการpadding

นิยามข้อมูล

ทำการsplit ดาต้า

ทดลองเทรน

กราฟที่ได้

ค่าความแม่นยำที่ได้นะครับ อยู่ในปริมาณที่น่าพอใจเลยทีเดียว

ขอบคุณที่เข้ามาอ่านนะครับ

Welcome to a place where words matter. On Medium, smart voices and original ideas take center stage - with no ads in sight. Watch
Follow all the topics you care about, and we’ll deliver the best stories for you to your homepage and inbox. Explore
Get unlimited access to the best stories on Medium — and support writers while you’re at it. Just $5/month. Upgrade