Python 机器学习对句子中的单词进行分类
Python Machine Learning Classifying Words in Sentence
我想使用人工智能和机器学习技术制作个人助理。我正在使用 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!
但我不明白我怎么才能得到用户的名字。我想我应该对句子中的单词进行分类,但我不知道。你能帮忙吗?
你需要获得专有名词。下面的代码可以做到:
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']
您可以使用 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
我想使用人工智能和机器学习技术制作个人助理。我正在使用 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!
但我不明白我怎么才能得到用户的名字。我想我应该对句子中的单词进行分类,但我不知道。你能帮忙吗?
你需要获得专有名词。下面的代码可以做到:
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']
您可以使用 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