gpt4 book ai didi

python - 按类别对计数进行分组

转载 作者:太空宇宙 更新时间:2023-11-03 18:51:22 25 4
gpt4 key购买 nike

我编写了一个脚本,用于检查数据、使用正则表达式检查表情符号,并在找到表情符号时更新计数器。然后,应将每个类别的计数写入一个列表,例如 cat ne 有 25 个表情符号,类别 fr 有 45 个……这就是出错的地方。我得到的结果是:

[1, 'ag', 2, 'dg', 3, 'dg', 4, 'fr', 5, 'fr', 6, 'fr', 7, 'fr', 8, 'hp', 9, 'hp', 10, 'hp', 11, 'hp', 12, 'hp', 13, 'hp', 14, 'hp', 15, 'hp', 16, 'hp', 17, 'hp', 18, 'hp', 19, 'hp', 20, 'hp', 21, 'hp', 22, 'hp', 23, 'hp', 24, 'hp', 25, 'ne', 26, 'ne', 27, 'ne', 28, 'ne', 29, 'ne', 30, 'ne', 31, 'ne', 32, 'ne', 33, 'ne', 34, 'ne', 35, 'ne', 36, 'ne', 37, 'ne', 38]

fileid是这样的形式,一个大文件包含7个小文件(每个文件是一个类别)。在类别文件中,每个类别大约有 100 个文件:

data/ne/567.txt

每个 .txt 文件中的数据只是一句话,如下所示

I am so happy today :)

这是我的脚本:

counter = 0
lijst = []
for fileid in corpus.fileids():
for sentence in corpus.sents(fileid):
cat = str(fileid.split('/')[0])
s = " ".join(sentence)
m = re.search('(:\)|:\(|:\s|:\D|:\o|:\@)+', s)
if m is not None:
counter +=1
lijst += [counter] + [cat]

最佳答案

你应该这样做:

import collections

counts = collections.defaultdict(lambda: 0)
for fileid in corpus.fileids():
for sentence in corpus.sents(fileid):
cat = str(fileid.split('/')[0])
s = " ".join(sentence)
counts[cat] += len(re.findall('(:\)|:\(|:\s|:\D|:\o|:\@)+', s))

关于python - 按类别对计数进行分组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18287821/

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