cvpr顶会热词统计

实体类

复制代码
@Data
@NoArgsConstructor
@AllArgsConstructor
public class Keywords {

    private Integer id;
    private String keyword;

}
复制代码

 

所需要的vo类

@Data
@AllArgsConstructor
@NoArgsConstructor
public class KeywordsVo {

    private String keyword;
    private Integer number;
}
复制代码
@Data
@AllArgsConstructor
@NoArgsConstructor
public class KeywordsVo2 {

    private Integer code;
    private String msg;
    private Integer count;
    private List<KeywordsVo> data;
}
复制代码

 

mapper层

复制代码
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
        PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
        "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.gazikel.cvpr.mapper.KeywordsMapper">
    <insert id="insertKeyword">
        insert into keywords(keyword) values (#{keyword})
    </insert>

    <select id="getKeywordsTop" parameterType="integer" resultType="com.gazikel.cvpr.vo.KeywordsVo">
        SELECT keyword, count(keyword) as number FROM keywords GROUP BY keyword ORDER BY count(keyword) DESC limit #{top}
    </select>
</mapper>
复制代码

 

service层

复制代码
package com.gazikel.cvpr.service;

import com.gazikel.cvpr.vo.KeywordsVo;


import java.util.List;

public interface KeywordsService {
    // 根据论文name 读取关键词
    public void getKeyWords(String name);

    // 选出前几名的热词
    public List<KeywordsVo> getKeywordsTop(Integer top);
}
复制代码

 

serviceImpl

复制代码
package com.gazikel.cvpr.service.impl;

import com.gazikel.cvpr.mapper.KeywordsMapper;
import com.gazikel.cvpr.pojo.Keywords;
import com.gazikel.cvpr.service.KeywordsService;
import com.gazikel.cvpr.vo.KeywordsVo;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.List;

@Service
public class KeywordsServiceImpl implements KeywordsService {

    @Autowired
    private KeywordsMapper keywordsMapper;

    @Override
    public void getKeyWords(String name) {
        String[] split = name.split("\\s");
        for (int i=0; i < split.length; i++) {
            int flag = keywordsMapper.insertKeyword(split[i]);
        }
    }

    @Override
    public List<KeywordsVo> getKeywordsTop(Integer top) {
        return keywordsMapper.getKeywordsTop(top);
    }
}
复制代码

 

controller层

复制代码
package com.gazikel.cvpr.controller;

import com.gazikel.cvpr.pojo.Keywords;
import com.gazikel.cvpr.service.KeywordsService;
import com.gazikel.cvpr.vo.KeywordsVo;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;

import java.util.HashMap;
import java.util.List;
import java.util.Map;

@Controller
public class KeywordsController {
    @Autowired
    KeywordsService keywordsService;

    @RequestMapping("/getKeywords")
    @ResponseBody
    public Map<String, Integer> getKeywords(@RequestParam("number") Integer number) {
        Map<String, Integer> map = new HashMap<>();

        List<KeywordsVo> keywordsTop = keywordsService.getKeywordsTop(number);
        for (KeywordsVo keyword : keywordsTop) {
            // System.out.println(keyword);
            map.put(keyword.getKeyword(), keyword.getNumber());
        }

        return map;

    }
}
复制代码

 

posted @   Gazikel  阅读(78)  评论(0编辑  收藏  举报
编辑推荐:
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
点击右上角即可分享
微信分享提示