วิชา: การวิเคราะห์ข้อมูลเชิงสำรวจ (Exploratory Data Analysis - EDA)
งานสอบกลางภาค (Midterm Examination): Project-Based Examination (คะแนนเต็ม 20 คะแนน)
อาจารย์ผู้สอน: ผู้ช่วยศาสตราจารย์ ดร.โอฬาริก สุรินต๊ะ
ภาคการศึกษาที่ 1 ปีการศึกษา 2569
- นายณัฐวุฒิ พละศักดิ์ รหัสนิสิต 67011211017
- นายพงศกร ไชยรงศรี รหัสนิสิต 67011211039
- นายอนุรักษ์ งามจันอัด รหัสนิสิต 67011211062
- นายปภังกร กุศล รหัสนิสิต 67011211035
👉 https://wayu15244.github.io/ScopusDataMidTerm/
(หรือเปิดไฟล์ docs/index.html )
โครงงานนี้มุ่งเน้นการสืบค้น วิเคราะห์เชิงสำรวจ (EDA) และเตรียมคุณลักษณะ (Feature Engineering) ข้อมูลงานวิจัยทางวิทยาการคอมพิวเตอร์ (Computer Science) จากฐานข้อมูลวิชาการระดับสากล Scopus ครอบคลุม 10 สาขาวิชาย่อย (Subject Areas) เพื่อเข้าใจโครงสร้างความสัมพันธ์ของคำสำคัญ ความเชื่อมโยงข้ามศาสตร์ และเตรียมความพร้อมของข้อมูลสำหรับนำไปฝึกฝนโมเดล Machine Learning ในการสกัดเวกเตอร์ความหมาย (Text Embedding) ด้วยโมเดล SPECTER2
- Artificial Intelligence (ข้อมูลสะอาด 697 รายการ)
- Computational Theory and Mathematics (ข้อมูลสะอาด 699 รายการ)
- Computer Graphics and Computer-Aided Design (ข้อมูลสะอาด 702 รายการ)
- Computer Networks and Communications (ข้อมูลสะอาด 690 รายการ)
- Computer Vision and Pattern Recognition (ข้อมูลสะอาด 704 รายการ)
- Hardware and Architecture (ข้อมูลสะอาด 692 รายการ)
- Human-Computer Interaction (ข้อมูลสะอาด 703 รายการ)
- Information Systems (ข้อมูลสะอาด 702 รายการ)
- Signal Processing (ข้อมูลสะอาด 702 รายการ)
- Software (ข้อมูลสะอาด 700 รายการ)
ทุกสาขาวิชามีจำนวนบทความเกินเกณฑ์ขั้นต่ำ 600 รายการตามข้อกำหนดของอาจารย์ผู้สอนอย่างครบถ้วน (รวมข้อมูลสะอาดทั้งสิ้น 6,991 รายการ จากข้อมูลดิบ 7,280 รายการ)
ในโครงงานนี้ได้จัดเตรียมสคริปต์ภาษา Python หลักสำหรับแสดงกระบวนการทำงานจริงตามโจทย์ของรายวิชา:
python scopus_eda_analysis.pyขั้นตอนการทำงานของสคริปต์:
-
การโหลดและตรวจสอบข้อมูลดิบ: โหลดชุดข้อมูล 7,280 รายการจาก
data/scopus_10subjects_raw.csvตรวจสอบมิติและชนิดของคอลัมน์ - การขจัดข้อมูลซ้ำซ้อน (Deduplication): ตรวจจับบทความที่ปรากฏซ้ำข้ามสาขาด้วยชื่อบทความ และคงไว้เพียงสาขาเดียว (ตัดออก 175–180 รายการ)
-
การกรองข้อมูลที่ไม่เกี่ยวข้อง (Cleaning & Filtering):
- กรองบทความภาษาต่างประเทศที่ไม่ใช่ภาษาอังกฤษ (25 รายการ)
- กรองบทความที่ไม่มีบทคัดย่อหรือบทคัดย่อสั้นกว่าเกณฑ์ (30 รายการ)
- คัดแยกบทความนอกศาสตร์คอมพิวเตอร์ เช่น ดัชนีอสังหาริมทรัพย์ในดูไบ, การจัดการโรงแรม, รากฟันเทียม และผลผลิตข้าวสาลี (59–60 รายการ)
- การคำนวณสถิติเชิงพรรณนา: คำนวณค่าเฉลี่ย มัธยฐาน และการกระจายตัวของ Citations และปีที่ตีพิมพ์
- การสร้างข้อความรวม (Text Concatenation): รวม Title, Abstract, Author Keywords และ Index Keywords พร้อมแท็กระบุส่วน
-
การสกัด Feature Vector และ L2 Normalization: จำลองการสกัดเวกเตอร์มิติ 768 และปรับขนาดด้วย L2 Norm (
$||v||_2 = 1.0$ ) พร้อมสำหรับงาน Machine Learning
แดชบอร์ดได้รับการออกแบบใหม่ทั้งหมดโดยประยุกต์ใช้เทคโนโลยี Apache ECharts พร้อมระบบ Force-directed Physics Simulation ป้องกันปัญหาตัวอักษรและโหนดซ้อนทับกันอย่างสิ้นเชิง ประกอบด้วย 6 มุมมองหลัก:
- Interactive Knowledge Network: กราฟเครือข่ายความสัมพันธ์คำสำคัญแบบฟิสิกส์แรงผลัก ขนาดโหนดแทน Document Frequency และความหนาของเส้นแทน Co-occurrence Weight แบ่งเป็น 5 Thematic Clusters พร้อมระบบคลิกโหนดเพื่อดูรายการบทความจริงในแถบด้านข้าง
- Dynamic Semantic Word Cloud: คลาวด์คำสำคัญจัดวางแบบไร้การซ้อนทับ (Collision-free Layout) กรองดูแนวโน้มรายปี (2020–2026) และคลิกเพื่อนำคำสำคัญไปค้นหาในบทความได้ทันที
- Cross-Disciplinary Topic Overlap Heatmap: แผนภูมิความร้อนแบบไล่ระดับสีต่อเนื่อง (Continuous Gradient) แสดงการกระจายตัวของเทคโนโลยีสำคัญ (เช่น Machine Learning, Cloud, Optimization) ข้ามทั้ง 10 สาขาวิชา
-
Strategic Topic Growth & Evolution Quadrant: จตุภาคประเมินการเติบโตเชิงยุทธศาสตร์: คำนวณอัตราการเติบโตเชิงสัมพัทธ์
$log_2(Recent/Prior)$ เทียบกับปริมาณบทความจริง แบ่งออกเป็น 4 โซน: High-Volume Emerging, Core Established, Emerging Niche, และ Specialized Topics - EDA Descriptive Metrics: แดชบอร์ดสรุปสถิติเชิงพรรณนา กราฟแท่งเปรียบเทียบข้อมูลดิบกับข้อมูลสะอาด และกราฟพื้นที่แนวโน้มปีที่ตีพิมพ์
- Scopus Literature Explorer: ระบบค้นหาบทความวิจัย ค้นหาตามชื่อเรื่อง ผู้แต่ง หรือคำสำคัญ กรองตามสาขาวิชา และเรียงตามการอ้างอิง พร้อมหน้าต่าง Modal แสดงบทคัดย่อฉบับเต็มและลิงก์ DOI
- การรวมฟิลด์ข้อความ: บูรณาการ Title, Abstract, Author Keywords และ Index Keywords โดยมีแท็กระบุนำหน้าชัดเจน
- ข้อจำกัดความยาวโทเค็น (512 Tokens): รองรับโมเดลเฉพาะทางด้านวิทยาศาสตร์ SPECTER2 (
allenai/specter2_base+ proximity adapter) ซึ่งข้อมูลส่วนใหญ่มีความยาวเฉลี่ยประมาณ 160–318 โทเค็น - L2 Normalization: ปรับขนาดเวกเตอร์ 768 มิติ ให้มีความยาวเท่ากับ 1 หน่วย ช่วยให้การวัด Cosine Similarity ผ่าน Dot Product ทำได้อย่างรวดเร็ว
- Machine Learning Readiness: ข้อมูลพร้อมนำไปประยุกต์ใช้งานในโจทย์ Subject Classification, Semantic Clustering (K-Means / HDBSCAN) และ Paper Recommendation
├── data/
│ ├── scopus_10subjects_raw.csv # ชุดข้อมูลดิบจาก Scopus (7,280 รายการ)
│ └── scopus_10subjects_cleaned.csv # ชุดข้อมูลที่ผ่านการคลีนแล้ว (6,991 รายการ)
├── docs/ # เว็บไซต์ Interactive Visualization สำหรับ GitHub Pages
│ ├── index.html # แดชบอร์ดนำเสนอผลงานแบบโต้ตอบได้สมบูรณ์ (6 มุมมอง)
│ ├── css/style.css # สไตล์ชีทโมเดิร์น
│ ├── js/
│ │ ├── app.js # จาวาสคริปต์ควบคุมการทำงานและการวาดกราฟ ECharts
│ │ ├── echarts.min.js # ไลบรารี Apache ECharts (ออฟไลน์ 100%)
│ │ └── echarts-wordcloud.min.js # ปลั๊กอิน Word Cloud แบบไร้การซ้อนทับ
│ └── data/viz_data.json # ข้อมูลสถิติและกราฟสำหรับหน้าเว็บ
├── report/
│ ├── EDA_Scopus_Report.docx # รายงานวิชาการฉบับสมบูรณ์ (รูปแบบ Word ฟอนต์ TH Sarabun New)
│ ├── EDA_Scopus_Report.pdf # รายงานวิชาการฉบับสมบูรณ์ (รูปแบบ PDF)
│ └── figures/ # รูปภาพแผนภูมิความละเอียดสูงที่ใช้ในเล่มรายงาน
├── slides/
│ ├── EDA_Scopus_Presentation.pptx # สไลด์นำเสนอ 16:9 สไตล์ Modern Minimal พร้อม Speaker Notes
│ └── EDA_Scopus_Presentation.pdf # สไลด์นำเสนอรูปแบบ PDF
├── scopus_eda_analysis.py # สคริปต์ Python หลักแสดงการทำงาน EDA & ML Pipeline
├── README.md # เอกสารแนะนำโครงงาน
└── .gitignore # การตั้งค่าคัดกรองไฟล์
- Visualization: 5 คะแนน (ผ่านการส่งมอบเว็บแอพ Interactive ECharts Dashboard 6 มุมมอง)
- Slide Presentation: 5 คะแนน (ผ่านการส่งมอบไฟล์ PPTX และ PDF ดีไซน์ 16:9 มี Speaker Notes ครบถ้วน)
- Report: 10 คะแนน (ผ่านการส่งมอบเล่มรายงาน DOCX และ PDF ครบทั้ง 3 ส่วนตามข้อกำหนด)