Python统计数据集(txt)中每类标签数量

这是一个很普通简便的方法,用于数据集中标签数量的统计,数据集文件为txt文件,以8种标签类型为例,后续可自行相应扩展

labName='F:/27data/val/'#指定到要统计的文件夹下,以val文件夹为例
m=os.listdir(labName)
a=b=c=d=e=j=g=h=i=0     #每类标签统计数量初始化
for n in range(0,len(m)):
    f = codecs.open(labName+m[n], mode='r', encoding='unicode_escape')
    line = f.readline()  # 以行的形式进行读取文件
    list1 = []
    while line:
        x = line.split()
        list1.append(x)
        line = f.readline()
    f.close()

    for num in range(0,(len(list1))):

        if len(list1[num])==5:

            if list1[num][0]==str(0):       #判断txt第一列是否为标签0
                a=a+1       #判断为真,进行累加
            if list1[num][0]==str(1):
                b=b+1
            if list1[num][0] == str(2):
                c = c + 1
            if list1[num][0] == str(3):
                d = d + 1
            if list1[num][0] == str(4):
                e = e + 1
            if list1[num][0] == str(5):
                j = j + 1
            if list1[num][0] == str(6):
                g = g + 1
            if list1[num][0] == str(7):
                h = h + 1
            if list1[num][0] == str(8):
                i = i + 1
            else:
                print(" ")

print("0的数量:"+str(a), "1的数量:"+str(b), "2的数量:"+str(c), "3的数量:"+str(d), "4的数量:"+str(e), "5的数量:"+str(j), "6的数量:"+str(g), "7的数量:"+str(h), "8的数量:"+str(i))

运行结果:

0的数量:739 1的数量:1619 2的数量:1 3的数量:157 4的数量:98 5的数量:2 6的数量:8 7的数量:48 8的数量:1358

  • 5
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
朴素贝叶斯分类器是一种基于贝叶斯定理的分类法,它假设每个特征都是独立的,并且使用极大似然估计来估计每个特征的条件概率。在Python,可以使用scikit-learn库的MultinomialNB类实现朴素贝叶斯分类器。 下面是一个简单的示例代码,使用朴素贝叶斯分类器对文本数据进行分类统计: ```python from sklearn.naive_bayes import MultinomialNB from sklearn.feature_extraction.text import CountVectorizer # 训练数据 train_data = [ {'text': 'Chinese Beijing Chinese', 'label': 'China'}, {'text': 'Chinese Chinese Shanghai', 'label': 'China'}, {'text': 'Chinese Macao', 'label': 'China'}, {'text': 'Tokyo Japan Chinese', 'label': 'Japan'} ] # 测试数据 test_data = [ {'text': 'Chinese Chinese Chinese Tokyo Japan', 'label': 'China'}, {'text': 'Tokyo Tokyo Japan', 'label': 'Japan'} ] # 特征提取器,将文本转换为词频向量 vectorizer = CountVectorizer() # 训练集特征和标签 train_features = vectorizer.fit_transform([d['text'] for d in train_data]) train_labels = [d['label'] for d in train_data] # 测试集特征和标签 test_features = vectorizer.transform([d['text'] for d in test_data]) test_labels = [d['label'] for d in test_data] # 创建朴素贝叶斯分类器 clf = MultinomialNB() # 训练模型 clf.fit(train_features, train_labels) # 预测测试集标签 pred_labels = clf.predict(test_features) # 输出预测结果 for i, d in enumerate(test_data): print('文本:', d['text'], '真实标签:', d['label'], '预测标签:', pred_labels[i]) ``` 上述代码,训练数据和测试数据都是以字典形式存储,其每个文本数据都有一个标签。使用CountVectorizer特征提取器将文本转换为词频向量,然后使用MultinomialNB类创建朴素贝叶斯分类器,并使用fit方法训练模型。最后,使用predict方法对测试集进行预测,并输出预测结果。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值