gpt4 book ai didi

python - 文本挖掘: Query search

转载 作者:行者123 更新时间:2023-12-01 01:09:02 24 4
gpt4 key购买 nike

我有一本字典:

{'Farage': [0, 5, 9, 192,233,341],
'EU': [0, 1, 5, 6, 9, 23]}

Query1: “Farage” and “EU”
Query2: “Farage” or “EU”

我需要返回包含这些查询的文档。例如,对于查询 1,答案应为 [0,5,9]。我相信答案应该是这样的,但是在 python 中:

final_list = []
while x≠Null and y≠Null
do if docID(x)=docID(y)
then ADD(final_list, docID(x))
x← next(x)
y ←next(y)
else if docID(x) < docID(y)
then x← next(x)
else y ←next(y)
return final_list

请帮忙。

最佳答案

您可以创建一个运算符的dict并抛出set操作来获得最终结果。它假设查询遵循 key1 运算符 key2 运算符 key3

的严格规则

对于任意数量的参数

import operator
d1={'Farage': [0, 5, 9, 192,233,341],
'EU': [0, 1, 5, 6, 9, 23],
'hopeless': [0, 341, 19999]}

d={'and':operator.and_,
'or':operator.or_}

Queries= ['Farage and EU','Farage and EU or hopeless','Farage or EU']

for query in Queries:
res=set()
temp_arr = query.split()
k1 = temp_arr[0]

for value in range(1,len(temp_arr),2):
op = temp_arr[value]
k2 = temp_arr[value+1]
if res:
res = d[op](res, set(d1.get(k2, [])))
else:
res = d[op](set(d1.get(k1, [])), set(d1.get(k2, [])))
print(res)

输出

set([0, 9, 5])
set([0, 192, 5, 233, 9, 19999, 341])
set([0, 192, 5, 6, 1, 233, 23, 341, 9])

关于python - 文本挖掘: Query search,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55031560/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com