Week14:Sentiment Analysis
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 ดาต้า

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