一串文本被标记,我想将输出x保存到列表中。这样我就可以用字典键来简化列表了 。但是我无法将输出保存到list中。 我尝试了很多事情,可以将预定义列表与字典进行比较,但是我想将令牌字符串的输出保存到list中。我的代码是:
from nltk.tokenize import sent_tokenize,word_tokenize
string=input("enter your text: ? ") # I am megan , hello word
x= (word_tokenize(string))
print(x) # now this can be used to compare with dictioonary
x=[]
champ_ids=x
champ_dict = {"hello" : 0, "Carly" : 36, "Freddy" : 85, "Megan" : 14, "Dilbert" : 69}
for k, v in champ_dict.items():
if v in champ_ids:
print(k) # output hello, megan
答案 0 :(得分:0)
我不太了解您的用例,我试图根据您的输入和输出来解决它。
from nltk.tokenize import sent_tokenize,word_tokenize
string=input("enter your text: ? ")
champ_ids = (word_tokenize(string))
champ_dict = {"hello" : 0, "Carly" : 36, "Freddy" : 85, "Megan" : 14,
"Dilbert" : 69}
result = ""
value = 0
for k,v in champ_dict.items():
if k in champ_ids:
result += k+" "
value += v
if value in range(20,30):
status = "high"
elif value in range(10,20):
status = "moderate"
elif value in range(0,10):
status = "low"
print("result = ", result)
print("value = ", value)
print("status = ", status)
输出:
result = hello Megan
value = 14
status = moderate
答案 1 :(得分:0)
我认为您对所使用的概念(例如列表,字典等)还不够熟悉。
变量x用champ_ids替换,因此我们可以直接使用champ_ids = word_tokenize(string)
。不要在每个地方都加上括号,因为它在python中有特殊的含义(元组,生成器...)。
在此行之后,champ_ids
是一个包含单词的列表。
现在,如果要打印champ_dict
中出现的champ_ids
中的单词,则必须与字典的键而不是值进行比较:
for k, _ in champ_dict.items():
if k in champ_ids:
print(k)
OR
for k in champ_dict.keys():
if k in champ_ids:
print(k)