Results 1 to 2 of 2

Thread: the Eliza Chatbot Class

  1. #1

    Thread Starter
    Member NTShpikho's Avatar
    Join Date
    Oct 2023
    Posts
    33

    the Eliza Chatbot Class

    The Eliza chatbot class is a remarkable piece of engineering that has significantly contributed to the field of Natural Language Processing (NLP) and Artificial Intelligence (AI). This class, inspired by the original Eliza computer program developed at MIT, is a powerful tool for speech analysis and understanding conversational context.

    One of the standout features of the Eliza class is its ability to elegantly request more data on a subject. It can guide a conversation in a way that feels natural and intuitive, encouraging users to provide more information without feeling overwhelmed or interrogated.

    The Eliza class also excels at extracting parameters from strings. It uses regular expressions to identify and capture key pieces of information from a user’s input. This allows it to respond in a way that is specific and relevant to the user’s statements, enhancing the overall user experience.

    Understanding conversational context is another area where the Eliza class shines. It can keep track of the flow of a conversation, allowing it to provide responses that are not only relevant to the user’s most recent statement, but also consistent with previous exchanges. This ability to maintain context is crucial for creating a chatbot that users can have meaningful and coherent conversations with.

    In the world of AI, the Eliza class is a powerful tool for speech analysis. It can analyze user input to understand the intent behind it, enabling it to provide appropriate and accurate responses. This makes it an invaluable tool for developing chatbots that can interact with users in a way that feels natural and engaging.

    The potential that the Eliza class brings to the world of AI is immense. It serves as a solid foundation for developing sophisticated chatbots capable of carrying out complex tasks. From customer service to mental health support, the applications are vast and varied.

    In conclusion, the Eliza chatbot class is a testament to the power of AI and NLP. It encapsulates the principles of intelligent conversation handling, parameter extraction, and context understanding, making it a pivotal tool in the realm of AI-driven communication. The future of AI looks promising, and the Eliza class is undoubtedly playing a significant role in shaping it.

    Code:
    Imports System.Text.RegularExpressions
    
    Public Class Eliza
        Public Shared reflections As New Dictionary(Of String, String) From {
            {"am", "are"},
            {"was", "were"},
            {"i", "you"},
            {"i'd", "you would"},
            {"i've", "you have"},
            {"my", "your"},
            {"are", "am"},
            {"you've", "I have"},
            {"you'll", "I will"},
            {"your", "my"},
            {"yours", "mine"},
            {"you", "i"},
            {"me", "you"}
        }
    
        Public Shared babble As New List(Of PhraseMatcher) From {
            New PhraseMatcher("i need (.*)", New List(Of String) From {"Why do you need {0}?",
                                                                        "Would it really help you to get {0}?",
                                                                        "Are you sure you need {0}?"})
        }
    
        Public Function respond(msg As String) As String
            For Each pm In babble
                If pm.matches(msg) Then
                    Return pm.respond(msg.ToLower())
                End If
            Next
            Return ""
        End Function
    
        Public Class PhraseMatcher
            Public matcher As Regex
            Public responses As List(Of String)
            Public context As String = ""  ' last speech context (subject or pattern)
            Public param As String = ""  ' last param extracted
            Public infoRequest As String = ""  ' request more info on input
    
            Public Sub New(matcher As String, responses As List(Of String))
                Me.matcher = New Regex(matcher)
                Me.responses = responses
            End Sub
    
            Public Function matches(str As String) As Boolean
                Return Me.matcher.IsMatch(str)
            End Function
    
            Public Function respond(str As String) As String
                Dim m = Me.matcher.Match(str)
                Me.context = Me.matcher.ToString()  ' context
                Dim p = random_phrase()
                For i = 0 To m.Groups.Count - 1
                    Dim s = reflect(m.Groups(i + 1).Value)
                    Me.param = s  ' param
                    Me.infoRequest = p  ' more info request
                    p = p.Replace("{" & i & "}", s)
                Next
                Return p
            End Function
    
            Public Shared Function reflect(s As String) As String
                Dim words = s.Split(" "c)
                For i = 0 To words.Length - 1
                    If reflections.ContainsKey(words(i)) Then
                        words(i) = reflections(words(i))
                    End If
                Next
                Return String.Join(" ", words)
            End Function
    
            Public Function random_phrase() As String
                Return Me.responses(Math.Abs(New Random().Next()) Mod Me.responses.Count)
            End Function
    
            Public Overrides Function ToString() As String
                Return Me.matcher.ToString() & ":" & String.Join(", ", Me.responses)
            End Function
        End Class
    End Class
    down that coffee slug

  2. #2
    PowerPoster Arnoutdv's Avatar
    Join Date
    Oct 2013
    Posts
    5,979

    Re: the Eliza Chatbot Class

    OpenAI eat your heart out.
    Everything they created can be replaced less than 50 lines of truly remarkable code!

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •  



Click Here to Expand Forum to Full Width