Hệ chuyên gia này có thể tư vấn cho người sử dụng hệ thống biết bệnh mình đang mắc phải, một số thuốc thông thường có thể sử dụng, có thể đưa ra tên bệnh chẩn đoán và các loạ[r]
Trang 1KỸ THUẬT CHATBOT ỨNG DỤNG HỆ CHUYÊN GIA CHO BÀI TOÁN
CHẨN ĐOÁN BỆNH TỰ ĐỘNG
Nguyễn Thị Bích Điệp * , Nguyễn Ngọc Lan, Nguyễn Thị Hương Ly
Trường Đại học Công nghệ thông tin và Truyền thông – ĐH Thái Nguyên
TÓM TẮT
Chatbot là một ứng dụng hỗ trợ tương tác trong rất nhiều lĩnh vực như công nghệ, y tế, kinh doanh, v.v Chatbot ngày càng được sử dụng đặc biệt cho các ứng dụng chăm sóc sức khỏe Các chatbot y tế là những hệ thống trí tuệ nhân tạo rất hữu ích trong vấn đề hỗ trợ chẩn đoán bệnh Bài báo này trình bày một phương pháp xây dựng hệ chuyên gia với cơ sở tri thức là tri thức chuyên gia về một số bệnh nhiệt đới Từ đó dùng kỹ thuật lập trình xây dựng một chatbot sử dụng hệ chuyên gia để chẩn đoán bệnh tự động
Từ khóa: Trí tuệ nhân tạo; hệ chuyên gia trong y học; chatbot; chẩn đoán bệnh tự động; cơ sở tri
thức; máy suy diễn
Ngày nhận bài: 18/4/2019; Ngày hoàn thiện: 15/5/2019; Ngày duyệt đăng: 16/5/2019
CHATBOT TECHNOLOGY AND EXPERT SYSTEM FOR DIAGNOSTIC
AUTOMATIC DISEASE Nguyen Thi Bich Diep * , Nguyen Ngoc Lan, Nguyen Thi Huong Ly
University of Information and Communication Technology - TNU
ABSTRACT
Chatbot is an interactive support application in many areas such as business, health, technology, etc Chatbots are increasingly used in particular for health care application Chatbot in health is an artificial intelligence system useful for automatic diagnosis of diseases This paper presents a method of building an expert system with a knowledge base that is expert knowledge of some tropical diseases Based on progamming techniques, a chatbot is built to automatically diagnose diseases using an expert system
Keywords: Artificial intelligence; expert system in medicine; chatbot; automatic diagnosis of diseases; knowledge base; inference engine
Received: 18/4/2019; Revised: 15/5/2019; Approved: 16/5/2019
* Corresponding author Email:ntbdiep@ictu.edu.vn
Trang 21 Giới thiệu
Với sự bùng nổ của công nghệ thông tin trên
thế giới, việc tiếp cận thông tin của khách
hàng với các dịch vụ y tế qua website là
tương đối phổ biến Chatbot là một ứng dụng
hỗ trợ tương tác của khách hàng với nhiều
dịch vụ bùng nổ diễn ra vào đầu những năm
2009 Ứng dụng chatbot sử dụng trong rất
nhiều lĩnh vực và mô hình này được triển khai
trên thế giới một cách thông dụng và rộng
khắp Ứng dụng chatbot trên thế giới thông
qua các ví dụ điển hình như: đặt hàng, cung
cấp các đề xuất sản phẩm, hỗ trợ khách hàng,
hỗ trợ tài chính, lên lịch cuộc họp, hỗ trợ tin
tức, du lịch, gửi tiền, v.v [1]
Trong lĩnh vực y tế, so với 10 năm trước thì
cảnh quan về chăm sóc sức khỏe khác biệt
đáng kể so với ngày nay Công nghệ đã đi sâu
vào mọi khía cạnh của chăm sóc, hỗ trợ bệnh
nhân Các chatbot y tế dựa trên hệ chuyên gia
là những hệ thống trí tuệ nhân tạo rất hữu ích
trong vấn đề hỗ trợ chẩn đoán bệnh Việc ứng
dụng chatbot trong tư vấn khám chữa bệnh
cũng đã được một số cơ sở y tế triển khai để
khách hàng có thể tiếp cận với các dịch vụ y
tế công cộng và tư nhân [2] Xây dựng
chatbot đã nổi lên như một cách tiếp cận hiệu
quả cho các tổ chức y tế Trò chuyện y tế có
thể tiến hành các cuộc trò chuyện trực tiếp với
bệnh nhân truy cập trang web của tổ chức
Tùy thuộc vào độ chính xác và chi tiết của tập
lệnh, ta cũng có thể xác định các khiếu nại và
yêu cầu riêng của từng bệnh nhân và áp dụng
một cách tiếp cận phù hợp để cung cấp cho họ
sự trợ giúp mà họ cần Một đặc điểm quan
trọng của chatbot hỗ trợ chẩn đoán bệnh là
việc tương tác thường trực cho các truy vấn
và yêu cầu của bệnh nhân suốt ngày đêm
Thông qua hệ thống, người dùng là bác sĩ và
bệnh nhân có thể có được sự tư vấn cho việc
chẩn đoán bệnh chính xác nhất Ngoài ra hệ
thống còn hữu ích cho việc học tập của sinh
viên ngành y và phổ biến kiến thức y khoa
thông dụng cho toàn dân [3]
Tại Việt Nam, một số chatbot được khai thác chỉ mới dừng lại ở việc tư vấn quảng cáo về các dịch vụ của các cơ sở y tế Vì vậy việc khai thác chatbot ứng dụng hệ chuyên gia cho chẩn đoán bệnh tự động là một hướng nghiên cứu mới mẻ, có rất nhiều tiềm năng phát triển
và ứng dụng thực tế
2 Thiết kế hệ chuyên gia cho chẩn đoán bệnh tự động
Với sự diễn biến phức tạp về các chủng loại bệnh hiện nay, việc thiết kế một hệ chuyên gia chẩn đoán bệnh từ những triệu chứng thường gặp là một việc cần thiết giúp người bệnh có những hiểu biết cơ bản để có thể kịp thời được tư vấn, thăm khám và chữa trị Tuy nhiên, kiến thức y khoa là vô tận và không ngừng phát triển Trong nghiên cứu này, nhóm tác giả chỉ thử nghiệm xây dựng hệ chuyên gia với nhóm một số các bệnh nhiệt đới thường gặp
Hệ chuyên gia chẩn đoán các bệnh nhiệt đới thường gặp được xây dựng nhằm đoán một số bệnh nhiệt đới thông thường trong cuộc sống
Hệ chuyên gia này có thể tư vấn cho người sử dụng hệ thống biết bệnh mình đang mắc phải, một số thuốc thông thường có thể sử dụng, có thể đưa ra tên bệnh chẩn đoán và các loại thuốc tương ứng với bệnh đó Người sử dụng chỉ cần trả lời đúng hoặc sai các câu hỏi về triệu chứng của hệ thống và từ đó hệ thống sẽ đưa ra tên bệnh và một số loại thuốc cụ thể
Hệ thống cần có một cơ sở tri thức (CSTT) về các triệu chứng, các bệnh, các loại thuốc thông thường Vì vậy, việc xây dựng CSTT là việc cần thiết đầu tiên cho hệ thống Hệ chuyên gia được thiết kế theo mô hình kiến trúc của J.L Emine [4] Dựa trên dữ kiện về triệu chứng của các bệnh và thuốc điều trị tương ứng là tri thức chuyên gia, nhóm tác giả tiến hành xây dựng các logic vị từ về bệnh và thuốc
Logic vị từ về bệnh [5]:
(1) Bệnh sởi:
X TC_SOI(X) → TC_BENH(X, soi)
Trang 3(2) Bệnh quai bị:
X TC_QUAIBI(X) → TC_BENH(X,
quaibi)
(3) Bệnh thủy đậu:
X TC_THUYDAU(X) → TC_BENH(X,
thuydau)
(4) Bệnh cúm:
X TC_CUM(X) → TC_BENH(X, cum)
(5) Bệnh ho gà:
X TC_HOGA(X) → TC_BENH(X, hoga)
(6) Bệnh bạch hầu:
X TC_BACHHAU(X) → TC_BENH(X,
bachhau)
(7) Bệnh uốn ván:
X TC_UONVAN(X) → TC_BENH(X,
uonvan)
(8) Bệnh sốt xuất huyết:
TC_BENH(X, sotxuathuyet)
(9) Bệnh dại:
X TC_DAI(X) → TC_BENH(X, dai)
(10) Bệnh thương hàn:
X TC_THUONGHAN(X) → TC_BENH(X,
thuonghan)
(11) Bệnh nhiễm Leptospira:
TC_BENH(X, nhiemLeptospira)
(12) Bệnh nhiễm trùng nhiễm độc thức ăn:
TC_BENH(X, nhiemtrung)
(13) Bệnh lỵ Amíp:
X TC_LYAMIP(X) → TC_BENH(X,
lyAmip)
(14) Bệnh lỵ trực:
TC_BENH(X, lytructrung)
Logic vị từ về thuốc
(1) X THUOC_HO(X) → DIEUTRI(ho, X)
(2) X, Y THUOC_KHANGSINH(X) V VIEM(Y) → DIEUTRI(Y, X)
(3) X THUOC_HASOT(X) → DIEUTRI(nongsot, X)
DIEUTRI(tieuchay, X) (5) X, Y THUOC_GIAMDAU(X) A DAU(Y) → DIEUTRI(Y, X)
DIEUTRI(suynhuoc, X)
Từ đó xây dựng các sự kiện về triệu chứng và thuốc Dưới đây là một số sự kiện trong CSTT:
tc_nhiemtrung([sot, non, daubung, iachay]) tc_soi([sot, viemlong, bansoi])
tc_thuydau([sot, mocnotphongdau])
thuoc_quaibi([Paracetamol, Aspirin, Seduxen, Rotunda])
thuoc_thuydau([Acyclovir, Paracetamol]) thuoc_cum([Decogel, Typhi, Seduxen, gacdenal])…
Ta có, sơ đồ hoạt động chung của một hệ chuyên gia chẩn đoán bệnh như hình 1
3 Kỹ thuật tạo chatbot trên nền website
Chatbot là một lĩnh vực của trí tuệ nhân tạo, chatbot thực hiện hội thoại thông minh giữa máy tính với con người thông qua hỏi đáp trực tiếp Với việc cung cấp các gói thông tin cho từng ngữ cảnh để tư vấn các phương pháp cũng như các kỹ năng để nâng cao hiệu quả trong công tác khám chữa bệnh tại các sơ sở y
tế Đây chính là một giải pháp dễ dàng triển khai với sự hỗ trợ của mã nguồn mở AIML (Artificial Intelligence Markup Language), việc cung cấp các gói thông tin đơn giản, từ
đó thuận tiện cho việc trợ giúp kịp thời, sát với điều kiện thực tế và nhu cầu của từng người bệnh hơn
Đối với bài toán sử dụng kỹ thuật chatbot ứng dụng hệ chuyên gia để chẩn đoán bệnh tự động, nhóm tác giả sử dụng các kỹ thuật lập trình cơ bản để tạo ra chatbot đáp ứng yêu cầu bài toán
Trang 4Hình 1 Sơ đồ hoạt động hệ chuyên gia chẩn đoán bệnh
Chatbot hỗ trợ chẩn đoán bệnh được thiết kế
dưới dạng hỏi đáp giữa hệ chuyên gia và
người dùng Hệ chuyên gia đặt các câu hỏi về
các triệu chứng bệnh cho người dùng, thông
qua cửa sổ chat trên website Sau đó người
dùng trả lời có hoặc không cho mỗi triệu
chứng gặp phải Dựa trên các triệu chứng thu
thập được, hệ chuyên gia đưa ra chẩn đoán
bệnh có thể mắc phải
Cơ sở dữ liệu cho hệ chuyên gia trong chatbot
được lưu trữ trong bảng wp-chatbot, các
thuộc tính thể hiện trong bảng:
STT Tên thuộc tính Ràng buộc Kiểu dữ liệu
Bảng dữ liệu trên sử dụng cơ chế tự kết nối (Self Join) chứa dữ liệu các trường là cơ sở
dữ liệu tổng hợp từ hệ chuyên gia, trong đó trường idpp là kết nối với trường ID Cơ sở
dữ liệu được tổ chức bao gồm 1 bảng dữ liệu
có 6 cột tương ứng với các trường: id, idpp, info, info2, info3, enable Trong đó trường id
để lưu lại mã của các bệnh, trường idpp để đánh dấu nhóm bệnh Ví dụ: bệnh thủy đậu thuộc nhóm bệnh nhiệt đới info để lưu tên bệnh hoặc nhóm bệnh, info2 để lưu các triệu chứng tùy với từng bệnh và info3 để lưu các loại thuốc chữa trị, các lưu ý về chăm sóc bệnh
Kỹ thuật tạo Chatbot: Dùng thẻ html là DIV với các class được định dạng hiển thị trong css Sau đó dùng kỹ thuật lập trình gửi tin bất đồng bộ qua ajax của javascript (sử dụng thư viện jQuery) để gửi thông tin của người dùng tới server PHP Server xử lý văn bản để hiểu
ý người dùng Đồng thời server cũng lưu tất
cả các câu trả lời trước để cung cấp thông tin cho hệ chuyên gia xử lý [6]
Hình 2 Giao diện của chatbot chẩn đoán bệnh
Nhận câu trả lời từ người dùng
Kết luận chẩn đoán bệnh
Tư vấn dùng thuốc
Kết thúc
Bắt đầu
So khớp luật
Thông báo không tìm thấy CSTT, không đủ
cơ sở kết luận bệnh
Nạp CSTT
Sai
Đúng
Trang 5Cách thức hoạt động: hệ thống gợi ý có cần tư
vấn không, người dùng click vào các nút gợi ý
hoặc gõ văn bản tương ứng Sau khi chọn một
lĩnh vực hệ chuyên gia sẽ lần lượt hỏi các triệu
chứng trong lĩnh vực này, câu trả lời là YES
or NO Nếu các triệu chứng YES nằm trong
tri thức được nạp cho hệ chuyên gia thì hệ
thống sẽ thông báo qua chatbot bệnh đó, kèm
thông tin về cách điều trị bao gồm các thông
tin được lưu trữ trong thuộc tính info 3 của
bảng lưu trữ dữ liệu Giao diện của hệ thống
hoạt động như trong hình 2
Phần tương tác với chatbot để hỗ trợ chẩn
đoán bệnh được thiết kế là một phần của
website http://bvqn.ddns.net Hệ thống được
kết hợp với website của một cơ sở y tế khám
chữa bệnh nhằm quảng bá các dịch vụ khám
chữa bệnh
4 Kết luận
Trong nghiên cứu này, chúng tôi tìm hiểu và
xây dựng hệ chuyên gia chẩn đoán bệnh và
dùng kỹ thuật chatbot để triển khai hệ chuyên
gia Từ đó hoàn thiện thử nghiệm một phần
chatbot hỗ trợ tư vấn chẩn đoán bệnh trực
tuyến có một số ưu điểm sau:
- Giao diện tiếng Việt, thời gian phản hồi
nhanh, trực quan, hoạt động tốt trên các nền
tảng khác nhau (PC, Mobile, NoteBook)
- Tri thức cho hệ chuyên gia được lưu trong
cơ sở dữ liệu, cho phép tùy biến theo tình hình thực tế của sự phát triển không ngừng các kiến thức y khoa hiện nay
Để nâng cao tính ứng dụng và hoàn thiện hệ thống chatbot hỗ trợ chẩn đoán bệnh trực tuyến, chúng tôi dự định việc xây dựng một
cơ sở tri thức chuyên gia đa đạng hơn về chẩn đoán bệnh Đồng thời áp dụng các kết quả nghiên cứu cho một cơ sở y tế cụ thể nhằm cung cấp dịch vụ tương tác với khách hàng và nâng cao kiến thức y tế cộng đồng qua đó đánh giá hiệu quả của chatbot trong thực tiễn
TÀI LIỆU THAM KHẢO [1] Ketakee Nimavat, Prof Tushar Champaneria,
Chatbots: An overview Types, Architecture, Tools and Future Possibilities, IJSRD - International
Journal for Scientific Research & Development,
2017
[2] Krishnendu Rarhi, Abhishek Mishra and
Krishnasis Mandal, Automated Medical Chatbot,
SSRN Electronic Journal, 2017
[3] Hameedullah Kazi, B.S Chowdhry, Zeesha
Memon, MedChatBot: An UMLS based Chatbot for Medical Students, International Journal of
Computer Applications, 2012
[4] Phan Huy Khánh, Giáo trình hệ chuyên gia,
Đại học Đà Nẵng, 2004
[5] Giáo trình Bệnh truyền nhiễm, Đại học Y – Dược, Đại học Thái Nguyên, 2008
[6] Abu Shawar, Atwell, A chatbot system as a tool to animate a corpus, ICAME Journal, 2005.