Also, if you add the last lines of code I added it will prevent blank subjects from occurring if no nouns are used, it is just and example but it does work.
'PROCESS: FIGURE OUT THE CURRENT SUBJECT
'Here we attempt to figure out the subject of the user's sentence. We call
'the WordNet class to find the first occurence of a noun in the User's
'sentence. Very often this is the subject of the sentence, but if not it
'will still most likely be relevant to the conversation.
CurrentSubject = WN.FindFirstNoun(UserSentence, True)
CurrentSubject2 = WN.FindFirstNoun(UserSentence, False)
CurrentSubject = Trim(Ucase(CurrentSubject))
CurrentSubject2 = Trim(Ucase(CurrentSubject2))
If CurrentSubject <> CurrentSubject2 And CurrentSubject <> "" Then Subject2Block = False Else Subject2Block = True
If WN.LookupWord(CurrentSubject) = True Then
LookUpSubject = WN.GetDefinition(WN.GuessPartOfSpeech, 1, "D") & " " & WN.GetDefinition(WN.GuessPartOfSpeech, 1, "S") & " " & WN.GetDefinition(WN.GuessPartOfSpeech, 1, "E") & " " & vbCrLf
If LookUpSubject <> "" Then CurrentSubject = CurrentSubject & " " & Trim(Ucase(LookUpSubject))
CurrentSubject = HalBrain.AlphaNumericalOnly(CurrentSubject)
CurrentSubject = Replace(CurrentSubject, "'", "", 1, - 1, vbTextCompare)
CurrentSubject = HalBrain.ExtractKeywords(CurrentSubject)
CurrentSubject = Replace(CurrentSubject, " ", " ", 1, - 1, vbTextCompare)
CurrentSubject = Replace(CurrentSubject, " ", ", ", 1, - 1, vbTextCompare)
LookUpSubject3 = WN.GetSynonyms(WN.GuessPartOfSpeech, 1) & vbCrLf
If LookUpSubject3 <> "" Then CurrentSubject = CurrentSubject & " " & Trim(Ucase(LookUpSubject3))
CurrentSubject = HalBrain.AlphaNumericalOnly(CurrentSubject)
CurrentSubject = Replace(CurrentSubject, "'", "", 1, - 1, vbTextCompare)
CurrentSubject = HalBrain.ExtractKeywords(CurrentSubject)
CurrentSubject = Replace(CurrentSubject, " ", " ", 1, - 1, vbTextCompare)
CurrentSubject = Replace(CurrentSubject, " ", ", ", 1, - 1, vbTextCompare)
LookUpSubject4 = WN.GetHypernyms(WN.GuessPartOfSpeech, 1, 2) & vbCrLf
If LookUpSubject4 <> "" Then CurrentSubject = CurrentSubject & " " & Trim(Ucase(LookUpSubject4))
CurrentSubject = HalBrain.AlphaNumericalOnly(CurrentSubject)
CurrentSubject = Replace(CurrentSubject, "'", "", 1, - 1, vbTextCompare)
CurrentSubject = HalBrain.ExtractKeywords(CurrentSubject)
CurrentSubject = Replace(CurrentSubject, " ", " ", 1, - 1, vbTextCompare)
CurrentSubject = Replace(CurrentSubject, " ", ", ", 1, - 1, vbTextCompare)
LookUpSubject5 = WN.GetHolonyms(1, 2) & vbCrLf
If LookUpSubject5 <> "" Then CurrentSubject = CurrentSubject & " " & Trim(Ucase(LookUpSubject5))
CurrentSubject = HalBrain.AlphaNumericalOnly(CurrentSubject)
CurrentSubject = Replace(CurrentSubject, "'", "", 1, - 1, vbTextCompare)
CurrentSubject = HalBrain.ExtractKeywords(CurrentSubject)
CurrentSubject = Replace(CurrentSubject, " ", " ", 1, - 1, vbTextCompare)
CurrentSubject = Replace(CurrentSubject, " ", ", ", 1, - 1, vbTextCompare)
LookUpSubject6 = WN.GetMeronyms(1) & vbCrLf
If LookUpSubject6 <> "" Then CurrentSubject = CurrentSubject & " " & Trim(Ucase(LookUpSubject6))
CurrentSubject = HalBrain.AlphaNumericalOnly(CurrentSubject)
CurrentSubject = Replace(CurrentSubject, "'", "", 1, - 1, vbTextCompare)
CurrentSubject = HalBrain.ExtractKeywords(CurrentSubject)
CurrentSubject = Replace(CurrentSubject, " ", " ", 1, - 1, vbTextCompare)
CurrentSubject = Replace(CurrentSubject, " ", ", ", 1, - 1, vbTextCompare)
SubjectList = Array(CurrentSubject)
For Each SubSubject In SubjectList
CurrentSubject = SubSubject
Next
End If
If WN.LookupWord(CurrentSubject2) = True And Subject2Block = False Then
LookUpSubject2 = WN.GetDefinition(WN.GuessPartOfSpeech, 1, "D") & " " & WN.GetDefinition(WN.GuessPartOfSpeech, 1, "S") & " " & WN.GetDefinition(WN.GuessPartOfSpeech, 1, "E") & " " & vbCrLf
If LookUpSubject2 <> "" Then CurrentSubject2 = CurrentSubject2 & " " & Trim(Ucase(LookUpSubject2))
CurrentSubject2 = HalBrain.AlphaNumericalOnly(CurrentSubject2)
CurrentSubject2 = Replace(CurrentSubject2, "'", "", 1, - 1, vbTextCompare)
CurrentSubject2 = HalBrain.ExtractKeywords(CurrentSubject2)
CurrentSubject2 = Replace(CurrentSubject2, " ", " ", 1, - 1, vbTextCompare)
CurrentSubject2 = Replace(CurrentSubject2, " ", ", ", 1, - 1, vbTextCompare)
LookUpSubject23 = WN.GetSynonyms(WN.GuessPartOfSpeech, 1) & vbCrLf
If LookUpSubject23 <> "" Then CurrentSubject2 = CurrentSubject2 & " " & Trim(Ucase(LookUpSubject23))
CurrentSubject2 = HalBrain.AlphaNumericalOnly(CurrentSubject2)
CurrentSubject2 = Replace(CurrentSubject2, "'", "", 1, - 1, vbTextCompare)
CurrentSubject2 = HalBrain.ExtractKeywords(CurrentSubject2)
CurrentSubject2 = Replace(CurrentSubject2, " ", " ", 1, - 1, vbTextCompare)
CurrentSubject2 = Replace(CurrentSubject2, " ", ", ", 1, - 1, vbTextCompare)
LookUpSubject24 = WN.GetHypernyms(WN.GuessPartOfSpeech, 1, 2) & vbCrLf
If LookUpSubject24 <> "" Then CurrentSubject2 = CurrentSubject2 & " " & Trim(Ucase(LookUpSubject24))
CurrentSubject2 = HalBrain.AlphaNumericalOnly(CurrentSubject2)
CurrentSubject2 = Replace(CurrentSubject2, "'", "", 1, - 1, vbTextCompare)
CurrentSubject2 = HalBrain.ExtractKeywords(CurrentSubject2)
CurrentSubject2 = Replace(CurrentSubject2, " ", " ", 1, - 1, vbTextCompare)
CurrentSubject2 = Replace(CurrentSubject2, " ", ", ", 1, - 1, vbTextCompare)
LookUpSubject25 = WN.GetHolonyms(1, 2) & vbCrLf
If LookUpSubject25 <> "" Then CurrentSubject2 = CurrentSubject2 & " " & Trim(Ucase(LookUpSubject25))
CurrentSubject2 = HalBrain.AlphaNumericalOnly(CurrentSubject2)
CurrentSubject2 = Replace(CurrentSubject2, "'", "", 1, - 1, vbTextCompare)
CurrentSubject2 = HalBrain.ExtractKeywords(CurrentSubject2)
CurrentSubject2 = Replace(CurrentSubject2, " ", " ", 1, - 1, vbTextCompare)
CurrentSubject2 = Replace(CurrentSubject2, " ", ", ", 1, - 1, vbTextCompare)
LookUpSubject26 = WN.GetMeronyms(1) & vbCrLf
If LookUpSubject26 <> "" Then CurrentSubject2 = CurrentSubject2 & " " & Trim(Ucase(LookUpSubject26))
CurrentSubject2 = HalBrain.AlphaNumericalOnly(CurrentSubject2)
CurrentSubject2 = Replace(CurrentSubject2, "'", "", 1, - 1, vbTextCompare)
CurrentSubject2 = HalBrain.ExtractKeywords(CurrentSubject2)
CurrentSubject2 = Replace(CurrentSubject2, " ", " ", 1, - 1, vbTextCompare)
CurrentSubject2 = Replace(CurrentSubject2, " ", ", ", 1, - 1, vbTextCompare)
SubjectList2 = Array(CurrentSubject & ", " & CurrentSubject2)
For Each SubSubject2 In SubjectList2
CurrentSubject = SubSubject2
Next
End If
PreventBlanks = HalBrain.ChooseSentenceFromFile("love3")
PreventBlanks = HalBrain.ExtractKeywords(PreventBlanks)
PreventBlanks = HalBrain.AlphaNumericalOnly(PreventBlanks)
PreventBlanks = Trim(Ucase(PreventBlanks))
If CurrentSubject = "" Then CurrentSubject = PreventBlanks Else CurrentSubject = CurrentSubject
Jerry[8D]