【发布时间】:2016-01-30 03:28:33
【问题描述】:
我有一个列表 s,它是从 Label 类中的模型字段“句子”中保存和过滤的,一个模型字段“标签”包含列表 s 中的每个项目,即句子 s 中的每个项目每个项目一个帖子。我想汇总或注释字段语句中 list 中的“标签”中的项目,其中第三个字段“标签名称”的最大出现次数。例如,字段句中的 list ; [“a”,“绿色”,“汽车”]。对于类 s 中的每个元素 s 出现;例如,“a”,计算“a”在所有带有“labelnames”中的句子和字段的帖子中的最大出现次数。我想知道是否有更好的方法来聚合它而不是循环 list 中的元素然后用“labelname”和“label”注释或聚合它们?
对于 S 中的每个元素,“a”、“green”、“car”,仅当其中一个元素在带有 S 的帖子中时(它们保存在类 Label() 中的一个 pos"a" 字段中label 和 list s in field sentence, second post "green" in field label and list s in sentence 依此类推),使用字段 labelname 中的元素聚合或注释元素,例如如果 labelname A 或 B,则使用 labelname A 的 "a"取决于标签名字段值为“A”的所有元素“a”的最大计数,其最大值高于保存在数据库中的所有标签名字段值为“B”的标签“a”。
#I've retrived id for sentence s by for label "a"
str_ = "a"
t = Label.objects.filter(label__startswith=str_).filter('label')
# get sentence that t is associated with
s = OneLabelingPCS.objects.get(pk=int(t.id)).sentence
#print
# 这给了我一个 pk=int(t.id) 的帖子,其中出现了“a”和句子。我希望所有帖子“a”、“green”、“a car”都带有句子 s和最大标签名。 # 在models.py中
class Label(models.Model):
sentence = models.CharField(max_length=200) # <-- contains list s
label = models.CharField(max_length=200) # <-- contains each item in s, one item per post
labelname = models.CharField(max_length=200)
【问题讨论】:
-
可以显示您想要完成的任务吗?你的解释不是很清楚
标签: python django django-models annotations aggregate-functions