文字與日常工具·文字工具包
全角標點符號:why 。 和 ! 對於句子大小寫和計數很重要
· 背景
文字工具 統一碼 中日韓標點符號
解釋什麼是全角標點符號和表意標點符號,為什麼 CJK 文字使用它們,以及為什麼只知道 ASCII 句號的句首轉換器或句子計數器會導致雙語文字錯誤。
日文段落算一個句子 — 純 ASCII 工具如何完全忽略 。 和 !
將 `Release ready. 次の版です。確認してください!` 貼到僅識別 ASCII 句號的計數器中,日文部分可能會被吸收到一個長餘數中。可見標記不是裝飾性變體:它們是讀者使用的邊界,因此忽略它們會產生誤導性的句子總數。
ToolAcre 在其句子匹配集包括 `.`、`!`、`?`、`。`、`!` 和 `?`。這修復了特定的僅 ASCII 故障,但它不會使計數器成為日語解析器。結果仍來自於被辨識的標點符號劃分的文字串,沒有文法模型決定思想的結束位置。
半角和全角 — 固定間距 CJK 排版和承載它的 Unicode 區塊的遺產
「全角」描述了設計用於佔據與固定寬度東亞佈局中的表意單元相關的寬度的字元。 Unicode 保留相容性形式,例如 `!` 和 `?`,而日文也使用表意標點符號,包括 `。` 和 `、`。相似的外觀並不意味著相同的程式碼點或可互換的語義。
Unicode 標準將全角 ASCII 變體放在半角和全角形式區塊中,而 U+3002 IDEOGRAPHIC 句號和 U+3001 IDEOGRAPHIC COMMA 屬於 CJK 符號和標點符號。這種區別對軟體很重要:正規表示式必須對其要識別的實際字元進行命名或分類。
表意句號及其親屬 — 。 、! ? 以及 ASCII 標點符號的全角形式
`。` 通常關閉一個日文句子,`、` 將一個句子中的材料分隔開,`!?` 提供現代文字中常見的問題和感嘆形式。全角 `!` 和 `?` 在視覺上對應於寬版 ASCII 標記;它們不會僅僅因為編輯器以相似的尺寸顯示它們而自動轉換。
ToolAcre 將 `。!?` 視為句子終止符,但不將 `、` 視為句子終止符,這適合其狹窄的計數規則。重複的終止符與前面的文字一起作為一個匹配的運行被消耗,因此 `本当!?` 貢獻一個句子而不是兩個。引文、括號和編輯慣例沒有單獨的語言解釋。
句子感知轉換需要什麼 - 在大寫或計數之前識別跨腳本的句子結尾
句子大小寫轉換先將整個輸入小寫。然後,它會在開頭或六個可識別的終止符之一後將小寫字母大寫,僅當該終止符後跟空格時。因此 `hello。 world` 變成 `Hello。 World`,而 `hello。world` 則將第二個英文單字保留為小寫。
空白條件修正了大綱更廣泛的主張,即辨識結尾就足夠了。日文通常在 `。` 之後立即開始下一個句子,沒有空格,日文字通常沒有大寫形式。在混合副本中,僅在編輯風格需要時才添加空格;不要僅僅為了推動轉換而插入它。
這個句子大小寫轉換實際上辨識什麼:終止符後面接空格
單字figure 使用空格分隔。因此,即使讀者辨識出許多詞彙單元,沒有空格的日文段落也可以算是一個「字」。相反,周圍沒有空格的標點符號不會分割一行: `end,start` 是此定義下的一個單字。該數字是機械的,而不是語言感知的令牌計數。
句子計數也是基於標點符號的。 `Dr. Smith` 中的句號可以建立一個額外的句子,而未標點的換行符不會建立新的句子邊界。此計數器可以識別 CJK 終止符和重複標記,但引用、縮寫、省略號和格式錯誤的標點符號仍然可能使其輸出與編輯判斷不同。
空格、單字和標點符號計數:具有明確限制的有用數字
嘗試文字工具包中的 `LAUNCH READY. 次の版です。 check names! FINAL PASS?`。句子大小寫產生 `Launch ready. 次の版です。 Check names! Final pass?`:先降低所有大小寫文字,然後升高終止符加空格邊界後的開頭字母。日文文字在視覺上保持不變,因為它沒有大小寫差異。
將結果旁邊的統計資料視為定義,而不是結論。該樣本有四個標點符號分隔的句子執行,而其總單字遵循五個空格分隔的塊,而不是日語形態。字元總數使用 `Intl.Segmenter` 可用的字素簇,且無空格總數在重新計數之前刪除 Unicode 空白。
工作範例:檢查變換和每個計數,而不是假設語言分析
此行為不實現日文換行規則、垂直組合、拼音註解或對標點符號可能出現位置的避頭尾限制。它也不規範半角和全角字符。如果出版物需要排版檢查,請在文字轉換後使用具有明確日文支援的編輯器或佈局系統。
特定於區域設定的大小寫也超出了承諾範圍。此轉換器使用預設的 JavaScript Unicode 映射、小寫專有名詞和首字母縮寫詞,並當縮寫邊界後面有空格時,可能會將縮寫邊界誤認為句子邊界。可以撤消,但對於名稱、品牌大寫和雙語風格決策仍然需要編輯審查。
重點 — Text Toolkit 的句子大小寫可識別全角 CJK 句子結尾,因此可以處理雙語副本,而不是半處理
全角標點符號很重要,因為代碼看到的是字符,而不是視覺意圖。 ToolAcre 在其基於標點符號的句子匹配器中明確包含 `。!?` ,因此混合英語-日文副本不限於 ASCII 結尾。它的句子大小寫規則更窄:大寫僅出現在開頭或在可識別的終止符後面,後面跟著空格。
使用文字工具包快速揭示這些規則,然後在上下文中解釋每個圖形。句子總數是分隔符號估計值,單字是空格分隔的執行,字元是在瀏覽器支援允許的情況下讀者感知的字素。這些明顯的限制使輸出變得有用,而無需假裝緊湊的瀏覽器功能執行完整的語言分析。