Mục lục:

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

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

Video: Làm thế nào để thực hiện một A.I. Phần 4: 3 bước
Video: Toán lớp 4| Chia cho số có 2 chữ số| Mẹo tính nhanh| Cô Hảo| HAY NHẤT 2024, Tháng mười một
Anonim
Làm thế nào để thực hiện một A. I. Phần 4
Làm thế nào để thực hiện một A. I. Phần 4

Một ngày khác, tôi đã nói chuyện với A. I. của mình, và tôi đã nói

nó, "Tôi đang lên tầng trên để ăn tối, chúng tôi đang có STEAK".

Tuy nhiên, phần mềm Nhận dạng giọng nói (SR) giải thích điều này là “… chúng tôi đang gặp sự cố”

Tôi đã gặp phải một vấn đề tương tự (nhưng khác) trước đó khi tôi nói về một bức ảnh và tôi đã nói từ “PICTURE”. Phần mềm SR đã hiểu điều này là "PITCHER"

Cách khắc phục sự cố này là một phần mềm SR đơn giản được đào tạo lại. (Hoặc có thể là cách phát âm của tôi)

Nhưng khi tôi nói các từ STEAK hoặc STAKE, tôi phát âm chúng giống hệt nhau, và việc đào tạo lại phần mềm SR sẽ không giúp ích được gì trong những trường hợp như thế này.

Bước 1:

Một ý tưởng để giải quyết "Vấn đề từ đồng âm".

Tôi phải nhìn từ “trong ngữ cảnh” để xác định cách viết nào để sử dụng. Bộ não con người thực hiện điều này khá dễ dàng và bạn thậm chí không biết rằng mình đang làm điều đó.

Điều này có nghĩa là các từ khác trong một câu sẽ được kiểm tra và bộ não của bạn quyết định cách viết nào đẹp nhất. Bây giờ, làm cách nào để làm điều này trong mã?

A. I của tôi chương trình phân tích cú pháp một câu thành một mảng các từ riêng lẻ bằng cách sử dụng chức năng “Split” của Visual Basic (VB). [MyArray = Tách (InputSentence, ““)]

Mỗi từ trong mảng có thể được kiểm tra xem nó có phải là từ đồng âm hay không bằng cách xem trong bảng cơ sở dữ liệu có chứa danh sách các từ đồng âm.

Tất nhiên, tạo một bảng khác có nghĩa là chúng ta sẽ cần phải điền vào nó với dữ liệu và chúng ta cũng sẽ cần duy trì dữ liệu trong bảng.

Một chương trình con tự học có thể được xây dựng sau đó để quét một loạt văn bản, tìm kiếm các từ trong bảng Từ đồng âm của tôi và nắm bắt các từ “ngữ cảnh” khác. Hmmmmm, có lẽ cần vài bảng…

Việc viết những “Tài liệu hướng dẫn” này giúp tôi “tìm ra” giải pháp cho một thách thức lập trình.

Bước 2:

Hình ảnh
Hình ảnh

Cấu trúc của bảng HomonymContext

Ý tưởng đầu tiên của tôi là một bảng chứa các từ, cách viết thay thế và các từ “Ngữ cảnh”. Ý tưởng là tìm kiếm một câu có chứa một từ đồng âm, cho các từ khác cung cấp "ngữ cảnh", để chương trình có thể xác định cách viết nào sẽ sử dụng. Bảng cũng chứa một cột có tên là “WordDef” để chứa định nghĩa của từ, cột này dành cho con người duy trì bảng hơn là A. I. mã số.

Để tìm kiếm từng từ, tôi có thể sử dụng mã VB và mã SQL như…

Đối với mỗi từ trong MyArray

Query = "Chọn Word từ tblHomonynContext nơi word = '" & từ & "'"

nếu truy vấn này trả về một kết quả, thì từ đó là một từ đồng âm

Kế tiếp

Đây chỉ là mã giả tại thời điểm này - tôi vẫn chưa viết mã chính xác hoặc tìm ra tất cả các chi tiết. Nhưng hãy thoải mái lấy ý tưởng của tôi và thực hiện nó bằng ngôn ngữ lập trình yêu thích của riêng bạn.

Bước 3:

Hình ảnh
Hình ảnh

Nếu câu đầu vào của bạn chứa một từ đồng âm, bây giờ bạn có thể

thực thi mã VB sẽ kiểm tra các từ khác trong câu của bạn, với các từ ngữ cảnh trong kết quả truy vấn.

Bạn cũng có thể thực hiện tất cả điều này trong một quy trình được lưu trữ SQL, có thể thực thi nhanh hơn.

Hàm VB “InStr ()” sẽ trả về một số lớn hơn 0, nếu một chuỗi được chứa trong chuỗi khác hoặc nó sẽ trả về 0, thì chuỗi này KHÔNG được chứa trong chuỗi kia.

Hướng dẫn thực sự trả về vị trí của chuỗi được chứa. Nếu bạn chỉ muốn biết liệu String1 có chứa String2 hay không, bạn có thể sử dụng mã như “If InStr (String1, String2)> 0…”

Bạn sẽ phải xây dựng mã này bằng ngôn ngữ lập trình yêu thích của mình.

Bảng HomonymContext không phải là một thiết kế tốt. Nó có rất nhiều dữ liệu lặp lại và điều này được các nhà thiết kế cơ sở dữ liệu coi là "Không chuẩn hóa". Cách tốt hơn để triển khai chức năng này là sử dụng hai bảng, trong mối quan hệ cha-con. Một bảng (Bảng chính) sẽ chứa danh sách các từ đồng âm, định nghĩa của chúng và cả ID Hàng. ID Hàng này được sử dụng làm khóa cho "Bảng con" sẽ chứa các từ và các từ ngữ cảnh của chúng.

Điều này sẽ dễ dàng truy vấn (và duy trì) hơn so với thiết kế ban đầu của tôi.

Đề xuất: