Vietnamese Word Segmentation Online

Split Vietnamese text into words (học sinh, thành phố, trí tuệ nhân tạo) instead of syllables, recognise names and places, and extract keywords.

Free tool: 20 requests per minute.

Result

Press “Run” to see the result.

Vietnamese writes a space between every syllable, so “học sinh” (student) looks like two words to search engines and text tools. The tokenizer API groups syllables into words using a dictionary of about 25,000 multi-syllable words plus the names of Vietnam’s provinces and wards, and picks the segmentation with the fewest tokens: “Học sinh trường Nguyễn Trãi … tại Thành phố Hồ Chí Minh” → Học_sinh trường Nguyễn_Trãi … tại Thành_phố Hồ_Chí_Minh.

Consecutive title-case syllables are joined as proper names (people, organisations), without swallowing honorifics such as Ông or Bà or abbreviations like THPT. segmented returns the text with words joined by _ (or your separator), the format used by most Vietnamese NLP tools; details=true adds every token with its type (word, syllable, name, number, punctuation) and character offsets.

action=keywords ranks the multi-syllable words and names of a text by frequency, length and position, skipping common function phrases, to build tags, SEO keywords or search facets. The dictionary is refreshed automatically every week from its upstream list.

Use this in your code

curl -X POST "https://apibox.io.vn/v1/vn-tokenize" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"text":"Chính phủ yêu cầu các bộ ngành đẩy mạnh chuyển đổi số và phát triển trí tuệ nhân tạo trong doanh nghiệp."}'

API documentation → Get a free API key

FAQ

How accurate is it?

Dictionary-based segmentation gets most common text right; new terms, slang and rare names stay as single syllables. Statistical models do better on ambiguous phrases but are much heavier.

Why the underscores?

Joining syllables with _ is the convention of Vietnamese NLP corpora (VLSP, underthesea, pyvi), so the output plugs into those tools. Use separator= for another character.

Are names detected?

Yes, consecutive capitalised syllables are grouped (Nguyễn Văn An), and place names come from the official list of provinces and wards.