我想用人工智能和机器学习技术做一个私人助理。我正在使用Python 3.7,但有一个问题。
启动软件时,首先会询问用户名称。我希望它获得用户名。
in = input('Hey, what is your name?')
#some classifier things
#...
print = input('Nice to meet you ' + in + '!')
但是,如果用户输入句子,我想正确地知道名称。 这是一个示例:
Hey, what is your name?
John
Nice to meet you John!
但是,即使有人这样输入,我也想获得姓名:
Hey, what is your name?
It's John.
Nice to meet you John!
但是我不明白如何获取用户名。我想我应该对句子中的单词进行分类,但我不知道。你能帮忙吗?
答案 0 :(得分:0)
您需要获取专有名词。下面的代码可以做到这一点:
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']
答案 1 :(得分:0)
您可以使用Spacy name entity recognition工具箱。它识别各种实体,包括人,国家,组织和...
以下代码是如何使用它的有效示例:
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])
输出:
[('John', 'PERSON'), ('Google', 'ORG')]
注意:运行上述脚本之前,您可能还需要下载Spacy模型:
pip install spacy
python -m spacy download en