skip to Main Content

I want to make an personal assistant using artificial intelligence and machine learging techniques. I am using Python 3.7 and I have an question.

When software starts, first it will ask user’s name. I want it to get user’s name.

in = input('Hey, what is your name?')
#some classifier things
#...
print = input('Nice to meet you ' + in + '!')

But I want to know name correctly if user enters an sentence.
Here is an example:

Hey, what is your name?
John
Nice to meet you John!

But I want to get name even if person enters like this:

Hey, what is your name?
It's John.
Nice to meet you John!

But I couldn’t understand how can I just get the user’s name. I think I should classify the words in sentence but I don’t know. Can you help?

2

Answers


  1. You need to get proper nouns. The below code does it:

    from nltk.tag import pos_tag
    
    sentence = " It's John"
    tagged_sent = pos_tag(sentence.split())
    
    propernouns = [word for word,pos in tagged_sent if pos == 'NNP']
    
    Login or Signup to reply.
  2. You can use Spacy name entity recognition toolkit. It recognizes various entities including Person, Country, Organization and …

    Following code is a working example of how you can use it:

    import spacy
    import en_core_web_sm
    nlp = en_core_web_sm.load()
    
    doc = nlp('Its John and he is working at Google')
    print([(X.text, X.label_) for X in doc.ents])
    

    Output:

    [('John', 'PERSON'), ('Google', 'ORG')]
    

    Note: You may also need to download the Spacy model before running the above script:

    pip install spacy
    python -m spacy download en 
    
    Login or Signup to reply.
Please signup or login to give your own answer.
Back To Top
Search