我目前正在使用 TextBlob 制作一个聊天机器人,到目前为止,我一直在使用名词短语提取来提取命名实体并找到 pos 标签 NNP。当输入诸如“Will Smith 的最新单曲?”之类的测试用户问题时,我正确地检索到了“Will Smith”。但我希望不仅能够搜索“will smith”,还能够搜索“william smith”、“bill smith”、“willie smith”、“billy smith”——基本上是其他众所周知的英文名称变体。我正在使用 Spotipy API,因为我正在尝试检索 Spotify 艺术家。我目前在 PyCharm 中所做的事情:
while True:
response = input()
searchQuery = TextBlob(response)
who = []
for item, tag in searchQuery.tags:
if tag == "NNP":
for nounPhrase in searchQuery.noun_phrases:
np = TextBlob(nounPhrase)
if item.lower() in np.words:
if nounPhrase not in who:
who.append(nounPhrase)
print(who)
if who:
for name in who:
if spotifyObject.search(name, 50, 0, 'artist', None):
searchResults = spotifyObject.search(name, 50, 0, 'artist', None)
artists = searchResults['artists']['items']
for a in artists:
print(a['name'])