Теперь я предполагаю, что nlp()
возвращает список слов, таких как строки, и что вы просто смотрите, есть ли в переданной фразе слово, для которого ваш внутренний скрипт имеет другое значение/значение. Поправьте меня, если это не так.
С предыдущими предположениями вы можете сделать следующее:
dictionary = {"nice":"0.5012", "awesome":"0.5766", "thankfull":"0.5891"}
def PNV(saysomething):
for token in nlp(saysomething):
if token in dictionary:
#because token is the key I removed the dupplication in print
print("The word", token, "for me has the following value" + dictionary[token])
text = input("Write some interessting facts: ")
PNV(text)
Однако, если вы хотите сказать, что некоторые слова/токены для вашей программы имеют некоторые эквиваленты, которые являются ключами в словаре, простого условного оператора недостаточно. Простой подход в этом конкретном случае будет состоять в том, чтобы использовать другой словарь с эквивалентами/синонимами и сначала проверить этот, чтобы получить синонимы и использовать их для печати следующим образом.
dictionary = {"nice":"0.5012", "awesome":"0.5766", "thankfull":"0.5891"}
def getSynonyms(word):
"""Takes a word and returns some synonyms that the program knows"""
knowledge = {"fantastic":["awesome","wonderful"],
"good": ["nice","normal"]}
if word in knowledge: #the word is present
return knowledge[word]
else:
return None
def PNV(saysomething):
for token in saysomething.split(" "): #using split to simulate npl()
synonyms = getSynonyms(token)
words = [token]
if synonyms:
words.extend(synonyms) #words and its synonyms
for word in words:
if word in dictionary:
print("The word", token, "is same as " + word + " with the value " + dictionary[word])
PNV("Hi good day")
Очевидно, что у этого простого подхода есть некоторые недостатки, но для простого использования он подойдет.
person
Iulian
schedule
26.12.2018