LogoDuyệtSr. Data Engineer
HomeAboutPhotosInsightsCV

Footer

Logo

Resources

  • Rust Tiếng Việt
  • /archives
  • /series
  • /tags
  • Status

me@duyet.net

  • About
  • LinkedIn
  • Resume
  • Projects

© 2026 duyet.net | Sr. Data Engineer | 2026-02-27

Duckling - phân tích văn bản sang dữ liệu có cấu trúc

Note: This post is over 9 years old. The information may be outdated.

Duckling là một thư viện của Haskell, phát triển bởi Facebook, rất hay để phân tích (parses) dữ liệu text sang dạng có cấu trúc (structured data). Công cụ này rất hữu ích trong các ứng dụng phân tích văn bản trong NLP và nhất là lĩnh vực chatbot.

Github: https://github.com/facebook/duckling

Sử dụng

Compile và run binary

$ stack build$ stack exec duckling-example-exe

Câu lệnh trên sẽ khởi tạo 1 HTTP server, để sử dụng API này, chỉ cần gửi request như sau:

$ curl -XPOST https://0.0.0.0:8000/parse --data 'locale=en_GB&text=tomorrow at eight'

File exe/ExampleMain.hs chứa các ví dụ để bạn có thể tích hợp Duckling vào các project sử dụng ngôn ngữ Haskell. Nếu project bạn không phải là Hashkell, bạn vẫn có thể sử dụng bằng cách gửi request HTTP đến server ở trên.

Mình có deploy một server Duckling tại địa chỉ sau để mọi người tiện test nhanh: https://duyet-duckling-bkykfkyksj.now.sh

Supported dimensions

Mình thấy rằng Duckling hỗ trợ nhiều ngôn ngữ và các dimension (tiếng Việt có ở một vài dimension). Bảng sau ví dụ các dimension mà Duckling hỗ trợ:

Dimension Example input Example value output
AmountOfMoney "42€" {"value":42,"type":"value","unit":"EUR"}
Distance "6 miles" {"value":6,"type":"value","unit":"mile"}
Duration "3 mins" {"value":3,"minute":3,"unit":"minute","normalized":{"value":180,"unit":"second"}}
Email "duckling-team@fb.com" {"value":"duckling-team@fb.com"}
Numeral "eighty eight" {"value":88,"type":"value"}
Ordinal "33rd" {"value":33,"type":"value"}
PhoneNumber "+1 (650) 123-4567" {"value":"(+1) 6501234567"}
Quantity "3 cups of sugar" {"value":3,"type":"value","product":"sugar","unit":"cup"}
Temperature "80F" {"value":80,"type":"value","unit":"fahrenheit"}
Time "today at 9am" {"values":[{"value":"2016-12-14T09:00:00.000-08:00","grain":"hour","type":"value"}],"value":"2016-12-14T09:00:00.000-08:00","grain":"hour","type":"value"}
Url "https://api.wit.ai/message?q=hi" {"value":"https://api.wit.ai/message?q=hi","domain":"api.wit.ai"}
Volume "4 gallons" {"value":4,"type":"value","unit":"gallon"}

Kết

Xem thêm các hướng dẫn và cách mở rộng Duckling tại trang Github của project nhé.

Feb 19, 2018·8 years ago
|Machine Learning|
Data EngineeringOpen SourceMachine LearningNlp
|Edit|

Related Posts

Phân lớp văn bản

Trong Machine Learning và NLP, phân lớp văn bản là một bài toán xử lí văn bản cổ điển, gán các nhãn phân loại lên một văn bản mới dựa trên mức độ tương tự của văn bản đó so với các văn bản đã được gán nhãn trong tập huấn luyện.

Aug 11, 2017·9 years ago
Read more

natural - NLTK cho Javascript

NaturalJS được ví như nltk cho Node. natural có nhiều chức năng xử lý ngôn ngữ tự nhiên như: Tokenizing, stemming, classification, phonetics, tf-idf, WordNet, string similarity, ...

Aug 6, 2017·9 years ago
Read more

Deploy Deep Learning model as a web service API

Trong bài này mình sẽ hướng dẫn deploy 1 model Deep learning, cụ thể là Keras dưới dạng một web service API. Sử dụng Flask framework python và Redis server như một Messeage Queue.

Jul 21, 2018·8 years ago
Read more

[Slide] Sentiment Analysis

Mình vừa có bài nói về Sentiment Analysis trong NLP bao quát, xin phép chia sẻ lại slide tại đây.

Jun 30, 2018·8 years ago
Read more
On this page
  • Sử dụng
  • Supported dimensions
  • Kết
On this page
  • Sử dụng
  • Supported dimensions
  • Kết