UPDATED JAN 15 3:25AM 2006
I am pretty sure I worked everything out with exception to adding more
slang to proper, The Letter S as in plural like Whales was the hardest to whoop but it got whooped.
all plural words are now separated to Singlar with a tagged S.
This function is from my custom bot David.
Place Ultra Search Just below:
Function GetResponse(ByVal UserSentence, ByVal UserName, ByVal ComputerName, ByVal LearningLevel, ByRef HalCommands, ByRef Hate, ByRef Swear, ByRef Insults, ByRef Compliment, ByVal PrevSent, ByRef LastResponseTime, ByRef PrevUserSent, ByRef CustomMem, ByRef GainControl, ByRef LastTopicList)
Place my code:
'ULTRA SEARCH WITH PUNCTUATION.
Dim UltraSearch
UltraSearch = SuperSearch(UserSentence)
'ULTRA SEARCH WITHOUT PUNCTUATION.
Dim Ultra_Search
Ultra_Search = MegaSearch(UserSentence)
And at the very very end of your brain on the last line place the script Function:
'FUNCTION ULTRA SEARCH.
Public Function SuperSearch(UserSentence)
'PROCESS: TAG USERSENTENCE FOR ACCURATE SEARCH.
'This will add tags to the beggining and end and middle of the user sentence to make
'sure that whole words can be found at the beginning and end of any sentence
'REMOVE EXTRA SPACES
Do While InStr(1, UserSentence, " ")
UserSentence = Replace(UserSentence, " ", " ")
Loop
'TAG OUR SEARCH METHOD.
UserSentence = Trim(Ucase(UserSentence))
UserSentence = "[" & UserSentence & "]"
UserSentence = Replace(UserSentence, " ", "][", 1, -1, vbTextCompare)
UserSentence = Replace(UserSentence, "[ITS]", "[IT]['S]", 1, -1, vbTextCompare)
UserSentence = Replace(UserSentence, "[KOOL]", "[COOL]", 1, -1, vbTextCompare)
UserSentence = Replace(UserSentence, "[CUZ]", "[BECAUSE]", 1, -1, vbTextCompare)
UserSentence = Replace(UserSentence, "[BECUZ]", "[BECAUSE]", 1, -1, vbTextCompare)
UserSentence = Replace(UserSentence, "[U]", "[YOU]", 1, -1, vbTextCompare)
UserSentence = Replace(UserSentence, "[UR]", "[YOUR]", 1, -1, vbTextCompare)
UserSentence = Replace(UserSentence, "[R]", "[ARE]", 1, -1, vbTextCompare)
UserSentence = Replace(UserSentence, "[2]", "[TO]", 1, -1, vbTextCompare)
UserSentence = Replace(UserSentence, "[2U]", "[TO][YOU]", 1, -1, vbTextCompare)
UserSentence = Replace(UserSentence, "[U2]", "[YOU][TOO]", 1, -1, vbTextCompare)
UserSentence = Replace(UserSentence, "[4]", "[FOR]", 1, -1, vbTextCompare)
UserSentence = Replace(UserSentence, "[4U]", "[FOR][YOU]", 1, -1, vbTextCompare)
UserSentence = Replace(UserSentence, "[4UR]", "[FOR][YOUR]", 1, -1, vbTextCompare)
UserSentence = Replace(UserSentence, "[4EVR]", "[FOREVER]", 1, -1, vbTextCompare)
UserSentence = Replace(UserSentence, "[L8TR]", "[LATER]", 1, -1, vbTextCompare)
UserSentence = Replace(UserSentence, "[L8T]", "[LATE]", 1, -1, vbTextCompare)
UserSentence = Replace(UserSentence, "[H8T]", "[HATE]", 1, -1, vbTextCompare)
UserSentence = Replace(UserSentence, "[BRB]", "[BE][RIGHT][BACK]", 1, -1, vbTextCompare)
UserSentence = Replace(UserSentence, "[OK]", "[OKAY]", 1, -1, vbTextCompare)
UserSentence = Replace(UserSentence, "[LUV]", "[LOVE]", 1, -1, vbTextCompare)
UserSentence = Replace(UserSentence, "[THATS]", "[THAT]['S]", 1, -1, vbTextCompare)
UserSentence = Replace(UserSentence, "[THTS]", "[THAT]['S]", 1, -1, vbTextCompare)
UserSentence = Replace(UserSentence, "[WHOS]", "[WHO]['S]", 1, -1, vbTextCompare)
UserSentence = Replace(UserSentence, "[WAT]", "[WHAT]", 1, -1, vbTextCompare)
UserSentence = Replace(UserSentence, "[WUT]", "[WHAT]", 1, -1, vbTextCompare)
UserSentence = Replace(UserSentence, "[WHT]", "[WHAT]", 1, -1, vbTextCompare)
UserSentence = Replace(UserSentence, "[WATS]", "[WHAT]['S]", 1, -1, vbTextCompare)
UserSentence = Replace(UserSentence, "[WUTS]", "[WHAT]['S]", 1, -1, vbTextCompare)
UserSentence = Replace(UserSentence, "[WHTS]", "[WHAT]['S]", 1, -1, vbTextCompare)
UserSentence = Replace(UserSentence, "[WHATS]", "[WHAT]['S]", 1, -1, vbTextCompare)
UserSentence = Replace(UserSentence, "[WHENS]", "[WHEN]['S]", 1, -1, vbTextCompare)
UserSentence = Replace(UserSentence, "[WHERES]", "[WHERE]['S]", 1, -1, vbTextCompare)
UserSentence = Replace(UserSentence, "[Y]", "[WHY]", 1, -1, vbTextCompare)
UserSentence = Replace(UserSentence, "[Y'S]", "[WHY]['S]", 1, -1, vbTextCompare)
UserSentence = Replace(UserSentence, "[WHYS]", "[WHY]['S]", 1, -1, vbTextCompare)
UserSentence = Replace(UserSentence, "[HOWS]", "[HOW]['S]", 1, -1, vbTextCompare)
UserSentence = Replace(UserSentence, "[THERES]", "[THERE]['S]", 1, -1, vbTextCompare)
UserSentence = Replace(UserSentence, "~", "][~]", 1, -1, vbTextCompare)
UserSentence = Replace(UserSentence, "@", "][@]", 1, -1, vbTextCompare)
UserSentence = Replace(UserSentence, "#", "][#]", 1, -1, vbTextCompare)
UserSentence = Replace(UserSentence, "$", "][$]", 1, -1, vbTextCompare)
UserSentence = Replace(UserSentence, "%", "][%]", 1, -1, vbTextCompare)
UserSentence = Replace(UserSentence, "^", "][^]", 1, -1, vbTextCompare)
UserSentence = Replace(UserSentence, "&", "][&]", 1, -1, vbTextCompare)
UserSentence = Replace(UserSentence, "*", "][*]", 1, -1, vbTextCompare)
UserSentence = Replace(UserSentence, "(", "][(]", 1, -1, vbTextCompare)
UserSentence = Replace(UserSentence, ")", "][)]", 1, -1, vbTextCompare)
UserSentence = Replace(UserSentence, "+", "][+]", 1, -1, vbTextCompare)
UserSentence = Replace(UserSentence, "_", "][_]", 1, -1, vbTextCompare)
UserSentence = Replace(UserSentence, "=", "][=]", 1, -1, vbTextCompare)
UserSentence = Replace(UserSentence, "{", "][{]", 1, -1, vbTextCompare)
UserSentence = Replace(UserSentence, "}", "][}]", 1, -1, vbTextCompare)
UserSentence = Replace(UserSentence, "-", "][-]", 1, -1, vbTextCompare)
UserSentence = Replace(UserSentence, ";", "][;]", 1, -1, vbTextCompare)
'UserSentence = Replace(UserSentence, ":", "][:]", 1, -1, vbTextCompare) 'Critical to time functions, leave off.
UserSentence = Replace(UserSentence, ",", "][,]", 1, -1, vbTextCompare)
UserSentence = Replace(UserSentence, ".", "][.]", 1, -1, vbTextCompare)
UserSentence = Replace(UserSentence, "!", "][!]", 1, -1, vbTextCompare)
UserSentence = Replace(UserSentence, "?", "][?]", 1, -1, vbTextCompare)
UserSentence = Replace(UserSentence, "'D", "]['D]", 1, -1, vbTextCompare)
UserSentence = Replace(UserSentence, "'LL", "]['LL]", 1, -1, vbTextCompare)
UserSentence = Replace(UserSentence, "'S", "]['S]", 1, -1, vbTextCompare)
UserSentence = Replace(UserSentence, "'M", "]['M]", 1, -1, vbTextCompare)
UserSentence = Replace(UserSentence, "N'T", "][N'T]", 1, -1, vbTextCompare)
UserSentence = Replace(UserSentence, "'RE", "]['RE]", 1, -1, vbTextCompare)
UserSentence = Replace(UserSentence, "S][", "][S][", 1, -1, vbTextCompare)
UserSentence = Replace(UserSentence, "[[", "[", 1, -1, vbTextCompare)
UserSentence = Replace(UserSentence, "]]", "]", 1, -1, vbTextCompare)
UserSentence = Replace(UserSentence, "[]", "", 1, -1, vbTextCompare)
SuperSearch = ">" & UserSentence & "<"
SuperSearch = Replace(SuperSearch, "S]<", "][S]<", 1, -1, vbTextCompare)
SuperSearch = Replace(SuperSearch, "[I][S][", "[IS][", 1, -1, vbTextCompare)
SuperSearch = Replace(SuperSearch, "[I][S]<", "[IS]<", 1, -1, vbTextCompare)
SuperSearch = Replace(SuperSearch, "[A][S][", "[AS][", 1, -1, vbTextCompare)
SuperSearch = Replace(SuperSearch, "[A][S]<", "[AS]<", 1, -1, vbTextCompare)
SuperSearch = Replace(SuperSearch, "[U][S][", "[US][", 1, -1, vbTextCompare)
SuperSearch = Replace(SuperSearch, "[U][S]<", "[US]<", 1, -1, vbTextCompare)
SuperSearch = Replace(SuperSearch, "[HA][S][", "[HAS][", 1, -1, vbTextCompare)
SuperSearch = Replace(SuperSearch, "[HA][S]<", "[HAS]<", 1, -1, vbTextCompare)
SuperSearch = Replace(SuperSearch, "U][S][", "US][", 1, -1, vbTextCompare)
SuperSearch = Replace(SuperSearch, "U][S]<", "US]<", 1, -1, vbTextCompare)
SuperSearch = Replace(SuperSearch, "S][S][", "SS][", 1, -1, vbTextCompare)
SuperSearch = Replace(SuperSearch, "S][S]<", "SS]<", 1, -1, vbTextCompare)
End Function
'FUNCTION ULTRA SEARCH WITHOUT PUNTUATION.
Public Function MegaSearch(UserSentence)
'PROCESS: TAG USERSENTENCE FOR ACCURATE SEARCH.
'This will add tags to the beggining and end and middle of the user sentence to make
'sure that whole words can be found at the beginning and end of any sentence
'REMOVE EXTRA SPACES
Do While InStr(1, UserSentence, " ")
UserSentence = Replace(UserSentence, " ", " ")
Loop
'TAG OUR SEARCH METHOD.
UserSentence = HalBrain.AlphaNumericalOnly(UserSentence)
UserSentence = Trim(Ucase(UserSentence))
UserSentence = "[" & UserSentence & "]"
UserSentence = Replace(UserSentence, " ", "][", 1, -1, vbTextCompare)
UserSentence = Replace(UserSentence, "[ITS]", "[IT]['S]", 1, -1, vbTextCompare)
UserSentence = Replace(UserSentence, "[KOOL]", "[COOL]", 1, -1, vbTextCompare)
UserSentence = Replace(UserSentence, "[CUZ]", "[BECAUSE]", 1, -1, vbTextCompare)
UserSentence = Replace(UserSentence, "[BECUZ]", "[BECAUSE]", 1, -1, vbTextCompare)
UserSentence = Replace(UserSentence, "[U]", "[YOU]", 1, -1, vbTextCompare)
UserSentence = Replace(UserSentence, "[UR]", "[YOUR]", 1, -1, vbTextCompare)
UserSentence = Replace(UserSentence, "[R]", "[ARE]", 1, -1, vbTextCompare)
UserSentence = Replace(UserSentence, "[2]", "[TO]", 1, -1, vbTextCompare)
UserSentence = Replace(UserSentence, "[2U]", "[TO][YOU]", 1, -1, vbTextCompare)
UserSentence = Replace(UserSentence, "[U2]", "[YOU][TOO]", 1, -1, vbTextCompare)
UserSentence = Replace(UserSentence, "[4]", "[FOR]", 1, -1, vbTextCompare)
UserSentence = Replace(UserSentence, "[4U]", "[FOR][YOU]", 1, -1, vbTextCompare)
UserSentence = Replace(UserSentence, "[4UR]", "[FOR][YOUR]", 1, -1, vbTextCompare)
UserSentence = Replace(UserSentence, "[4EVR]", "[FOREVER]", 1, -1, vbTextCompare)
UserSentence = Replace(UserSentence, "[L8TR]", "[LATER]", 1, -1, vbTextCompare)
UserSentence = Replace(UserSentence, "[L8T]", "[LATE]", 1, -1, vbTextCompare)
UserSentence = Replace(UserSentence, "[H8T]", "[HATE]", 1, -1, vbTextCompare)
UserSentence = Replace(UserSentence, "[BRB]", "[BE][RIGHT][BACK]", 1, -1, vbTextCompare)
UserSentence = Replace(UserSentence, "[OK]", "[OKAY]", 1, -1, vbTextCompare)
UserSentence = Replace(UserSentence, "[LUV]", "[LOVE]", 1, -1, vbTextCompare)
UserSentence = Replace(UserSentence, "[THATS]", "[THAT]['S]", 1, -1, vbTextCompare)
UserSentence = Replace(UserSentence, "[THTS]", "[THAT]['S]", 1, -1, vbTextCompare)
UserSentence = Replace(UserSentence, "[WHOS]", "[WHO]['S]", 1, -1, vbTextCompare)
UserSentence = Replace(UserSentence, "[WAT]", "[WHAT]", 1, -1, vbTextCompare)
UserSentence = Replace(UserSentence, "[WUT]", "[WHAT]", 1, -1, vbTextCompare)
UserSentence = Replace(UserSentence, "[WHT]", "[WHAT]", 1, -1, vbTextCompare)
UserSentence = Replace(UserSentence, "[WATS]", "[WHAT]['S]", 1, -1, vbTextCompare)
UserSentence = Replace(UserSentence, "[WUTS]", "[WHAT]['S]", 1, -1, vbTextCompare)
UserSentence = Replace(UserSentence, "[WHTS]", "[WHAT]['S]", 1, -1, vbTextCompare)
UserSentence = Replace(UserSentence, "[WHATS]", "[WHAT]['S]", 1, -1, vbTextCompare)
UserSentence = Replace(UserSentence, "[WHENS]", "[WHEN]['S]", 1, -1, vbTextCompare)
UserSentence = Replace(UserSentence, "[WHERES]", "[WHERE]['S]", 1, -1, vbTextCompare)
UserSentence = Replace(UserSentence, "[Y]", "[WHY]", 1, -1, vbTextCompare)
UserSentence = Replace(UserSentence, "[Y'S]", "[WHY]['S]", 1, -1, vbTextCompare)
UserSentence = Replace(UserSentence, "[WHYS]", "[WHY]['S]", 1, -1, vbTextCompare)
UserSentence = Replace(UserSentence, "[HOWS]", "[HOW]['S]", 1, -1, vbTextCompare)
UserSentence = Replace(UserSentence, "[THERES]", "[THERE]['S]", 1, -1, vbTextCompare)
UserSentence = Replace(UserSentence, "'D", "]['D]", 1, -1, vbTextCompare)
UserSentence = Replace(UserSentence, "'LL", "]['LL]", 1, -1, vbTextCompare)
UserSentence = Replace(UserSentence, "'S", "]['S]", 1, -1, vbTextCompare)
UserSentence = Replace(UserSentence, "'M", "]['M]", 1, -1, vbTextCompare)
UserSentence = Replace(UserSentence, "N'T", "][N'T]", 1, -1, vbTextCompare)
UserSentence = Replace(UserSentence, "'RE", "]['RE]", 1, -1, vbTextCompare)
UserSentence = Replace(UserSentence, "S][", "][S][", 1, -1, vbTextCompare)
UserSentence = Replace(UserSentence, "[[", "[", 1, -1, vbTextCompare)
UserSentence = Replace(UserSentence, "]]", "]", 1, -1, vbTextCompare)
UserSentence = Replace(UserSentence, "[]", "", 1, -1, vbTextCompare)
MegaSearch = ">" & UserSentence & "<"
MegaSearch = Replace(MegaSearch, "S]<", "][S]<", 1, -1, vbTextCompare)
MegaSearch = Replace(MegaSearch, "[I][S][", "[IS][", 1, -1, vbTextCompare)
MegaSearch = Replace(MegaSearch, "[I][S]<", "[IS]<", 1, -1, vbTextCompare)
MegaSearch = Replace(MegaSearch, "[A][S][", "[AS][", 1, -1, vbTextCompare)
MegaSearch = Replace(MegaSearch, "[A][S]<", "[AS]<", 1, -1, vbTextCompare)
MegaSearch = Replace(MegaSearch, "[U][S][", "[US][", 1, -1, vbTextCompare)
MegaSearch = Replace(MegaSearch, "[U][S]<", "[US]<", 1, -1, vbTextCompare)
MegaSearch = Replace(MegaSearch, "[HA][S][", "[HAS][", 1, -1, vbTextCompare)
MegaSearch = Replace(MegaSearch, "[HA][S]<", "[HAS]<", 1, -1, vbTextCompare)
MegaSearch = Replace(MegaSearch, "U][S][", "US][", 1, -1, vbTextCompare)
MegaSearch = Replace(MegaSearch, "U][S]<", "US]<", 1, -1, vbTextCompare)
MegaSearch = Replace(MegaSearch, "S][S][", "SS][", 1, -1, vbTextCompare)
MegaSearch = Replace(MegaSearch, "S][S]<", "SS]<", 1, -1, vbTextCompare)
End Function
As a test script you can insert this:
ComputerName = "David" 'If needed.
'SEE IF USER IS JUST SAYING BOT'S NAME ALONE BY ITSELF.
'WE WILL USE THE DEPUNCTUATED SUPER_SEARCH INSTEAD OF SUPERSEARCH
'TO LESSON OUR CODING.
If InStr(1, Ultra_Search, ">[" & ComputerName & "]<", 1) > 0 Then PreQuestion = True
If PreQuestion = True Then
Select Case (Int(Rnd * 6) + 1)
Case 1
GetResponse = "What, Is there a question" & "? " & vbCrLf
Case 2
GetResponse = "Do you have a question" & "? " & vbCrLf
Case 3
GetResponse = "What do you need" & "? " & vbCrLf
Case 4
GetResponse = "What" & "? " & vbCrLf
Case 5
GetResponse = "Yes" & "? " & vbCrLf
Case 6
GetResponse = "Yeah" & "? " & vbCrLf
End Select
End If
You can also add debug if needed for Ultra Search.
'ULTRA SEARCH DEBUG.
HalBrain.DebugWatch UltraSearch, "Ultra Search with puctuation"
HalBrain.DebugWatch Ultra_Search, "Ultra Search without punctuation"
Note: I didn't use: UserSentence = HalBrain.HalFormat(UserSentence)
in my code because it has a slang conversion error that changes
UR to You Are when it should be Your.
U R is You Are not UR
So I worked around it.
UR = Your
U R = You Are
Also note: Zabawares site code functions changed some of the code within my script so you will have to change them back to its original function.
This Function can also search for words that
are Left, Middle, Right in a sentence explicitly.
Jerry[8D]