如果单词在词典中,如何计算每行中单词的出现次数

2024-09-29 17:21:53 发布

您现在位置:Python中文网/ 问答频道 /正文

我试着数一数每行中积极的、消极的和中立的词的数量。我有一个包含评论行的文本文件,名为reviews.txt

我的代码:

poswords = {} #contains positive words
negwords = {} #contains negative words
with open(path + "reviews.txt", 'r') as f:
    possum = 0
    negsum = 0
    neutsum = 0
    for line in f.readlines():
        lower = line.lower()
        for word in lower.split():
            if word in poswords:
                possum += 1
            elif word in negwords:
                negsum += 1
            else:
                neutsum += 1
print(possum)
print(negsum)
print(neutsum)

输出:

1401
633
18351

如何显示每一行的计数,而不是计算整个文本文件中的正、负和中性词


Tags: intxtforlowerwordreviewswordsprint
3条回答

将每行的计数变量设置回零,然后在遍历该行后打印变量

poswords = {} #contains positive words
negwords = {} #contains negative words
with open(path + "reviews.txt", 'r') as f:
    for line in f.readlines():
        possum = 0
        negsum = 0
        neutsum = 0 
        lower = line.lower()    
        for word in lower.split():
            if word in poswords:
                possum += 1
            elif word in negwords:
                negsum += 1
            else:
                neutsum += 1
        print("\n", line)
        print(possum)
        print(negsum)
        print(neutsum)

这也可以通过re实现:

poswords = {...}
negwords = {...}
pos = '|'.join(poswords)
neg = '|'.join(negwords)

with open("reviews.txt", 'r') as f:
    matches = re.findall(f'({pos})|({neg})|(\w+)', f.read())
positive, negitive, neutral = (sum(map(bool, g)) for g in zip(*matches))

将最后3个print语句放入for循环中。就像

poswords = {} #contains positive words
negwords = {} #contains negative words
with open(path + "reviews.txt", 'r') as f:
    for line in f.readlines():
        possum = 0
        negsum = 0
        neutsum = 0
        lower = line.lower()
        for word in lower.split():
            if word in poswords:
                possum += 1
            elif word in negwords:
                negsum += 1
            else:
                neutsum += 1
        print("Line: ", line)
        print(possum)
        print(negsum)
        print(neutsum)

相关问题 更多 >

    热门问题