2 Khi kin th hc máy
2.3 Kin th vh th ng gi ý
2.3.3 Lc da trên min kin th c (Knowledge Filtering)
H th ng đ xu t d a trên ki n th c khi nó đ a ra các đ xu t không d trên l ch s s d ng s n ph m c a ng i dùng hay s yêu thích s n ph m mà d a trên các truy v n c th là d a trên nh ng lo i m n ng i dùng đang g p ph i.
H th ng g i ý này d a trên khi n th c v y khoa đ đ a nh ng s n ph m có nh ng thành ph n phù h p v i tình tr ng c ng nh nh ng lo i m n ng i dùng đang g p ph i, t đó tìm ki m thơng qua c s d li u c a các m c và tr v k t qu t ng t [65]. Nh n xét • Ph ng pháp h tr t t trong nh ng tr ng h p ng i dùng s d ng h th ng l n đ u tiên, ho c có ít thơng tin đ vi c g i ý có k t qu t t. N u không đ c trang b các thành ph n h tr h c thì nó có th b đánh b i b i các ph ng pháp khác mà có th khai thác l ch s t ng trác gi a ng i dùng và s n ph m.
• Phù h p đ đè xu t cho nh ng ng i dùng m i b t đ u s d ng h th ng.
2.3.4 H ng ti p c n lai
M i ph ng pháp c ng s có u đi m và nh c đi m riêng. Ví d , ph ng pháp l c c ng tács g p v n đ không th sinh ra g i ý đ i v i nh ng s n ph m ch a có
b t kì g i ý nào. Nh ng đi u này s không nh h ng đ nl c theo n i dung vàl c
d a trên mi n ki n th cvì hai ph ng pháp này khơng c n ph i có l ch s đánh giá c a s n ph m. i u này cho ta th y n u s d ng các ph ng pháp l c m t cách đ n l thì s có nh ng nh c đi m nh t đ nh. T vi c k t h p nh ng ký thu t hi n có, giúp t n d ng l i th c a các ph ng pháp và h n ch đ c nh c đi m c a các ph ng pháp đó. T đó t o ra m t h th ng hồn thi n h n đ ph c v ng i dùng. Nh ng cách k t h p các h th ng g i ý [66]: • Lai có tr ng s
Trong h th ng này, đi m đánh giá c a m t m t hàng đ c đ xu t đ c tính t k t qu c a t t c các k thu t đ xu t có s n trong h th ng. Ví d : m t h th ng k t h p các h th ng đ xu t d a trên n i dung. Khi b t đ u các k t qu đ c đánh giá cân b ng, nh ng tr ng s đ c đi u ch nh d n khi d đoán v x p h ng c a ng i dùng đ c xác nh n ho c khơng đ c xác nh n.
• xu t lai
Chuy n đ i gi a các k thu t g i ý d a trên các tiêu chí c th . Gi s n u chúng ta k t h p các h th ng đ xu t d a trên n i dung và c ng tác. Sau đó, h th ng tr c tiên có th tri n khai h th ng đ xu t d a trên n i dung, n u nó khơng ho t đ ng thì nó s tri n khai h th ng đ xu t d a trên c ng tác.
3. Kh i ki n th c v công ngh
3.1 Ngơn ng l p trình 3.1.1 Python
Python là ngơn ng l p trình thơng d ch do Guido van Rossum t o ra n m 1990 và đ c phát tri n trong m t d án mã ngu n m . Python là ngơn ng l p trình b c cao, s d ng ki u c p phát b nh đ ng, h tr các ph ng th c l p trình nh l p trình h ng đ i t ng, l p trình hàm.
Hình th c c a ngơn ng Python r t sáng s a, rõ ràng, cú pháp d nh và d s d ng, chính vì v y nên Python là ngôn ng đ c a chu ng đ i v i nh ng ng i ch a bi t gì v l p trình n u h mu n h c.
Python h tr r t m nh v Machine Learning, Deep Learning v i các th vi n nh TensorFlow, Pytorch, Keras, ... Ngồi ra cịn có các th vi n h tr m nh cho vi c x lý d li u nh là Pandas, Numpy, Scipy, ...
Nhóm ch n phiên b n m i và n đ nh nh t khi m i b t đ u đ tài là Python 3.8.5 đ hi n th c các thành ph n trong ng d ng.
3.1.2 Javascript
JavaScript đ c t o ra b i Brandan Eich, m t nhân viên c a Netscape, vào tháng 9 n m 1995, nó là ngơn ng l p trình ph bi n nh t th gi i trong su t 20 n m qua.
JavaScript mang nh ng đ c đi m sau: • Là ngơn ng l p trình thơng d ch.
• Khơng c n compiler vì có th biên d ch b ng HTML. • D h c và d s d ng.
• Ho t đ ng trên nhi u trình duy t, n n t ng.
JavaScript có th vi t đ c các ng d ng web phía ng i dùng (client) và các ng d ng c a máy ch (server), c ng là m t lý do khi n nó tr nên r t ph bi n.
3.1.3 Dart
Dart là m t ngôn ng l p trình web do Google phát tri n. Nó đ c chính th c cơng b t i H i th o GOTO ngày 1012 tháng 10 n m 2011 t i Aarhus. M c đích c a Dart khơng ph i đ thay th JavaScript nh là ngôn ng k ch b n chính bên trong trình duy t web, mà là cung c p s l a ch n hi n đ i h n.
Dart c ng là ngôn ng l p trình chính trong Flutter, m t SDK s đ c đ c p bên d i, dùng trong l p trình các ng d ng đi n tho i Android, IOS.
3.2 Các n n t ng framework và th vi n 3.2.1 Flask
Flask là m t web frameworks c a python, nó thu c lo i microframework đ c xây d ng b ng ngơn ng l p trình Python. Flask cho phép nhóm xây d ng ng d ng web đ đánh nhãn d li u.
Nó có th xây d ng các api nh , ng d ng web ch ng h n nh các trang web, blog, trang wiki ho c m t website d a theo th i gian hay th m chí là m t trang web th ng m i. Flask cung c p các công c , các th vi n và các cơng ngh h tr nhóm làm nh ng công vi c trên.
3.2.2 Keras
Keras là m t b các API Deep Learning đ c vi t b ng Python, ch y trên n n t ng TensorFlow. Keras đ c phát tri n v i tr ng tâm là cho phép th nghi m nhanh, vi c th nghi m nhanh đôi khi s mang l i k t qu nghiên c u t t. Nhóm s d ng Keras trong vi c xây d ng mơ hình Convolution Neural Network.
3.2.3 Tensorflow
TensorFlow là m t th vi n mã ngu n m h tr tính tốn s h c theo ý t ng v đ th lu ng d li u. TensorFlow tích h p s n r t nhi u các th vi n Machine Learning, Deep Learning, có kh n ng t ng thích và m r ng t t, th vi n này đ c Google phát tri n cho Machine Learning, Deep Learning ph c v c nghiên c u l n xây d ng các ng d ng th c t . Nhóm s d ng th vi n này trong vi c xây d ng Convolution Neural Network.
3.2.4 Pandas
Pandas là m t th vi n Python mã ngu n m , h tr đ c l c cho vi c thao tác d li u. V i Pandas, ng i dùng có th d dàng t o ra các b ng d li u (Dataframe) và th c hi n các phép truy v n, th ng kê trên nó, cho phép đ c/ghi các đ nh d ng file m t cách d dàng.
3.2.5 Scikitlearn
Scikitlearn (Sklearn) là th vi n ph bi n dành cho các thu t toán h c máy đ c vi t trên ngôn ng Python. Th vi n cung c p m t t p các công c x lý các bài toán Machine Learning và Statistical Modeling g m: classification, regression, clustering, và dimensionality reduction. Th vi n đ c c p phép b n quy n chu n FreeBSD và ch y đ c trên nhi u n n t ng Linux. Scikitlearn đ c s d ng nh m t tài li u đ h c t p.
3.2.6 Pymongo
Pymongo là m t th vi n Python h tr thao tác v i c s d li u MongoDB, bao g m vi c t o MongoClient k t n i d a trên URI (Uniform Resource Identifier) c a c s d li u và các thao tác Create, Read, Update, Delete (CRUD) trên c s d li u, cú pháp c a th vi n khá gi ng v i vi c thao v i v i MongoDB trên console.
3.2.7 Flutter
Flutter là m t SDK phát tri n ng d ng di đ ng ngu n m đ c t o ra b i Google. Nó đ c s d ng đ phát tri n ng ng d ng cho Android và iOS. ng d ng Flutter đ c vi t b ng ngôn ng Dart và t n d ng nhi u tính n ng nâng cao c a ngôn ng này. Flutter m r ng s h tr này cho tính n ng ”t i l i nóng gi tr ng thái (stateful hot reload), đ các s a đ i trong mã ngu n có th đ c c p nh t ngay l p t c lên ng d ng đang ch y mà không c n ph i kh i đ ng l i ho c m t mát các tr ng thái đang có.
3.2.8 Selenium
Selenium là m t b cơng c ki m th t đ ng open source, dành cho các ng d ng web, h tr ho t đ ng trên nhi u trình duy t và n n t ng khác nhau nh Windows, Mac, Linus, V i Selenium, l p trình viên có th vi t các testscript b ng các ngơn ng l p trình khác nhau nh Java, PHP, C, Ruby hay Python hay th m chí là Perl Nhóm s s ng Selenium đ có th mơ ph ng h u h t nh ng thao tác ng i dùng v i trình duy t (nh p click, cu n scroll, đóng tab, click check box, ) t đó có th l y d li u ph c v cho m c đích nghiên c u và ng d ng.
3.3 Cơng c
3.3.1 Google Colab
Google Colab là m t công c h tr phát tri n các ng d ng Machine Learning, Deep Learning nh vào vi c cung c p GPU/TPU mi n phí đ cho q trình hu n luy n các mơ hình di n ra nhanh h n ho c đ i v i l ng d li u l n thì mơi tr ng GPU/TPU s t t h n so v i vi c hu n luy n trên máy cá nhân. Google Colab h tr các file g i là notebook giúp có th v a code v a trình bày các n i dung kèm v i code, r t thích h p đ vi t các tutorial ng n v Machine Learning c ng nh Deep Learning.
3.3.2 Mongo Atlas
MongoDB Atlas là cloud database c a MongoDB đ c ra m t vào n m 2016 ch y trên AWS, Microsoft Azure và Google Cloud Platform.
D li u trong m i Cluster Atlas đ c l u tr theo c ch Replication, v i 3 nodes: 1 master (primary) và 2 slaves (secondary)
3.3.3 FullText Search
Trong truy xu t v n b n, FullText Search (tìm ki m tồn v n b n) đ c p đ n các k thu t tìm ki m m t tài li u trong c s d li u tồn v n b n. Tìm ki m tồn v n b n đ c phân bi t v i các tìm ki m d a trên metadata (siêu d li u) ho c trên các ph n c a v n b n g c trong c s d li u (nh tiêu đ , tóm t t, ph n đ c ch n ho c tài li u tham kh o th m c). Nhóm s d ng FullText Search đ c MongoDB h tr đ tìm ki m các s n ph m g i ý m t cách nhanh chóng và ti n l i.