Mục lục:

Làm thế nào để thực hiện một A.I. Phần 2: 9 bước
Làm thế nào để thực hiện một A.I. Phần 2: 9 bước

Video: Làm thế nào để thực hiện một A.I. Phần 2: 9 bước

Video: Làm thế nào để thực hiện một A.I. Phần 2: 9 bước
Video: #2. 9 bước bắt đầu để kinh doanh - AI? Quan trọng hơn Làm như thế nào | Nguyễn Linh Hải 2024, Tháng bảy
Anonim
Làm thế nào để thực hiện một A. I. Phần 2
Làm thế nào để thực hiện một A. I. Phần 2

Đây là phần 2 về các bước tôi đã thực hiện để xây dựng AI trên máy tính windows, sử dụng cơ sở dữ liệu miễn phí, công cụ phát triển Lập trình và công cụ TTS tích hợp miễn phí đi kèm với Windows.

Từ "Windows" thuộc về Microsoft.

Từ "Dragon" thuộc về Nuance.

Bước 1: Cách tạo AI Phần 2

Cách tạo AI Phần 2
Cách tạo AI Phần 2

Chọn một ngôn ngữ lập trình và nhận một số công cụ

Có nhiều ngôn ngữ lập trình. Một số chuyên dùng cho A. I. Yêu thích của tôi là Visual Basic, vì vậy đó là những gì tôi đã sử dụng. Tôi cũng làm việc với cơ sở dữ liệu máy chủ SQL, vì vậy tôi cũng sử dụng nó.

Bạn có thể tải xuống các phiên bản miễn phí của chúng từ trang web của Microsoft. Chỉ cần tìm kiếm “EXPRESS” trên trang web của Microsoft. [Visual Studio Express và SQL server Express]

Các ngôn ngữ khác mà bạn có thể muốn với chúng tôi là: Python, C #, C ++, Java, Prolog, Lisp, IPL

và nhiều người khác. AIML là một “Ngôn ngữ đánh dấu” rất thú vị.

Tôi muốn có một chương trình “nhận dạng giọng nói” tốt hơn chương trình đi kèm với Windows, vì vậy tôi đã mua phần mềm DRAGON. Tôi đang sử dụng chương trình “Chuyển văn bản thành giọng nói” tiêu chuẩn đi kèm với Windows.

Bước 2: Thiết kế hệ thống của bạn:

Thiết kế hệ thống của bạn
Thiết kế hệ thống của bạn

Chia các dự án lớn của bạn thành một loạt các dự án nhỏ hơn. Tôi đã chia mã chương trình của mình thành các mô-đun.

Tôi đã chia mã của mình thành các mô-đun khác nhau để một chức năng cụ thể dễ tìm hơn.

Tôi có các mô-đun có tên “Đầu vào quy trình”, “AI quy trình”, “Đầu ra quy trình”, “Giao diện người dùng” và một số mô-đun khác. Một số chức năng của tôi cần phải có thể truy cập vào tất cả các mô-đun mã khác, vì vậy tôi đặt các chức năng đó trong một mô-đun “chung” nơi mọi thứ được chia sẻ

Bước 3: Các chức năng được xây dựng trong ngôn ngữ lập trình:

Các chức năng được xây dựng trong ngôn ngữ lập trình
Các chức năng được xây dựng trong ngôn ngữ lập trình

Các ngôn ngữ khác nhau có thể có các tên khác nhau cho những ngôn ngữ này, nhưng tất cả các ngôn ngữ cấp cao đều có các chức năng tương tự.

LCase hoặc ToLower: Chuyển đổi một chuỗi thành tất cả các chữ thường. Tôi chuyển đổi mọi thứ thành chữ thường trước khi thực hiện tìm kiếm cơ sở dữ liệu - mặc dù hầu hết mọi thứ đều “không phân biệt chữ hoa chữ thường” - Chỉ trong trường hợp.

