Bỏ qua nội dung

Quả video này làm bằng Capcut, AI clone ...

Cafe buổi sáng
1 1 2 1

Bài liên quan


  • Siêu điện thoại làm ta nhớ tới BlackBerry

    Clicks Communicator và Power Keyboard vừa được giới thiệu với định hướng rõ ràng: giúp người dùng nhắn tin, email và làm việc hiệu quả hơn, thân thiện hơn. Clicks Communicator là thiết bị đồng hành tập trung liên lạc, còn Power Keyboard là bàn phím trượt gắn từ tính dành cho điện thoại hiện có.

    Power Keyboard: Bàn phím trượt gắn bằng nam châm, linh hoạt và gọn gàng
    Khác thế hệ ốp lưng gắn chết, Power Keyboard chuyển sang thiết kế module nhờ cơ chế nam châm, cho phép tháo lắp nhanh. Thiết bị dùng chuẩn kết nối từ tính tương thích MagSafe và Qi2 để bám chắc vào mặt lưng điện thoại. Bàn phím dạng trượt: cần gõ thì kéo ra, xong việc trượt gọn vào phía sau, giữ máy mỏng nhẹ khi di chuyển.

    Qua Bluetooth và hệ thống nam châm, Power Keyboard hỗ trợ rộng: iPhone, các flagship Android như Pixel, Samsung, thậm chí máy tính bảng và kính thực tế ảo (VR/AR). Hai cánh mở rộng giúp cầm nắm chắc khi gõ ngang, phù hợp soạn thảo văn bản dài hay xử lý bảng tính. Pin tích hợp cho phép thiết bị hoạt động như sạc dự phòng không dây cho máy chính, tiện lợi khi làm việc liên tục.

    Communicator: Thiết bị đồng hành, gợi nhớ BlackBerry, chạy Anadroid
    Communicator là điểm nhấn của lần ra mắt này. Không nhằm thay thế smartphone cao cấp, máy được định vị là “thiết bị đồng hành” giúp tập trung liên lạc hoặc hạn chế thời gian mạng xã hội. Thiết kế dạng thanh cổ điển với bàn phím QWERTY vật lý cố định, gợi nhớ BlackBerry Q5 và BlackBerry 9900. Bề mặt phím hỗ trợ cảm ứng điện dung, cho phép vuốt trực tiếp trên cụm phím để cuộn nội dung, đọc email hay tin nhắn mà không cần chạm màn hình.

    Máy chạy Android, tối ưu cho nhắn tin, gọi điện và tác vụ công việc cơ bản. Clicks Communicator dự kiến bán ra cuối năm nay với giá 499 USD, hướng tới người dùng cần một thiết bị gọn, bền bỉ để giữ nhịp liên lạc hàng ngày mà không bị xao nhãng.

    1 Phản hồi 0 Yêu thích 4 Đã xem
  • 6 quả AI này các bạn đã thử con nào chưa? :))))

    1 Phản hồi 0 Yêu thích 6 Đã xem
  • Như các bạn đã biết, Chatbot là một chương trình kết hợp với trí tuệ nhân tạo (AI) để tương tác với con người. Công cụ này có thể thay thế cho nhân viên tư vấn hoặc trả lời những thắc mắc của khách hàng.

    Nó không chỉ là công cụ trợ giúp bán hàng hoạt động 24/7. Mà Chatbot còn cập nhật liên tục, giúp bạn không bỏ sót đơn hàng nào của khách.

    Train mô hình chatbot bằng Machine Learning (Deep Learning) như thế nào?

    Việc huấn luyện một mô hình chatbot bằng Python có thể thực hiện bằng nhiều cách khác nhau, tùy thuộc vào độ phức tạp và dữ liệu mà bạn muốn sử dụng. Dưới đây là hướng dẫn từng bước của team FastCloud để các bạn có thể train một con chatbot từ cơ bản đến nâng cao.

    1. Chọn phương pháp huấn luyện

    Có 3 phương pháp chính để train một chatbot:

    Dựa trên rule-based (kịch bản có sẵn) – Dùng các câu trả lời cố định.

    Dựa trên machine learning truyền thống – Dùng mô hình NLP như TF-IDF hoặc seq2seq.

    Dựa trên deep learning – Dùng mô hình transformer như GPT hoặc LLaMA.

    2. Chuẩn bị môi trường và cài đặt thư viện

    Trước tiên, bạn cần cài đặt các thư viện quan trọng:

    NLTK: Xử lý ngôn ngữ tự nhiên.

    Transformers: Sử dụng mô hình ngôn ngữ mạnh như GPT.

    Quá trình thực hiện:

    1️⃣ Thu thập dữ liệu hội thoại

    Ví dụ file intents.json:

    {
        "intents": [
            {
                "tag": "chào hỏi",
                "patterns": ["Xin chào", "Chào bạn", "Hello"],
                "responses": ["Chào bạn!", "Xin chào, tôi có thể giúp gì?", "Hello!"]
            },
            {
                "tag": "tạm biệt",
                "patterns": ["Tạm biệt", "Bye", "Hẹn gặp lại"],
                "responses": ["Tạm biệt nhé!", "Hẹn gặp lại!", "Bye bye!"]
            }
        ]
    }
    

    2️⃣ Tiền xử lý dữ liệu

    Mục tiêu: Biến văn bản thành dạng có thể dùng để train mô hình (Bag of Words).

    📌 Các bước:

    ✅ Tokenize (tách từ)
    ✅ Lemmatize (chuẩn hóa từ)
    ✅ Chuyển đổi sang dạng vector

    Cài đặt thư viện:

    pip install numpy nltk tensorflow
    

    Code tiền xử lý dữ liệu:

    import json
    import random
    import numpy as np
    import nltk
    from nltk.stem import WordNetLemmatizer
    
    # Khởi tạo lemmatizer để chuẩn hóa từ
    lemmatizer = WordNetLemmatizer()
    
    # Load dữ liệu hội thoại từ JSON
    with open("intents.json", "r", encoding="utf-8") as file:
        intents = json.load(file)
    
    words = []
    classes = []
    documents = []
    ignore_words = ["?", "!", ".", ","]
    
    # Xử lý dữ liệu đầu vào
    for intent in intents["intents"]:
        for pattern in intent["patterns"]:
            word_list = nltk.word_tokenize(pattern)  # Tokenize
            words.extend(word_list)
            documents.append((word_list, intent["tag"]))
            if intent["tag"] not in classes:
                classes.append(intent["tag"])
    
    # Chuẩn hóa từ (lemmatization)
    words = [lemmatizer.lemmatize(w.lower()) for w in words if w not in ignore_words]
    words = sorted(list(set(words)))
    classes = sorted(list(set(classes)))
    
    print("Từ vựng:", words)
    print("Nhóm hội thoại:", classes)
    

    3️⃣ Chuyển đổi dữ liệu thành vector

    Chúng ta tạo Bag of Words (BOW) để biểu diễn câu bằng số.

    # Tạo dữ liệu huấn luyện
    training = []
    output_empty = [0] * len(classes)
    
    for doc in documents:
        bag = []
        word_patterns = doc[0]
        word_patterns = [lemmatizer.lemmatize(word.lower()) for word in word_patterns]
    
        for w in words:
            bag.append(1) if w in word_patterns else bag.append(0)
    
        output_row = list(output_empty)
        output_row[classes.index(doc[1])] = 1
        training.append([bag, output_row])
    
    # Chuyển đổi sang mảng NumPy
    random.shuffle(training)
    training = np.array(training, dtype=object)
    
    train_x = np.array(list(training[:, 0]))  # Input (BOW)
    train_y = np.array(list(training[:, 1]))  # Output (Nhóm hội thoại)
    
    print("Dữ liệu đầu vào:", train_x)
    print("Dữ liệu đầu ra:", train_y)
    

    4️⃣ Xây dựng mô hình Deep Learning

    Chúng ta sử dụng TensorFlow/Keras để xây dựng mạng Neural Network.

    from tensorflow.keras.models import Sequential
    from tensorflow.keras.layers import Dense, Dropout
    from tensorflow.keras.optimizers import SGD
    
    # Xây dựng mô hình Deep Learning
    model = Sequential()
    model.add(Dense(128, input_shape=(len(train_x[0]),), activation="relu"))
    model.add(Dropout(0.5))
    model.add(Dense(64, activation="relu"))
    model.add(Dropout(0.5))
    model.add(Dense(len(train_y[0]), activation="softmax"))
    
    # Biên dịch mô hình
    sgd = SGD(learning_rate=0.01, decay=1e-6, momentum=0.9, nesterov=True)
    model.compile(loss="categorical_crossentropy", optimizer=sgd, metrics=["accuracy"])
    
    # Train mô hình
    model.fit(train_x, train_y, epochs=200, batch_size=5, verbose=1)
    
    # Lưu mô hình đã train
    model.save("chatbot_model.h5")
    print("Mô hình đã được lưu!")
    

    5️⃣ Triển khai chatbot

    Sau khi train xong, chúng ta có thể sử dụng mô hình để phản hồi tin nhắn.

    import json
    import numpy as np
    import nltk
    import tensorflow as tf
    from nltk.stem import WordNetLemmatizer
    
    lemmatizer = WordNetLemmatizer()
    with open("intents.json", "r", encoding="utf-8") as file:
        intents = json.load(file)
    
    # Load mô hình đã train
    model = tf.keras.models.load_model("chatbot_model.h5")
    
    # Hàm xử lý đầu vào
    def clean_up_sentence(sentence):
        sentence_words = nltk.word_tokenize(sentence)
        sentence_words = [lemmatizer.lemmatize(word.lower()) for word in sentence_words]
        return sentence_words
    
    def bag_of_words(sentence, words):
        sentence_words = clean_up_sentence(sentence)
        bag = [0] * len(words)
        for s in sentence_words:
            for i, w in enumerate(words):
                if w == s:
                    bag[i] = 1
        return np.array(bag)
    
    def predict_class(sentence):
        bow = bag_of_words(sentence, words)
        res = model.predict(np.array([bow]))[0]
        ERROR_THRESHOLD = 0.25
        results = [[i, r] for i, r in enumerate(res) if r > ERROR_THRESHOLD]
        results.sort(key=lambda x: x[1], reverse=True)
        return classes[results[0][0]] if results else "unknown"
    
    def get_response(tag):
        for intent in intents["intents"]:
            if intent["tag"] == tag:
                return random.choice(intent["responses"])
        return "Xin lỗi, tôi không hiểu."
    
    # Chạy chatbot
    print("Chatbot đã sẵn sàng! Nhập 'quit' để thoát.")
    while True:
        message = input("Bạn: ")
        if message.lower() == "quit":
            break
        tag = predict_class(message)
        response = get_response(tag)
        print(f"Bot: {response}")
    

    🎯 Tổng kết

    ✅ Thu thập dữ liệu (intents.json)
    ✅ Tiền xử lý dữ liệu (Tokenize, Lemmatize, Bag of Words)
    ✅ Xây dựng mô hình Deep Learning (Neural Network với TensorFlow)
    ✅ Train mô hình
    ✅ Triển khai chatbot

    1 Phản hồi 0 Yêu thích 303 Đã xem
Bản quyền 2026 © Type