เครื่องมือข้อความและชีวิตประจำวัน · ชุดเครื่องมือข้อความ
เครื่องหมายวรรคตอนแบบเต็มความกว้าง: ทำไม 。 และ ! มีความสำคัญต่อกรณีและการนับประโยค
· พื้นหลัง
เครื่องมือข้อความ ยูนิโค้ด cjk-เครื่องหมายวรรคตอน
อธิบายว่าเครื่องหมายวรรคตอนแบบเต็มความกว้างและตามอุดมคติคืออะไร เหตุใดข้อความ CJK จึงใช้เครื่องหมายเหล่านี้ และเหตุใดตัวแปลงประโยค-ตัวพิมพ์หรือตัวนับประโยคที่รู้เพียง ASCII จุดเต็มจึงทำให้ข้อความสองภาษาผิด
ย่อหน้าภาษาญี่ปุ่นนับเป็นหนึ่งประโยค — ASCII-เครื่องมือเท่านั้นที่พลาด 。 และ ! โดยสิ้นเชิง
วาง `Release ready. 次の版です。確認してください!` ลงในตัวนับที่จดจำเฉพาะจุดเต็ม ASCII เท่านั้น และส่วนภาษาญี่ปุ่นอาจถูกดูดซึมเป็นส่วนที่เหลือยาวหนึ่งจุด เครื่องหมายที่มองเห็นได้ไม่ใช่รูปแบบการตกแต่ง แต่เป็นขอบเขตที่ผู้อ่านใช้ ดังนั้นการเพิกเฉยจะทำให้เกิดประโยคที่ทำให้เข้าใจผิด
ToolAcre รวม `.`, `!`, `?`, `。`, `!` และ `?` ในชุดการจับคู่ประโยค ซึ่งจะแก้ไขความล้มเหลว ASCII-only เฉพาะเจาะจง แต่ไม่ได้ทำให้ตัวนับเป็นตัวแยกวิเคราะห์ภาษาญี่ปุ่น ผลลัพธ์ยังคงมาจากการเรียงข้อความหารด้วยเครื่องหมายวรรคตอน โดยไม่มีแบบจำลองทางไวยากรณ์เป็นตัวตัดสินว่าความคิดจะสิ้นสุดที่ใด
ความกว้างแบบครึ่งความกว้างและความกว้างเต็ม — มรดกของการเรียงพิมพ์ระยะพิทช์คงที่ CJK และบล็อก Unicode ที่พกพาไป
“ความกว้างเต็ม” อธิบายอักขระที่ออกแบบมาให้ใช้ความกว้างที่เกี่ยวข้องกับเซลล์อุดมคติในรูปแบบเอเชียตะวันออกที่มีความกว้างคงที่ Unicode จะรักษารูปแบบความเข้ากันได้ เช่น `!` และ `?` ในขณะที่ภาษาญี่ปุ่นยังใช้เครื่องหมายวรรคตอนตามอุดมคติ รวมถึง `。` และ `、` ลักษณะที่คล้ายกันไม่ได้หมายถึงจุดรหัสที่เหมือนกันหรือความหมายที่เปลี่ยนแทนกันได้
Unicode Standard วางตัวแปรแบบเต็มความกว้าง ASCII ในบล็อกแบบฟอร์ม Halfwidth และ Fullwidth ในขณะที่ U+3002 IDEOGRAPHIC FULL STOP และ U+3001 IDEOGRAPHIC COMMA เป็นของ CJK สัญลักษณ์และเครื่องหมายวรรคตอน ความแตกต่างดังกล่าวมีความสำคัญต่อซอฟต์แวร์: นิพจน์ทั่วไปต้องตั้งชื่อหรือจัดประเภทอักขระจริงที่นิพจน์ทั่วไปตั้งใจจะจดจำ
จุดแสดงอุดมการณ์และความเกี่ยวข้องของมัน — 。、!? และเครื่องหมายวรรคตอน ASCII รูปแบบเต็มความกว้าง
`。` โดยปกติจะปิดประโยคภาษาญี่ปุ่น `、` แยกเนื้อหาออกเป็นประโยคเดียว และ `!?` ให้คำถามและเครื่องหมายอัศเจรีย์ที่คุ้นเคยในสำเนาสมัยใหม่ ความกว้างเต็ม `!` และ `?` สอดคล้องกับเครื่องหมาย ASCII เวอร์ชันกว้าง พวกมันจะไม่ถูกแปลงโดยอัตโนมัติเพียงเพราะโปรแกรมแก้ไขแสดงพวกมันในขนาดใกล้เคียงกัน
ToolAcre ถือว่า `。!?` เป็นตัวยุติประโยค แต่ไม่ใช่ `、` ซึ่งเหมาะสมกับกฎการนับแบบแคบ ตัวสิ้นสุดที่ซ้ำกันจะถูกใช้กับข้อความก่อนหน้าเป็นการเรียกใช้ที่ตรงกัน ดังนั้น `本当!?` มีส่วนสนับสนุนหนึ่งประโยคแทนที่จะเป็นสองประโยค เครื่องหมายคำพูด เครื่องหมายวงเล็บ และแบบแผนของบรรณาธิการไม่มีการตีความทางภาษาแยกต่างหาก
การเปลี่ยนแปลงการรับรู้ประโยคจำเป็นต้องมีอะไร — การจดจำประโยคที่ลงท้ายด้วยสคริปต์ก่อนที่จะใช้ตัวพิมพ์ใหญ่หรือตัวนับ
กรณีประโยคจะแปลงตัวพิมพ์เล็กตัวแรกของอินพุตทั้งหมด จากนั้นจะใช้อักษรตัวพิมพ์เล็กที่จุดเริ่มต้น หรือตามหลังหนึ่งในหกตัวยุติที่ได้รับการยอมรับเฉพาะเมื่อตัวยุตินั้นตามด้วยช่องว่างเท่านั้น ดังนั้น `hello。 world` จะกลายเป็น `Hello。 World` ในขณะที่ `hello。world` จะออกจากคำภาษาอังกฤษที่สองเป็นตัวพิมพ์เล็ก
เงื่อนไขช่องว่างนั้นแก้ไขข้อกล่าวอ้างที่กว้างขึ้นของโครงร่างที่ว่าการจดจำตอนจบก็เพียงพอแล้ว โดยทั่วไปภาษาญี่ปุ่นจะเริ่มต้นประโยคถัดไปทันทีหลังจาก `。` โดยไม่มีช่องว่าง และโดยทั่วไปแล้วอักขระภาษาญี่ปุ่นจะไม่มีรูปแบบตัวพิมพ์ใหญ่อยู่แล้ว ในสำเนาแบบผสม ให้เพิ่มช่องว่างเมื่อต้องการสไตล์บรรณาธิการเท่านั้น อย่าแทรกเพียงเพื่อกระตุ้นการเปลี่ยนแปลง
สิ่งที่การแปลงรูปแบบประโยคนี้รับรู้ได้จริง: ตัวสิ้นสุดที่ตามด้วยช่องว่าง
คำว่า รูป ใช้การวิ่งที่คั่นด้วยช่องว่าง ข้อความภาษาญี่ปุ่นที่ไม่มีช่องว่างจึงสามารถนับเป็น "คำ" หนึ่งคำได้แม้ว่าผู้อ่านจะระบุหน่วยคำศัพท์หลายหน่วยก็ตาม ในทางกลับกัน เครื่องหมายวรรคตอนที่ไม่มีช่องว่างล้อมรอบจะไม่แยกการเรียกใช้: `end,start` เป็นคำเดียวภายใต้คำจำกัดความนี้ ตัวเลขนี้เป็นตัวเลขเชิงกล ไม่ใช่จำนวนโทเค็นที่รับรู้ภาษา
การนับประโยคยังอิงเครื่องหมายวรรคตอนด้วย การหยุดเต็มใน `Dr. Smith` สามารถสร้างประโยคเพิ่มเติมได้ ในขณะที่การขึ้นบรรทัดใหม่โดยไม่มีเครื่องหมายวรรคตอนจะไม่สร้างขอบเขตของประโยคใหม่ ตัวนับจดจำจุดสิ้นสุดของ CJK และเครื่องหมายที่ซ้ำกัน แต่เครื่องหมายคำพูด คำย่อ วงรี และเครื่องหมายวรรคตอนที่มีรูปแบบไม่ถูกต้องยังคงสามารถทำให้ผลลัพธ์ที่แตกต่างจากคำตัดสินของบรรณาธิการได้
การเว้นวรรค คำ และการนับตามเครื่องหมายวรรคตอน: ตัวเลขที่เป็นประโยชน์พร้อมขีดจำกัดที่ชัดเจน
ลองใช้ `LAUNCH READY. 次の版です。 check names! FINAL PASS?` ในชุดเครื่องมือข้อความ กรณีประโยคจะสร้าง `Launch ready. 次の版です。 Check names! Final pass?`: ข้อความที่ใส่ตัวพิมพ์ทั้งหมดจะถูกลดขนาดลงก่อน จากนั้นจึงยกตัวอักษรเปิดหลังขอบเขตของเทอร์มิเนเตอร์บวกช่องว่างขึ้น ข้อความภาษาญี่ปุ่นยังคงไม่เปลี่ยนแปลงทางสายตาเนื่องจากไม่มีการแบ่งแยกตัวพิมพ์เล็กและตัวพิมพ์ใหญ่
อ่านสถิติข้างผลลัพธ์นั้นเป็นคำจำกัดความ ไม่ใช่คำตัดสิน ตัวอย่างมีประโยคที่คั่นด้วยเครื่องหมายวรรคตอนสี่ประโยค ในขณะที่คำทั้งหมดเป็นไปตามห้าส่วนที่คั่นด้วยช่องว่าง แทนที่จะเป็นสัณฐานวิทยาของญี่ปุ่น ผลรวมอักขระใช้กลุ่มกราฟโดยที่ `Intl.Segmenter` พร้อมใช้งาน และผลรวมที่ไม่มีการเว้นวรรคจะลบช่องว่าง Unicode ออกก่อนที่จะนับใหม่
ตัวอย่างการทำงาน: ตรวจสอบการเปลี่ยนแปลงและการนับทุกครั้ง แทนที่จะพิจารณาการวิเคราะห์ทางภาษา
ลักษณะการทำงานนี้ไม่ได้ใช้กฎการแบ่งบรรทัดของญี่ปุ่น การจัดองค์ประกอบตามแนวตั้ง คำอธิบายประกอบแบบ Ruby หรือข้อจำกัดของ kinsoku shori ในส่วนที่อาจปรากฏเครื่องหมายวรรคตอน นอกจากนี้ยังไม่ทำให้อักขระแบบครึ่งความกว้างและแบบเต็มความกว้างเป็นปกติ หากสิ่งพิมพ์ต้องมีการตรวจสอบการพิมพ์ ให้ใช้ตัวแก้ไขหรือระบบเลย์เอาต์ที่รองรับภาษาญี่ปุ่นอย่างชัดเจนหลังจากการแปลงข้อความ
เคสเฉพาะสถานที่ก็อยู่นอกสัญญาเช่นกัน ตัวแปลงใช้ค่าเริ่มต้น JavaScript การแมป Unicode คำนามและตัวย่อที่ใช้ตัวพิมพ์เล็ก และอาจเข้าใจผิดขอบเขตของตัวย่อสำหรับขอบเขตประโยคเมื่อมีช่องว่างตามหลัง เลิกทำใช้งานได้ แต่การตรวจสอบโดยบรรณาธิการยังคงจำเป็นสำหรับชื่อ การใช้อักษรตัวพิมพ์ใหญ่ของแบรนด์ และการตัดสินใจเกี่ยวกับรูปแบบสองภาษา
ประเด็นสำคัญ — กรณีประโยคของชุดเครื่องมือข้อความจดจำการสิ้นสุดประโยค CJK ที่มีความกว้างเต็มได้ ดังนั้นสำเนาสองภาษาจะได้รับการจัดการแทนที่จะจัดการเพียงครึ่งเดียว
เครื่องหมายวรรคตอนแบบเต็มความกว้างมีความสำคัญเนื่องจากโค้ดมองเห็นอักขระ ไม่ใช่จุดประสงค์ด้านภาพ ToolAcre รวม `。!?` ไว้ในเครื่องมือจับคู่ประโยคตามเครื่องหมายวรรคตอนอย่างชัดเจน ดังนั้น สำเนาภาษาอังกฤษผสมภาษาญี่ปุ่นจึงไม่จำกัดอยู่เพียงตอนจบ ASCII กฎตัวพิมพ์ของประโยคนั้นแคบกว่า: การใช้อักษรตัวพิมพ์ใหญ่จะเกิดขึ้นเฉพาะตอนเริ่มต้นหรือหลังตัวยุติที่รู้จักแล้วตามด้วยช่องว่าง
ใช้ชุดเครื่องมือข้อความเพื่อแสดงกฎเหล่านั้นอย่างรวดเร็ว จากนั้นตีความแต่ละภาพตามบริบท ผลรวมประโยคเป็นการประมาณด้วยตัวคั่น คำต่างๆ เป็นการรันโดยคั่นด้วยช่องว่าง และอักขระเป็นกราฟที่ผู้อ่านรับรู้เมื่อเบราว์เซอร์อนุญาต ข้อจำกัดที่โปร่งใสเหล่านี้ทำให้ผลลัพธ์มีประโยชน์โดยไม่ต้องแสร้งทำเป็นว่าฟังก์ชันเบราว์เซอร์ขนาดเล็กทำการวิเคราะห์ทางภาษาเต็มรูปแบบ