Thay thế: Thay thế một chuỗi bên trong một chuỗi thành một chuỗi khác. Bạn có thể thay thế một chuỗi bằng một chuỗi rỗng “” để loại bỏ nó. Tôi loại bỏ dấu chấm, dấu chấm hỏi, dấu phẩy và các dấu câu khác.

Tách: Tách một chuỗi thành các phần riêng lẻ và đặt chúng thành một mảng. Hàm này sẽ chia một chuỗi trên bất kỳ ký tự nào, hoặc "Dấu phân cách". Tôi tách một câu trên “ký tự khoảng trắng” ““để tạo thành một mảng từ. Điều này được gọi là "Tokening" bởi AI Gurus.

Tôi sử dụng các từ riêng lẻ để xây dựng các truy vấn được sử dụng để tìm kiếm cơ sở dữ liệu. (Thêm về điều này trong bài viết tiếp theo của tôi)

Bước 4: Kết hợp các chức năng tích hợp để tạo các chức năng của riêng bạn

Đây là một ví dụ "cơ bản về hình ảnh". Sử dụng ngôn ngữ lập trình của bạn để xây dựng một cái gì đó như thế này.

Tất nhiên, bạn sẽ cần viết rất nhiều mã, và xây dựng nhiều hàm, sử dụng ngôn ngữ lập trình mà bạn chọn.

Bước 5: Các mô-đun làm gì? “Bộ xử lý đầu vào”

Các mô-đun làm gì? “Bộ xử lý đầu vào”
Các mô-đun làm gì? “Bộ xử lý đầu vào”

Có thể có hàng trăm cách khác nhau để hỏi AI cùng một câu hỏi. Ví dụ; “Mấy giờ rồi?”, “Bạn có thời gian không?” “Bạn có biết mấy giờ rồi không?”, “Bạn có thể cho tôi biết thời gian hiện tại trong ngày không?” Vì người dùng chỉ yêu cầu thời gian, tôi chuyển đổi bất kỳ Đầu vào nào trong số các Đầu vào này thành một Đầu ra duy nhất được gọi là “Thời gian truy vấn” bằng cách sử dụng bảng “tra cứu” cơ sở dữ liệu.

Bạn có thể viết mã để lặp qua một bảng cho đến khi nó tìm thấy bảng phù hợp hoặc nếu bạn đang sử dụng cơ sở dữ liệu SQL, bạn có thể viết một truy vấn SQL, như…

“Chọn Đầu ra từ TableName trong đó Đầu vào =‘”bất cứ điều gì‘”

… Và sau đó tôi gửi đầu ra, “Thời gian truy vấn”, đến mô-đun mã tiếp theo; “Xử lý AI”

Ngoài câu hỏi, có nhiều cách để nói "Xin chào"

Xin chào, Xin chào, chuyện gì xảy ra, này, hola, how ya doin ?, chào, chào mừng, chào, xin chào….

Tất cả những điều này được giảm thành "Lời chào"

Khi bộ xử lý AI nhìn thấy “Lời chào”, nó sẽ gửi “Lời chào” tới bộ xử lý đầu ra, bộ xử lý này sẽ chọn một lời chào ngẫu nhiên từ bảng cơ sở dữ liệu và nói to.

Bước 6: “Bộ xử lý AI”

“Bộ xử lý AI”
“Bộ xử lý AI”

Process AI là mô-đun mã lớn nhất. Nó quá lớn nên tôi cũng chia nó thành nhiều phần.

Đầu vào được kiểm tra để xem liệu người dùng có nói lệnh hay đặt câu hỏi hay không. Ngoài ra, AI có thể ở bất kỳ "Chế độ" nào, có nghĩa là mã "Process AI" đang mong đợi người dùng TRẢ LỜI một câu hỏi, thay vì HỎI một câu hỏi.

