我有以下代码返回给定文本数组的平均标点符号。有没有一种方法可以用不同的输入保存该函数的输出?因此,对于“ train_input”作为myinput,它应该给我可调用变量train_input_punct,对于“ test_input”作为myinput,它应该创建可调用变量test_input_punct。有办法吗?
def interpunktion(myinput):
punctuation_test = []
characters_test = []
count = lambda l1, l2: len(list(filter(lambda c: c in l2, l1)))
for sentence in myinput:
characters_test.append(count(sentence, string.ascii_letters))
punctuation_test.append(count(sentence, string.punctuation))
# durchschnittliche Punktuation pro Tweet
mean_punct = [int(p) / int(c) for p,c in zip(punctuation_test, characters_test)]
punct_test_array = np.hstack(mean_punct)
punct_test_array = np.reshape(punct_test_array, myinput.shape)
return punct_test_array
答案 0 :(得分:1)
也许您可以使用某种数据结构,例如字典,以便您可以使用“ train_input”或“ test_input”作为键来标记值。
myinput = {
"train_input": "some training input",
"test_input": "some testing input"
}
result = interpunktion(myinput)
然后在您的函数中,您将只有某种条件语句来确定您使用哪种方法来处理数据。
def interpunktion(myinput):
for input_type, input_value in myinput.items():
if (input_type == "train_input"):
# do some train input stuff
elif (input_type == "test_input"):
# do some test input stuff
# ...
您不必完全使用字典,可以通过元组,列表或其他方式进行传递。但是我认为您需要在数据中传递某种标识符,以说明是测试还是训练输入。
希望有帮助! :)