我已经编写了一个函数来将句子分成单词,我需要从中创建特征。我遇到以下问题 1. 当我使用列表来保存所有值时,当我检索它们时,所有功能都创建为单列,而我需要将它们中的每一个作为单列 2. 即使我得到零除法错误我正在使用 if 条件检查计数是否为零
def token_features(q1,q2):
stats = [0.0]*10
q1_tokens = q1.split()
q2_tokens = q2.split()
q1_words = set([word for word in q1_tokens if word not in STOP_WORDS])
q2_words = set([word for word in q2_tokens if word not in STOP_WORDS])
common_word_count = len(set(q1_words) & set(q2_words))
s1_stops = set([word for word in q1_tokens if word in STOP_WORDS])
s2_stops = set([word for word in q2_tokens if word in STOP_WORDS])
stop_word_count = len(s1_stops & s2_stops)
common_token_count = len(set(q1_tokens) & set(q2_tokens))
if (common_word_count==0 or stop_word_count==0 or common_token_count==0):
pass
stats[0] = common_word_count/min(len(q1_words),len(q2_words))
stats[1] = common_word_count/max(len(q1_words),len(q2_words))
stats[2] = stop_word_count/min(len(s1_stops),len(s2_stops))
stats[3] = stop_word_count/max(len(s1_stops),len(s2_stops))
stats[4] = common_token_count/min(len(q1_tokens),len(q2_tokens))
stats[5] = common_token_count/max(len(q1_tokens),len(q2_tokens))
stats[6] = int(q1_tokens[-1] == q2_tokens[-1])
stats[7] = int(q1_tokens[0] == q2_tokens[0])
stats[8] = abs(len(q1_tokens) - len(q2_tokens))
stats[9] = (len(q1_tokens) + len(q2_tokens))/2
return stats
我需要的是 1. 如何在函数内部创建一个数据框并将其添加到另一个数据框。即,我有一个名为 out 的 Dataframe,其中包含 a、b 列。现在我需要在函数内创建一个数据框并将数据框的这些列添加到“out”数据框。