使用Scala实现worldcount功能

本文介绍使用Scala通过两种不同方法实现词频统计的过程。首先创建包含字符串数据的列表,然后利用flatMap、map、groupBy等函数将单词进行拆分并计数。第一种方法通过将中间结果转换为列表并排序来展示各单词及其出现次数;第二种方法则采用mapValues结合foldLeft进行累加求和。

新建ScalaWorldCount对象:

package com.ruozedata.day4


object ScalaWorldCount {


  def main(args: Array[String]): Unit = {


    val lines = List("hello ruoze hello jepson","hello ruoze hello jepson hello china")


    /**第一种方法

      * flatMap=map+flatten  lines.flatMap 将数据压扁

      *  flatMap(_.split(" "))   拿到每一个元素(字符串),按照空格切割

      *  map((_,1))  将单词出现一次和1放在一起(放入元组)

      *  groupBy(_._1) 第一个_ 表示List中的每一个元组,取元组中的某一个元素用._n,即按照元组中的某一元素分组,返回是一个map

      *  map(t=>(t._1,t._2.size)) 第一个_ 拿到一个对偶元组,取元组中的第一个元组。_._2.size即是取对偶元组第二个的个数。

      *

      */

    val wc = lines.flatMap(_.split(" ")).map((_,1)).groupBy(_._1).map(t=>(t._1,t._2.size)).toList // .sortBy(_._2).reverse

    for(j <-  0 until wc.length) println(wc(j)+"\t")



    /** 第二种方法

      * foldLeft(0)(_+_._2)第一个_表示初始值或者上一次累加的结果 中第二个_ ,表示拿到的每一个元组,第三个元组的中第n个值

      */

    val wc = lines.flatMap(_.split(" ")).map((_,1)).groupBy(_._1).mapValues(_.foldLeft(0)(_+_._2))

    for(i <- wc) println(i+"\t")


  }


}


运行结果:

(china,1)

(ruoze,2)

(jepson,2)

(hello,5)


Process finished with exit code 0


来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/29609890/viewspace-2168575/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/29609890/viewspace-2168575/

在草莓自动化采摘与生长监测中,成熟度视觉识别面临以下典型难题:● 红色果实与背景区分困难:草莓成熟时呈红色,而其叶片、未熟果常为绿色或浅黄,但在自然光照下,红色果实与深绿色背景的边界并不总是清晰,尤其当果实处于阴影或被叶片部分遮挡时,传统颜色阈值方法极易失效。● 成熟度过渡模糊:草莓从“半熟”(semi-ripe)到“完熟”(fully-ripe)的颜色变化是一个连续过程,不同品种、不同光照下同一成熟度的外观差异甚至可能大于不同成熟度之间的差异,导致人工标注一致性差。● 小目标与密集场景:草莓常成簇生长,果实之间相互贴合,且部分果实体积较小,通用目标检测模型容易出现漏检或边界框粘连。● 公开数据集规模小且类别粗:现有草莓数据集多采用“成熟/未成熟”二分类,或仅有数百张图片。三级别(未熟-半熟-完熟)的细粒度数据集极其匮乏,难以支撑实际农业中“最佳采摘窗口”的精准判断。本数据集共包含 530 张 高分辨率草莓田间图像,专门针对上述痛点设计,能够有效解决以下问题:● 三级成熟度精细化检测:提供明确的 unripe(未熟)、semi-ripe(半熟)、fully-ripe(完熟) 三类标注,可直接用于训练目标检测模型(如YOLO26、RT-DETR、Faster R-CNN),实现从“能否采摘”到“何时采摘”的定量判断。● 复杂场景下的鲁棒性学习:图像中涵盖了叶片遮挡、果实重叠、不同角度场景,有助于提升模型在实际机器人部署环境中的抗干扰能力。● 半熟状态的精确建模:半熟阶段是商业采摘中最具决策价值的节点——过早采摘糖分不足,过晚采摘不耐储运。● 小样本迁移学习基线:530张图片规模适中,既可用于从头训练轻量级检测器,也可作为大模型微调(fine-tune)的高质量领域数据集,特别适合资源有限的高校实验室或农业创业团队快速启动。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值