Python 循环两个文件中的项
我有以下格式的成对术语:Python 循环两个文件中的项,python,Python,我有以下格式的成对术语: good, bad > man, woman 我需要的是PIAR中左右术语之间的迭代,如下所示: [('good', 'man'), ('good', 'woman'), ('bad', 'man'), ('bad', 'woman')] 对于每一对新的,我必须在一个按行分割的文本文件中计算它的统计数据 统计数字: 1) 第一项和第二项(“good”和“man”)在文本文件中以唯一行组合在一起时的频率 2) 第一项或第二项的频率(“good”或“man”),当
good, bad > man, woman
我需要的是PIAR中左右术语之间的迭代,如下所示:
[('good', 'man'), ('good', 'woman'), ('bad', 'man'), ('bad', 'woman')]
对于每一对新的,我必须在一个按行分割的文本文件中计算它的统计数据
统计数字:
1) 第一项和第二项(“good”和“man”)
在文本文件中以唯一行组合在一起时的频率
2) 第一项或第二项的频率(“good”或“man”)
,当一项单独出现,而另一项未出现在文本文件的一行中时
我这里的问题是产生虚假统计数据的循环
有人能帮忙做个好循环吗?谢谢您的循环计数不正确,因为您正在初始化循环之外的
a
、b
和c
变量,然后重复使用它们。只要在每个i,j
对的开始处重新初始化,您就不会遇到问题:
for i in left:
for j in right:
a = b = c = 0 # reinitialize!
for line in text_file.splitlines():
if i in line and j in line:
a += 1
elif i in line and j not in line:
b+= 1
elif j in line and i not in line:
c+= 1
bigram.append((i,j,a, b, c))
bigram=[]必须在每个i,j开始时重新初始化?也许,我不知道您希望如何聚合数据。如果您想要整个数据集的一个统计列表,将其保留在顶部循环之外就可以了。如果希望对
pairs\u文件的每一行进行单独的统计,则需要将其上移到i
循环的正上方。如果你想对text\u文件中的每一行进行单独的bigram计数
,那么你应该把bigram
初始化放在我添加的a=b=c=0
行旁边,尽管这种情况没有多大意义,因为bigram
只会得到一个值。这是你第四次在两行上得到同样的值。