เครื่องมือแยก N-gram
N-gram คือลำดับคำที่ต่อเนื่องกัน n คำในข้อความ เครื่องมือนี้จะแปลงข้อความของคุณเป็นตัวพิมพ์เล็ก ตัดข้อความออกเป็นคำที่ทุกช่องว่างและทุกเครื่องหมายวรรคตอน แล้วนับ n-gram ทุกตัวตามความยาวที่คุณเลือก (1 ถึง 8) ผลลัพธ์คือตารางความถี่แบบ CSV ที่เรียงจากคำที่พบบ่อยที่สุดลงมา ซึ่งเป็นตารางเดียวกับที่ใช้ตรวจความหนาแน่นคำหลักใน SEO ใช้ทำ smoothing ให้โมเดลภาษา และใช้ตรวจการคัดลอกผลงาน หมายเหตุสำคัญสำหรับภาษาไทย: เครื่องมือนี้ตัดคำด้วยช่องว่าง จึงต้องตัดคำภาษาไทยให้เรียบร้อยก่อนนำมาวาง (ดูหัวข้อด้านล่าง)
วิธีแยก n-gram
-
1
วางข้อความของคุณ
ใส่บทความ บทถอดเสียง หรือข้อความโฆษณาสินค้า ไม่จำกัดความยาวสำหรับข้อความขนาดปกติ
-
2
เลือกค่า n
ยูนิแกรม (1) ไบแกรม (2) ไตรแกรม (3) ไปจนถึง 8 เลือกได้ครั้งละหนึ่งค่า
-
3
กดแยก n-gram
ระบบจะแปลงข้อความเป็นตัวพิมพ์เล็กแล้วตัดออกเป็นคำ โดยถือว่าเครื่องหมายวรรคตอนเป็นตัวคั่นและตัดทิ้ง
-
4
อ่านตารางความถี่
n-gram แต่ละตัวจะแสดงพร้อมจำนวนครั้งที่พบ เรียงจากที่พบบ่อยที่สุดลงมา
-
5
คัดลอกไฟล์ CSV
ผลลัพธ์คั่นด้วยเครื่องหมายจุลภาค (N-gram,Count) พร้อมวางลงในสเปรดชีตได้ทันที
ความยาวของ n-gram แต่ละแบบบอกอะไรได้บ้าง
| N | ชื่อ | กรณีการใช้งาน |
|---|---|---|
| 1 | ยูนิแกรม | ความหนาแน่นคำหลัก การจัดผังหัวข้อ |
| 2 | ไบแกรม | วลี (“search intent”, “page speed”) และคำที่มักปรากฏคู่กัน |
| 3 | ไตรแกรม | วลีหางยาว การตรวจจับคุณลักษณะ |
| 4+ | สี่แกรมขึ้นไป | การตรวจจับเนื้อหาซ้ำ สัญญาณการคัดลอกผลงาน |
เครื่องมือนี้ตัดข้อความของคุณอย่างไร
- ทุกอย่างถูกแปลงเป็นตัวพิมพ์เล็ก ดังนั้น “The” กับ “the” จึงถูกนับรวมเป็นแถวเดียวกัน
- คำ คือชุดตัวอักษร ตัวเลข หรือเครื่องหมายอะพอสทรอฟีที่ติดกัน ส่วนอักขระอื่นทั้งหมด (เครื่องหมายวรรคตอน สัญลักษณ์ การขึ้นบรรทัดใหม่) ถือเป็นตัวคั่นและถูกตัดทิ้ง
- ไม่มีการรักษาขอบเขตของประโยค คำสุดท้ายของประโยคหนึ่งกับคำแรกของประโยคถัดไปยังจับคู่เป็น n-gram ได้ จึงควรระวังคู่คำที่คร่อมประโยค หากเรื่องนี้สำคัญ ให้วิเคราะห์ทีละประโยคหรือทีละย่อหน้า
- คำหยุด (stopword) ยังคงอยู่ ระบบไม่กรองให้ ถ้าต้องการเฉพาะวลีเชิงความหมาย ให้ลบแถวเหล่านั้นออกจาก CSV ภายหลัง
- ระบบหาคำจากช่องว่างและเครื่องหมายวรรคตอน จึงนับ n-gram ระดับ คำ ได้เฉพาะภาษาที่เว้นวรรคระหว่างคำเท่านั้น ภาษาไทยไม่เว้นวรรคระหว่างคำ เช่นเดียวกับภาษาจีนและภาษาญี่ปุ่น ข้อความไทยที่เขียนติดกันทั้งประโยคจะถูกมองเป็น “คำ” เดียว ผลลัพธ์จึงไม่มีความหมาย ให้ตัดคำก่อนด้วยเครื่องมือตัดคำ (เช่น PyThaiNLP/newmm หรือ deepcut สำหรับภาษาไทย, jieba สำหรับภาษาจีน, MeCab สำหรับภาษาญี่ปุ่น) ให้ได้ข้อความที่คั่นแต่ละคำด้วยช่องว่าง แล้วจึงนำมาวางที่นี่
เมื่อไรควรตัดคำหยุดออก
คำหยุดคือคำที่ทำหน้าที่ทางไวยากรณ์และพบบ่อยมาก เช่น “the”, “a”, “of”, “and” ในภาษาอังกฤษ หรือ “ที่”, “และ”, “ของ”, “ใน” ในภาษาไทย การเก็บคำเหล่านี้ไว้จะทำให้รายการไบแกรมเต็มไปด้วยคู่คำที่ไม่มีสาระ เช่น “of the” หรือ “ที่ ใน” เครื่องมือนี้เก็บคำหยุดไว้ทั้งหมด ดังนั้นให้ลบแถวเหล่านั้นออกจากไฟล์ที่ส่งออกเมื่อคุณต้องการเฉพาะวลีเชิงความหมาย และเก็บไว้เมื่อคุณกำลังศึกษาสำนวนการเขียน การระบุตัวผู้ประพันธ์ หรือโมเดลภาษาที่คำเหล่านี้เป็นสัญญาณสำคัญ
กรณีการใช้งานด้าน SEO
สำหรับบทความที่ตั้งเป้าคำว่า “nginx config generator” ให้ตรวจสอบว่า:
- ไบแกรมและไตรแกรมเป้าหมายของคุณอยู่ใน 20 อันดับแรก ถ้า “nginx config” อยู่อันดับที่ 40 แสดงว่าคุณน่าจะใช้คำนี้น้อยเกินไป
- คุณไม่ได้ยัดคำหลักจนเกินพอดี ถ้าคำนั้นอยู่อันดับ 1 แบบทิ้งห่างคำอื่นมาก บทความจะอ่านดูเหมือนสแปม
- มีคำข้างเคียงเชิงความหมายอยู่จริง ไบแกรมที่เกี่ยวข้อง เช่น “server block”, “proxy pass” และ “ssl certificate” ช่วยยืนยันกับเครื่องมือค้นหาว่าเนื้อหาครอบคลุมหัวข้อนั้นจริง
การใช้งานด้าน NLP และงานวิชาการ
- โมเดลภาษา ใช้ความถี่ของ n-gram ในการทำ smoothing และ backoff (Kneser-Ney, Good-Turing)
- งานวิจัยระบุตัวผู้ประพันธ์ เปรียบเทียบการกระจายของไตรแกรมระหว่างผู้ประพันธ์ที่เป็นไปได้
- การประเมินการแปลด้วยเครื่อง (BLEU) ให้คะแนนจากการซ้อนทับของ n-gram ระหว่างคำแปลของระบบกับคำแปลอ้างอิง
คำถามที่พบบ่อย
ตั้งแต่ข้อความสั้นระดับทวีต (ซึ่ง n-gram แทบไม่มีความหมาย) ไปจนถึงหนึ่งบทของหนังสือ หากต้องการความน่าเชื่อถือทางสถิติสำหรับไบแกรม ควรมีคำตั้งแต่ 1,000 คำขึ้นไป ส่วนไตรแกรมควรมี 10,000 คำขึ้นไป ถ้าน้อยกว่านั้นอันดับที่ได้จะแกว่งและเชื่อถือได้ยาก
ได้ก็ต่อเมื่อคุณตัดคำภาษาไทยมาก่อนแล้วเท่านั้น เครื่องมือนี้มองว่า “คำ” คือชุดตัวอักษรที่อยู่ระหว่างตัวคั่น และภาษาไทยเขียนติดกันโดยไม่เว้นวรรคระหว่างคำ ประโยคไทยทั้งประโยคจึงถูกนับเป็นคำเดียว ให้ตัดคำด้วย PyThaiNLP (newmm) หรือ deepcut ให้แต่ละคำคั่นด้วยช่องว่างก่อน แล้วจึงนำข้อความที่ตัดคำแล้วมาวางที่นี่ ข้อจำกัดเดียวกันนี้ใช้กับภาษาจีน (jieba) และภาษาญี่ปุ่น (MeCab) ด้วย
ไม่แยกในเครื่องมือนี้ ข้อความจะถูกแปลงเป็นตัวพิมพ์เล็กเสมอก่อนนับ “The” กับ “the” (หรือ “Apple” กับ “apple”) จึงถูกนับรวมเป็นแถวเดียวกัน ไม่มีโหมดที่แยกแยะตัวพิมพ์ หากคุณจำเป็นต้องแยกชื่อเฉพาะหรือโค้ดออกจากกัน ให้ทำเครื่องหมายไว้ในข้อความก่อนนำมาวาง
มีผลในฐานะตัวคั่นคำ และจะไม่ปรากฏอยู่ภายใน n-gram แต่มันไม่ได้ตัดหน้าต่างการนับ คำสุดท้ายของประโยคหนึ่งกับคำแรกของประโยคถัดไปยังถูกนับรวมกันเป็นไบแกรมอยู่ดี หากคุณต้องการให้ยึดขอบเขตประโยคอย่างเคร่งครัด ให้ประมวลผลทีละประโยคหรือทีละย่อหน้า
เครื่องมือนี้ไม่ได้ใช้รายการคำหยุดใด ๆ คุณจึงต้องกรองเองหลังส่งออก รายการคำหยุดภาษาอังกฤษที่ใช้กันมากที่สุดคือชุด 179 คำของ NLTK ซึ่งเครื่องมือ SEO ส่วนใหญ่ใช้กัน ส่วน Snowball, SpaCy และ scikit-learn มีรายการที่ต่างกันเล็กน้อย สำหรับภาษาไทย ให้ใช้รายการคำหยุดภาษาไทยของ PyThaiNLP
เครื่องมือที่เกี่ยวข้อง
เครื่องสุ่มนามสกุล
สุ่มสร้างนามสกุลชุดหนึ่งจากนามสกุลที่พบบ่อยที่สุดในสหรัฐอเมริกา เฉพาะนามสกุล ไม่มีชื่อต้น
ตัวช่วยค้นหาคำสำหรับ Wordle
ป้อนคำเดาภาษาอังกฤษ 5 ตัวอักษรพร้อมระบุผลช่องสีเขียว สีเหลือง และสีเทา เพื่อค้นหาคำที่ตรงกัน ระบบตรวจสอบตัวอักษรซ้ำอย่างแม่นยำ
เครื่องมือแปลงข้อความเป็นเกียรุโมจิ
แปลงคานะญี่ปุ่น คันจิที่ใช้บ่อย และตัวอักษรละตินเป็นเกียรุโมจิ หรือเลือกแบบเต็มความกว้าง วงกลม สี่เหลี่ยม หรือตัวหนา แล้วคัดลอกได้ทันที
เครื่องแปลงตัวเลขเป็นคำไทย
เขียนจำนวนไม่เกิน 18 หลักเป็นคำไทย หรือเขียนจำนวนบาทและสตางค์ตามค่าที่กรอกในเบราว์เซอร์ รองรับเลขอารบิกกับเลขไทยและไม่ปัดค่า
เครื่องสร้างชื่ออิตาลีแบบสุ่ม
จับคู่หนึ่งใน 40 ชื่ออิตาลีกับหนึ่งใน 40 นามสกุล ผลอาจซ้ำและไม่มีตัวกรองเพศหรือภูมิภาค
เครื่องสุ่มนามสกุลญี่ปุ่น
เลือกนามสกุลญี่ปุ่นแบบโรมาจิ 1–60 รายการโดยไม่ซ้ำในชุดเดียว จากรายการคงที่ 60 รายการ
เครื่องมือนี้มีให้บริการในภาษาอื่น
- مستخرج N-gram [AR]
- Extractor de n-gramas [ES]
- N-Gramm-Extraktor [DE]
- Ekstraktor n-gramów [PL]
- Ekstraktor N-gram [ID]
- Trình trích xuất N-gram [VI]
- Extracteur de n-grammes [FR]
- N-gram 抽出ツール [JA]
- N-gram-extractor [NL]
- N-gram-extraktor [SV]
- Extrator de n-gramas [PT]
- N-그램 추출기 [KO]
- Estrattore di n-grammi [IT]
- Экстрактор N-грамм [RU]
- N-gram Çıkarıcı [TR]
- N-gram 提取器 [ZH]
- N-gram Extractor [EN]