You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
ML-For-Beginners/6-NLP/2-Tasks/solution/bot.py

45 lines
1.8 KiB

import random
from textblob import TextBlob
from textblob.np_extractors import ConllExtractor
extractor = ConllExtractor()
def main():
print("Hello, I am Marvin, the friendly robot.")
print("You can end this conversation at any time by typing 'bye'")
print("After typing each answer, press 'enter'")
print("How are you today?")
while True:
# wait for the user to enter some text
user_input = input("> ")
if user_input.lower() == "bye":
# if they typed in 'bye' (or even BYE, ByE, byE etc.), break out of the loop
break
else:
# Create a TextBlob based on the user input. Then extract the noun phrases
user_input_blob = TextBlob(user_input, np_extractor=extractor)
np = user_input_blob.noun_phrases
response = ""
if user_input_blob.polarity <= -0.5:
response = "Oh dear, that sounds bad. "
elif user_input_blob.polarity <= 0:
response = "Hmm, that's not great. "
elif user_input_blob.polarity <= 0.5:
response = "Well, that sounds positive. "
elif user_input_blob.polarity <= 1:
response = "Wow, that sounds great. "
if len(np) != 0:
# There was at least one noun phrase detected, so ask about that and pluralise it
# e.g. cat -> cats or mouse -> mice
response = response + "Can you tell me more about " + np[0].pluralize() + "?"
else:
response = response + "Can you tell me more?"
print(response)
print("It was nice talking to you, goodbye!")
# Start the program
main()