我有一个文本文件,每行包含几个单词。现在给定一组查询词,我必须在文件中找到查询词同时出现的行数。即包含两个查询词的行数,包含三个查询词的行数等。
我尝试使用以下代码:请注意,rest(list,word) 从“list”中删除“word”并返回更新后的列表。linecount 是原始的行数。
raw=open("raw_dataset_1","r")
queryfile=open("queries","r")
query=queryfile.readline().split()
query_size=len(query)
two=0
three=0
four=0
while linecount>0:
line=raw.readline().split()
if query_size>=2:
for word1 in query:
beta=rest(query,word1)
for word2 in beta:
if (word1 in line) and (word2 in line):
two+=1
print line
if (query_size>=3):
for word3 in query:
beta=rest(query,word3)
for word4 in beta:
gama=rest(beta,word4)
for word5 in gama:
if (((word3 in line) and (word4 in line)) and (word5 in line)):
three+=1
print line
linecount-=1
print two
print three
它有效,虽然有冗余,但我可以将“二”除以 2 以获得所需的数字)是否有更好的方法来做到这一点?