【发布时间】:2021-06-11 03:55:05
【问题描述】:
我对编程比较陌生,在完成大学作业时,我遇到了 fuzzywuzzy 包中的 process.extract() 函数的问题。
documentation 表示该函数应该返回一个列表,但是,我的代码返回一个类类型为 None 的对象。
如果我打印process.extract(limit=1),它会返回一个列表:
[("Matching string","Fuzz Ratio", "Index")]
但是我不能使用[] 对该对象进行切片,因为它被归类为None。
我需要能够获取匹配字符串的索引,因此我需要找出为什么 process.extract() 没有返回列表或者如何从 None 对象中取出最后一个元素。
谢谢,如果需要任何澄清,请告诉我。
编辑:好的,我的坏人,我会尝试更具体。
最少的可重复样本:
注意:CSV 文件只是两列问题和答案,它来自我的大学,所以我不确定是否允许我上传确切的文件,对此感到抱歉。
好吧,太奇怪了,重新创建示例修复了它,但我仍然不知道发生了什么。
第一个例子取自我的原始代码:
import pandas as pd
from fuzzywuzzy import fuzz
from fuzzywuzzy import process
df_chat_bot = pd.read_csv("ChatBot-short.csv")
str_user_question = input("Question: ")
test_var = print(process.extract(str_user_question, df_chat_bot["Question"], limit = 1))
print(type(test_var))
print(type(test_var)) 行的输出是(直接从终端)“
然后,当我去制作可重现的代码时:
from fuzzywuzzy import process
from fuzzywuzzy import fuzz
import pandas as pd
test_user_question = "vsc"
df_chat_bot = pd.read_csv("ChatBot-short.csv")
temp_var = process.extract(test_user_question,df_chat_bot["Question"], limit = 1)
print(temp_var)
print(type(temp_var))
打印此类型会导致“
那么这里发生了什么?请注意,我已将原始文件中的所有其他代码都注释掉了,因此我在此处粘贴的代码是唯一正在运行的代码。
【问题讨论】:
-
“
None的类类型”没有意义 -NoneType至少是可能的,但这样的对象不能具有除“None”之外的字符串表示形式。请显示您所说的None类型的实际代码/成绩单。 -
具体来说就是一个包含一个元素的列表,也就是3个元素的元组。
标签: python fuzzywuzzy