Nếu người dùng không nói một lệnh và AI không ở trong “Chế độ” đặc biệt thì nó sẽ xây dựng và thực thi một loạt các truy vấn, từ sự kết hợp của các từ trong “mảng từ”. Tất cả các kết quả truy vấn được lưu trữ trong một bảng và mỗi kết quả truy vấn được cho một “điểm số” về mức độ kết quả khớp với những gì người dùng đã nói. Bảng được sắp xếp theo điểm và kết quả có điểm cao nhất sẽ được gửi đến đầu ra, nếu nó vượt quá một ngưỡng nhất định. Nếu tất cả các điểm đều dưới ngưỡng, AI có thể trả lời "Tôi không biết" hoặc "Điều đó không tính được"

Bước 7: Bảng "đầu ra và điểm"

Các
Các

Đầu ra của AI từ đầu vào của tôi "Con gà đã làm gì?"

Bước 8: “Bộ xử lý đầu ra”

“Bộ xử lý đầu ra”
“Bộ xử lý đầu ra”

Điều này thực hiện một số thứ trông “không liên quan” nhưng tất cả đều liên quan đến việc đưa văn bản từ Bộ xử lý AI đến người dùng.

Đây là một danh sách.

1. Văn bản từ cơ sở dữ liệu có thể ở dạng chữ thường và không có bất kỳ dấu câu nào.. Subroutines sẽ viết hoa chữ cái đầu tiên và đặt dấu chấm hoặc dấu chấm hỏi ở cuối.

2. Một chương trình con khác sẽ đặt dấu nháy đơn trở lại thành các từ co lại hoặc chuyển đổi các từ co trở lại thành các từ đầy đủ (tức là “cant” được thay thế bằng “can not”)

3. Công cụ chuyển văn bản thành giọng nói không phát âm một số từ theo cách tôi thích, vì vậy “Bộ xử lý đầu ra” thay thế những từ đó bằng cách viết phiên âm.. Tôi có các bảng “tra cứu” cơ sở dữ liệu để chứa những từ này, tương tự như bảng trong "bộ xử lý đầu vào"

4. Nếu AI không tìm thấy câu trả lời phù hợp trong cơ sở dữ liệu, nó có thể nói “Tôi không biết” nhưng tôi không muốn nó nói đi nói lại điều này. Những người thực sự khác nhau phản ứng của họ. Vì vậy, có một bảng với các cụm từ "Đầu ra chung" và một hàm chọn ngẫu nhiên một (và sẽ không bao giờ chọn cùng một hai lần liên tiếp.)

5. Công cụ “chuyển văn bản thành giọng nói” (TTS) miễn phí không cung cấp cho lập trình viên nhiều lựa chọn về cách nói câu, nhưng bạn có một chút kiểm soát đối với cao độ và tốc độ của âm vị. Thuật ngữ cho điều này là "Thịnh vượng". Tôi đã thêm một số mã “ưu việt” vào văn bản trong cơ sở dữ liệu của mình và khi “Bộ xử lý đầu ra” nhìn thấy những mã này, nó sẽ điều chỉnh cao độ và tốc độ trong công cụ TTS khi mỗi từ được nói.

6. Đôi khi TTS rất khó hiểu, vì vậy ngoài việc nói to các từ, tôi cũng hiển thị chúng bằng các chữ cái lớn trên màn hình máy tính của mình. Phần này của “Giao diện người dùng” là một lưới hiển thị 6 dòng cuối cùng của cuộc hội thoại, (Đầu vào của người dùng và đầu ra của AI) và cuộn lên khi các dòng mới được thêm vào..

Bước 9: Tiếp tục làm việc trên nó

Tiếp tục làm việc trên nó
Tiếp tục làm việc trên nó

Đầu vào của tôi là "Đừng nói với ai"

Tôi vẫn đang làm việc trên hệ thống AI của mình và nó có thể sẽ không bao giờ thực sự được "hoàn thành". Khi tôi thêm nhiều tính năng hơn, tôi sẽ viết nhiều bài hơn.

Có thể một số ý tưởng của tôi sẽ truyền cảm hứng cho bạn để xây dựng một AI tốt hơn tôi

Đề xuất: