5

Tôi đang gặp sự cố khi cố gắng hiểu cách hoạt động của đối sánh mẫu AIML. Sự khác nhau giữa _* là gì? Và làm thế nào tôi nên sử dụng chúng để có được kết quả tốt nhất?So khớp mẫu AIML - howto?

Tôi chỉ có this document nhưng thiếu một số ví dụ hay.

Trả lời

4

A * sẽ phù hợp với bất cứ điều gì trừ khi một mô hình của một từ hoặc nhiều từ được kết hợp

Một _ sẽ phù hợp với bất cứ điều gì ngay cả khi một mô hình của một từ hoặc một vài từ có thể khớp với

<pattern>BYE _</pattern> không có ý nghĩa vì <pattern>BYE *</pattern> khớp với cùng một mẫu nhưng <pattern>BYE _</pattern> sẽ làm bóng <pattern>BYE * SEE YOU</pattern> trong khi BYE * thì không.

Sử dụng _ cẩn thận, ví dụ _ sẽ khớp với bất kỳ thứ gì và bot của bạn sẽ trả lời giống nhau mỗi lần.

<pattern>_ A COUPLE OF WORDS *</pattern><pattern>_ A COUPLE OF WORDS</pattern> là cách thích hợp để sử dụng _ nếu bạn muốn nắm bắt mọi lần MỘT CUỘC SỐNG ở bên trong hoặc ở cuối câu.

0

_ và * là cả hai ký tự đại diện, sự khác biệt là nơi chúng nên được sử dụng trong kết hợp mẫu.

_ should be used before the word or phrase you're matching on 
* should be used after the word or phrase you're matching on. 

Xem: AIML spec

Để hiểu rõ hơn này có thể là giá trị xem xét ví dụ trong chương trình AIML hiện có.

Xem: Downloads, điều này một Saluations.aiml có ví dụ

+0

Vậy điều đó có nghĩa là 'HELLO _' là biểu thức không hợp lệ? Đúng? –

+0

Đây là những gì tôi đã tìm thấy trong http://www.alicebot.org/aiml/aaa/Salutations.aiml Sự khác biệt cơ bản giữa hai mẫu này là gì? * BYE _ BYE Btw, cảm ơn câu trả lời :) –

+0

Tôi sẽ nói, dựa trên thông số kỹ thuật rằng HELLO _ không hợp lệ. Và đó là một ví dụ nghiêm trọng về phía tôi. Tôi không nghĩ rằng * BYE sẽ được đánh giá. * BYE ở chế độ xem của tôi không hợp lệ và phải là BYE *. – Bravax