大量文字轉數字是一項批次解析工作:將來源分割成各筆記錄,依據明確的文法將每個以文字寫出的基數轉換為整數,並保留原始列順序。
搜尋詞彙經常與數字轉文字混淆。相關的 數字轉文字轉換器執行的是相反方向:接受一個以數字表示且範圍有界的整數,並產生其小寫的美式英文基數拼寫。它不接受文字數字短語的清單,因此無法完成此搜尋所隱含的大量處理工作。

開啟檔案前先設定批次文法
可靠的批次轉換器在處理第一筆記錄前,需要有明確的適用範圍。英文數字短語可能因位階、選用字詞、標點符號及預期語意而有所不同。如果沒有文法,即使兩項看似有效的輸入出現在同一批次中,也可能獲得不同的處理方式。
| 決策 | 必須記錄的規則 | 原因 |
|---|---|---|
| 數字類型 | 僅接受基數整數 | 序數、日期、測量值及電話號碼讀法需要另行處理。 |
| 位階 | 選擇一種位階,例如美國短位階 | 混合的位階慣例可能改變相同短語的值。 |
| 選用的「and」 | 一致地接受或拒絕 | 批次不應在某些記錄中默默接受一種措辭,卻在其他記錄中接受另一種措辭。 |
| 複合十位數 | 將以連字號連接的一對字詞視為單一的十位與個位值 | 如此可避免兩部分各處理兩次或遺失個位數字。 |
| 不支援的內容 | 標記小數、分數、貨幣、科學記號及識別碼 | 四捨五入或移除字元會改變來源記錄。 |
| 範圍 | 設定明確的最小與最大整數 | 此限制可防止溢位,並讓遭拒絕的列具有一致的狀態。 |
例如,在短位階文法下,「two thousand forty-five」會解析為 two thousand,貢獻 2000,再加上 forty-five,貢獻 45:2000 + 45 = 2045。接著應將此算術結果儲存為標準化整數,置於原始短語旁邊。
語系與格式參考資料有助於定義文法。Unicode 的 Rule-Based Number Formatting 參考資料說明更廣泛的語系敏感規則需求,而 EF 的英文數字指南則提供英文語言參考資料。這些來源無法免除您精確記錄自身批次所接受形式的必要。
依可審查的順序轉換批次
- 保留來源。 將每個以文字寫出的數字短語匯入原文欄,並為每一列指定穩定的識別碼。切勿以解析後的值取代短語。
- 一致地分隔記錄。 每列放置一個短語,而非依賴可能也出現在來源素材中的逗號、分號或換行。將所有列標籤放在另一個欄位。
- 套用已記錄的文法。 執行僅辨識約定數字形式的解析器。將解析後的整數、狀態及簡短說明分別儲存在不同的輸出欄位。
- 讓不支援的列保持可見。 將未知短語、非基數讀法、格式錯誤的標點符號及超出可接受範圍的值標記供審查。切勿以零取代無效記錄。
- 審查結果。 檢查每個已標記的列,並抽查已接受的列,尤其是包含選用連接詞、複合十位數、正負號或稀疏位階群組的記錄。
- 匯出時不破壞對應關係。 包含原始短語、解析後的數字、狀態、備註及列識別碼。保留來源順序,使每項結果都能追溯至其輸入。
在試算表與腳本工作流程之間做選擇
當批次小到足以人工審查時,請使用試算表。當相同的輸入結構定期送入、記錄數量龐大,或每項結果都需要可稽核的狀態時,請使用腳本。只有在專用大量處理服務明載的服務契約確認其接受文字短語清單、套用明確定義的文法,並處理所需範圍時,才適合使用這類服務。
| 方式 | 最適用的情況 | 主要優勢 | 主要控制項目 |
|---|---|---|---|
| 試算表加解析器輔助工具 | 可審查的批次 | 來源與輸出並列呈現 | 確認輔助工具使用預期文法 |
| 自訂腳本 | 重複或大型批次 | 一致的解析與狀態報告 | 維護已接受及遭拒絕形式的測試案例 |
| 專用批次轉換器 | 經過驗證且具備批次能力的服務 | 直接以清單為基礎的工作流程 | 檢查範圍、語系、文法及隱私權條款 |
在 Excel 或 Google Sheets 中,合理的版面配置會使用不同欄位分別存放來源短語、解析後的數字、狀態及審查者備註。試算表不會僅因儲存格中含有文字就變成數字解析器;應使用可信賴的解析器函式或小型腳本填入輸出欄位。如果無法解釋並測試該邏輯,人工審查會比臨時拼湊替代值更安全。
依確定性規則建立解析器
受控批次的自訂解析器可以遵循一套簡短的流程。保留原始記錄,並在工作副本上執行所有標準化作業。
- 標準化工作副本。 修剪外部空白、統一字母大小寫,並將已辨識的連字號轉換為空格。最終匯出時保留未經更動的來源。
- 將短語切成詞語。 將其分割為詞語,並依可接受詞彙驗證每個詞語。僅在文法如此規定時,才將「and」視為選用詞。
- 建立一千以下的群組。 將零至十九、各十位數字及「hundred」對應至目前的群組值。
- 套用位階名稱。 當出現位階字詞時,將目前群組乘以該位階,再加到累計總數中。整個檔案應使用一致的位階系統。
- 加上最後一個群組。 將餘數與經位階縮放的總數結合,然後在原始短語含有負號時還原負號。
- 安全檢查範圍。 當可接受的值可能超過一般固定寬度整數的安全範圍時,使用任意精度整數類型。拒絕超出已記錄限制的值。
- 傳回稽核記錄。 對每一列輸出標準化整數、已接受或遭拒絕的狀態,以及轉換未成功時的原因。
將已接受的值與待審查項目分開
切勿將不支援的解讀混入成功的數字欄。實用的狀態系統至少應分隔出四個類別:已接受的基數整數、語法無效的短語、有效但非基數的短語,以及超出所選範圍的整數。
- 小數與分數: 保留原始文字,並將其導向明確處理分數部分的流程。
- 貨幣金額: 保留貨幣標記與單位;切勿將其移除後只傳回純整數。
- 序數與日期: 另行記錄,因為其預期數字取決於上下文。
- 電話號碼與識別碼: 切勿將其解析為基數量,即使個別詞語看似數字字詞。
- 意義不明確的連接詞: 對每一列套用相同的「and」政策,而非依標點符號猜測。
- 超出範圍: 標記該列,不要讓溢位值循環回繞或失去精確度。
這些控制項目能讓輸出比單純的成功或失敗旗標更有用。審查者可以看出某筆記錄遭拒絕的原因,並判斷應變更來源短語或處理規則。
驗證結果時不遺失來源上下文
驗證應涵蓋最可能揭露解析器錯誤的形式。包括零、負值、複合十位數、以個位數字結尾的值、正整數百位、稀疏位階群組,以及最大的可接受邊界值。確認在處理選用字詞與標點符號後,標準化值仍與原始短語相符。
也應將狀態計數與來源列總數核對。每筆記錄都應已接受或被指定審查狀態。將文法、範圍、解析器版本及轉換日期與輸出一起儲存,以便其他人重現此次執行作業。
在整個工作流程中保持來源與結果的連結。這對識別碼尤其重要,因為兩種不同的文字形式可能因此變得無法區分;對重複短語也同樣重要,因為位置錯誤可能使結果附到錯誤的列。
使用數字轉文字進行反向驗證
數字轉文字轉換器並不執行所要求的文字轉數字批次轉換。它支援的是單一整數數字字串的相反操作。當數值需要確定性的英文基數形式,或您需要將反向解析器的輸出與已知拼寫特徵進行比較時,請使用此工具。
- 輸入數字。 提供整數,並可選擇加上前導正負號及標準的三位數逗號分組。
- 選擇 Convert to words。 選取該轉換方式,並檢查工具顯示的標準化數值。
- 複製結果。 複製小寫的美式英文基數拼寫,以供目標文字使用。
此轉換器接受介於 −999,999,999,999 至 999,999,999,999 的整數。未分組的數字有效,且第一組之後的每組都必須恰好包含三位數字;格式錯誤的逗號分組會遭拒絕,而非默默修正。前導加號及前導零不會改變標準化值,而負零會被標準化為零。
輸出遵循公開的美式英文特徵。它使用短位階、為複合十位數加上連字號,並省略「hundred」後選用的「and」。它不會轉換小數、分數、科學記號、貨幣、序數、年份、支票用語、電話號碼、識別碼或逐位讀法。解析與文字產生均在目前瀏覽器分頁的本機進行,不會上傳、儲存或傳送任何值至 API。
若要更深入了解反向拼寫工作,請參閱 使用美式英文拼字工具將文字轉換為數字。對於大量處理,保留來源的解析器工作流程仍是相關做法。
匯出可靠的最終批次
可直接用於正式環境的匯出內容不僅僅是一串數字。它會保留原始文字形式、標準化整數、清楚的狀態、審核備註,以及原始列順序。它也會記錄可接受的英文形式、尺度慣例、範圍,以及選用字的處理方式。這種結構讓批次能夠重現,並讓每個轉換值都能追溯至其來源,無須猜測不受支援的記錄是如何解讀的。