-
Notifications
You must be signed in to change notification settings - Fork 0
/
tài liệu ý tưởng.txt
134 lines (122 loc) · 7.49 KB
/
tài liệu ý tưởng.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
Update 12/7/2022:
1. lựa chọn công cụ phân tích ngữ nghĩa (dùng thư vieenj nào, chi phí ra sao)
thư viện ChatterBot, có tích hợp sẵn công cụ phân tích ngữ nghĩa, thuật toán lựa chọn; có thể tùy chỉnh
thư viện TextBlobs, tích hợp sẵn bộ phân loại văn bản; có thể tùy chỉnh
đây là hai thư viện mạnh về làm chatbot, sẽ được dùng song song, đưa dữ liệu vào huấn luyện và tùy chỉnh thêm theo yêu cầu
chi phí: miễn phí
2. với câu hỏi thông thường thì dùng cái nào để tra cứu, chi phí thế nào?
dùng các thư viện sau:
time
wikipedia
datetime
webbrowser
smtplib
requests
urllib
urllib.request as urllib2
selenium
youtube_search
chi phí: miễn phí
3. với câu hỏi trong danh sách bảng hỏi thì cách xử lý thế nào, dùng thư viện gì, chi phí bao nhiêu
dựa trên kết quả phân loại của thư viện để lựa chọn trong danh sách câu trả lời có sẵn của từng loại câu hỏi
thuật toán được định nghĩa sẵn trong thư viện ChatterBot, TextBlobs hoặc có thể tự định nghĩa
chi phí: miễn phí
Update thêm 8/7/2022:
1. lựa chọn công cụ phân tích ngữ nghĩa (dùng thư vieenj nào, chi phí ra sao)
thư viện ChatterBot, có tích hợp sẵn công cụ phân tích ngữ nghĩa, lựa chọn
thư viện mạnh về làm chatbot, đưa dữ liệu vào huấn luyện chứ không cần
thao tác thêm gì
chi phí: miễn phí
2. với câu hỏi thông thường thì dùng cái nào để tra cứu, chi phí thế nào?
thư viện ChatterBot nhận dạng và trả lời được câu hỏi về thời gian
đã code thêm phần gọi api để tra cứu thời tiết
dùng wikipedia (tiếng việt) để tra cứu, thư viện python: wikipedia
có thể tra google (thư viện selenium (trong trường hợp tệ nhất) hoặc requests)
chi phí: miễn phí
3. với câu hỏi trong danh sách bảng hỏi thì cách xử lý thế nào, dùng thư viện gì
chi phí bao nhiêu
dựa trên kết quả công cụ phân tích ngữ nghĩa phía trên để lựa chọn trong danh
sách câu trả lời có sẵn của từng loại câu hỏi
thuật toán được định nghĩa sẵn trong thư viện ChatterBot hoặc có thể tự định nghĩa
chi phí: miễn phí
Update 8/7/2022:
1. lựa chọn công cụ phân tích ngữ nghĩa (dùng thư vieenj nào, chi phí ra sao)
https://analyticsindiamag.com/top-python-libraries-for-chatbot-development/
có thể nêu ra 6 phương án:
1 thư viện spaCy
2 thư viện ChatterBot
(bản thân các câu lệnh ChatterBot ngầm dựa trên spaCy)
3 thư viện NLTK
4 thư viện TextBlob
https://textblob.readthedocs.io/en/dev/classifiers.html
5 thư viện DeepPavlov
6 thư viện PyNLPl
thư viện có sẵn công cụ phân tích ngữ nghĩa thì trước mắt có ChatterBot
và TextBlob, đây là 2 thư viện mạnh về làm chatbot, chỉ đưa dữ liệu vào huấn
luyện chứ không cần thao tác thêm gì; 2 thư viện này đều miễn phí (cần xác
nhận thêm khi đi sâu vào sử dụng)
e mới chỉ tiếp xúc nhiều với Chatterbot (các câu lệnh của Chatterbot ngầm
gọi đến spaCy) và đang nhắm đến NLTK nên không phân tích ưu nhược điểm của
từng loại được, có vẻ là cả 6 thư viện đều miễn phí
2. với câu hỏi thông thường thì dùng cái nào để tra cứu, chi phí thế nào?
thư viện ChatterBot nhận dạng và trả lời được câu hỏi về thời gian
gọi api để tra cứu thời tiết
dùng wikipedia (tiếng việt) để tra cứu, thư viện python: wikipedia
có thể tra google (thư viện selenium (trong trường hợp tệ nhất) hoặc requests)
https://stackoverflow.com/questions/22623798/google-search-with-python-requests-library
miễn phí
3. với câu hỏi trong danh sách bảng hỏi thì cách xử lý thế nào, dùng thư viện gì
chi phí bao nhiêu
dựa trên kết quả công cụ phân tích ngữ nghĩa phía trên để lựa chọn trong danh
sách câu trả lời có sẵn của từng loại câu hỏi
trong thư viện ChatterBot có sẵn phần lựa chọn này, lựa chọn theo nhiều
cách khác nhau
miễn phí
7/7/2022:
Cách thức phân tích của phần mềm core như sau:
1. lập 1 database các câu hỏi: quản trị sẽ nhập danh sách
các câu hỏi- trả lời tương ứng.
2. nếu khách hỏi vào những câu trong ngân hàng câu hỏi thì
trả lời bằng kết quả có sẵn.
3. nếu khách hỏi những câu khác (ví dụ hôm nay thời tiết như thế nào?)
thì sử dụng các thư viện thứ 3 để trả lời (google, wikipedia, youtube,...)
e sẽ tập trung vào bước 2. là bước quan trọng nhất, bước 3. thì code xong
rồi tuy nhiên cần xác thực lại
chủ yếu nó vẫn là bài toán phân loại văn bản: phân loại câu hỏi thuộc vào
nhóm nào (hỏi vị trí phòng, hỏi lịch hoạt động,...) trong ngân hàng
câu hỏi sẵn có, rồi dựa trên kết quả phân loại để chọn (ngẫu nhiên hoặc có
qui luật) một câu trả lời trong danh sách các câu trả lời thuộc nhóm câu
hỏi đó; hiện tại e có 3 phương án:
1. xây dựng 1 con bot chat tích hợp vào nền tảng mạng xã hội
zalo, fb, slack,... phương án này e chỉ nghĩ đến chứ không/chưa
tìm hiểu
ưu điểm: tận dụng được nền tảng, độ phổ biến của mạng xã hội, có thể
là sẽ dễ tìm kiếm hỗ trợ hơn trong bài toán phân loại văn bản
nhược điểm: phụ thuộc mạng xã hội, không sát với mô tả (phần mềm android,
có admin site để cấu hình quản trị)
2. tự phát triển hệ thống
2.1 bài toán phân loại văn bản dùng thư viện tensorflow, keras (hoặc pytorch), nltk,
tflearn,... tất cả đều là thư viện miễn phí
2.2 tự code phần xử lí lựa chọn câu trả lời dựa trên kết quả phân loại
ưu điểm:
tự phát triển nên hiểu rõ hệ thống; không phụ thuộc quá nhiều vào thư
viện viết sẵn, dễ tùy chỉnh hơn, nếu có sai sót thì dễ tìm ra lỗi
và sửa (hoặc có phương án thay thế nếu cần thiết)
tài liệu đa dạng, nhiều nguồn
nhược điểm:
không đưa ra được nhiều thuật toán lựa chọn
thời gian dự kiến: 1 tháng rưỡi
3. dùng thư viện sẵn có (đề xuất thư viện miễn phí chatterbot) (có khả năng sẽ
dùng đến thư viện có phí nếu phát sinh yêu cầu đặc biệt)
ưu điểm:
các bước tương tự 2.1, 2.2 đã được tích hợp hết trong thư viện với nhiều
thuật toán
không yêu cầu hiểu nhiều về bài toán phân loại văn bản
dễ hơn và chuẩn hơn cho Duy khi làm tài liệu thuyết minh vì có thể tham khảo
trang chủ của thư viện
nhược điểm:
không nắm rõ được hệ thống như khi tự phát triển, nếu khách hàng có yêu cầu
đặc biệt thì thời gian tùy chỉnh sẽ lâu hơn
thời gian dự kiến: 1 tháng
thời gian dự kiến phía trên là hoàn thành phần mềm về cơ bản, chưa tính đến việc sửa khi trong
quá trình dùng phát sinh ngoại lệ