Dalam perjalanan saya ke arah mempelajari tentang AWS dan pembelajaran mesin/AI, saya telah memutuskan untuk mencipta Pengesyor Laluan Pembelajaran AWS yang ringkas tetapi berkuasa menggunakan Streamlit, pemprosesan bahasa semula jadi atau NLP melalui mock persekitaran S3. Aplikasi ini akan dapat mencadangkan laluan pembelajaran AWS berdasarkan input pengguna.
Jadi, mari kita mula mempelajarinya!
Prasyarat
Sebelum kita mula, pastikan Python dipasang dan buat folder projek baharu. Kemudian, pasang perpustakaan di bawah:
pip install streamlit boto3 moto scikit-learn
Langkah 1: Sediakan Mock S3
Pertama, kami mentakrifkan fungsi untuk mencipta S3 olok-olok menggunakan Moto; ini akan digunakan untuk mensimulasikan AWS S3 tanpa menyambung ke AWS.
import boto3 from moto import mock_s3 import json def setup_mock_s3(): s3 = boto3.resource("s3", region_name="us-east-1") bucket_name = "mock-learning-paths" s3.create_bucket(Bucket=bucket_name) data = { "resources": [ {"title": "Introduction to AWS", "tags": "AWS, Cloud Computing, Basics"}, {"title": "Deep Learning on AWS", "tags": "AWS, Deep Learning, AI"}, {"title": "NLP with SageMaker", "tags": "AWS, NLP, Machine Learning"}, {"title": "Serverless with AWS Lambda", "tags": "AWS, Serverless, Lambda"}, ] } s3.Bucket(bucket_name).put_object(Key="mock_resources.json", Body=json.dumps(data)) return bucket_name
Langkah 2: Fungsi Pengesyoran
Seterusnya, kami akan mentakrifkan fungsi yang, diberikan input pengguna, akan membuat cadangan untuk laluan pembelajaran dengan menggunakan beberapa NLP:
from sklearn.feature_extraction.text import TfidfVectorizer from sklearn.metrics.pairwise import cosine_similarity def recommend_learning_path(user_input, bucket_name): s3 = boto3.client("s3", region_name="us-east-1") obj = s3.get_object(Bucket=bucket_name, Key="mock_resources.json") data = json.loads(obj['Body'].read().decode('utf-8')) resources = data["resources"] titles = [resource["title"] for resource in resources] tags = [resource["tags"] for resource in resources] corpus = tags + [user_input] vectorizer = TfidfVectorizer() tfidf_matrix = vectorizer.fit_transform(corpus) similarity = cosine_similarity(tfidf_matrix[-1], tfidf_matrix[:-1]) scores = similarity.flatten() ranked_indices = scores.argsort()[::-1] recommendations = [titles[i] for i in ranked_indices[:3]] return recommendations
Langkah 3: Perkemas Antara Muka
Mari kita reka bentuk antara muka aplikasi kita menggunakan Streamlit:
import streamlit as st st.title("AWS Learning Path Recommender") user_input = st.text_input("What do you want to learn about AWS?", "I want to learn about AWS and AI") if st.button("Get Recommendations"): with mock_s3(): bucket_name = setup_mock_s3() recommendations = recommend_learning_path(user_input, bucket_name) st.subheader("Recommended Learning Path:") for i, rec in enumerate(recommendations, 1): st.write(f"{i}. {rec}")
Langkah 4: Menyatukan Semuanya
Gabungkan semua coretan kod ke dalam satu fail Python bernama 'app.py':
import streamlit as st import boto3 from moto import mock_s3 import json from sklearn.feature_extraction.text import TfidfVectorizer from sklearn.metrics.pairwise import cosine_similarity # [Insert setup_mock_s3 function here] # [Insert recommend_learning_path function here] st.title("AWS Learning Path Recommender") user_input = st.text_input("What do you want to learn about AWS?", "I want to learn about AWS and AI") if st.button("Get Recommendations"): with mock_s3(): bucket_name = setup_mock_s3() recommendations = recommend_learning_path(user_input, bucket_name) st.subheader("Recommended Learning Path:") for i, rec in enumerate(recommendations, 1): st.write(f"{i}. {rec}")
Langkah 5: Jalankan Apl
Untuk memulakan apl Streamlit, buka terminal, tukar direktori kepada folder projek anda dan jalankan:
streamlit run app.py
Ini akan but pelayan Streamlit dan membuka apl dalam penyemak imbas web lalai anda.
Cara Ia Berfungsi
Apl ini mencipta baldi S3 palsu yang diisi dengan beberapa contoh sumber pembelajaran AWS.
Aplikasi ini mengesyorkan sumber yang paling berkaitan, menggunakan TF-IDF sebagai tambahan kepada persamaan kosinus, dengan memasukkan minat pengguna dalam pembelajaran dan mengklik "Dapatkan Pengesyoran." 3 pengesyoran teratas akan ditunjukkan kepada pengguna.
Kesimpulan.
Aplikasi mudah ini menggunakan Streamlit untuk menggabungkan teknik NLP dengan perkhidmatan AWS, diakui diejek, untuk mencipta pengesyor laluan pembelajaran interaktif. Anda boleh melanjutkan contoh ini dengan menyepadukan perkhidmatan AWS sebenar, menambahkan lebih banyak sumber atau menggunakan algoritma pengesyoran yang lebih canggih.
Ini adalah contoh yang sangat mudah dan boleh ditambah baik untuk pengeluaran. Ingat, keselamatan, kebolehskalaan dan pengalaman pengguna adalah kebimbangan utama semasa membangunkan aplikasi untuk dunia sebenar.
Terima kasih banyak kerana membaca ini!
Atas ialah kandungan terperinci Cipta Pengalaman Pembelajaran AWS Peribadi Anda Sendiri dengan Streamlit. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!