当前位置: 首页 > news >正文

最新网站源码小红书关键词排名怎么做

最新网站源码,小红书关键词排名怎么做,东营建设信息网最新消息,品牌vi设计包括什么. # 📑前言 本文主要是SpringBoot进行自然语言处理,利用Hanlp进行文本情感分析,如果有什么需要改进的地方还请大佬指出⛺️ 🎬作者简介:大家好,我是青衿🥇 ☁️博客首页:CSDN主页放风…

. # 📑前言
本文主要是SpringBoot进行自然语言处理,利用Hanlp进行文本情感分析,如果有什么需要改进的地方还请大佬指出⛺️

🎬作者简介:大家好,我是青衿🥇
☁️博客首页:CSDN主页放风讲故事
🌄每日一句:努力一点,优秀一点

在这里插入图片描述

目录

文章目录

  • **目录**
  • 一、说明
  • 二、自然语言处理简介
  • 三、Hanlp文本分类与情感分析基本概念
    • 语料库
    • 用Map描述
    • 用文件夹描述
    • 数据集实现
    • 训练
    • 分词
    • 特征提取
    • 调参调参
    • 训练
    • 模型
    • 分类
    • 情感分析
  • 四、具体流程
    • 特征提取
    • 训练
    • 测试结果
  • 📑文章末尾


一、说明

自然语言处理已经进入大模型时代,然而从业人员必须了解整个知识体系、发展过程、知识结构,应用范围等一系列知识。本篇将报道此类概况。

二、自然语言处理简介

自然语言处理,或简称NLP,是处理和转换文本的计算机科学学科。它由几个任务组成,这些任务从标记化开始,将文本分成单独的意义单位,应用句法和语义分析来生成抽象的知识表示,然后再次将该表示转换为文本,用于翻译、问答或对话等目的。
在这里插入图片描述

三、Hanlp文本分类与情感分析基本概念

语料库

本文语料库特指文本分类语料库,对应IDataSet接口。而文本分类语料库包含两个概念:文档和类目。一个文档只属于一个类目,一个类目可能含有多个文档。

用Map描述

这种关系可以用Java的Map<String, String[]>来描述,其key代表类目,value代表该类目下的所有文档。用户可以利用自己的文本读取模块构造一个Map<String, String[]>形式的中间语料库,然后利用IDataSet#add(java.util.Map<java.lang.String,java.lang.String[]>)接口将其加入到训练语料库中。

用文件夹描述

这种树形结构也很适合用文件夹描述,即:

/*** 加载数据集** @param folderPath  分类语料的根目录.目录必须满足如下结构:<br>*                    根目录<br>*                    ├── 分类A<br>*                    │   └── 1.txt<br>*                    │   └── 2.txt<br>*                    │   └── 3.txt<br>*                    ├── 分类B<br>*                    │   └── 1.txt<br>*                    │   └── ...<br>*                    └── ...<br>*

每个分类里面都是一些文本文档。任何满足此格式的语料库都可以直接加载。

数据集实现

考虑到大规模训练的时候,文本数量达到千万级,无法全部加载到内存中,所以本系统实现了基于文件系统的FileDataSet。同时,在服务器资源许可的情况下,可以使用基于内存的MemoryDataSet,提高加载速度。两者的继承关系如下:

训练

训练指的是,利用给定训练集寻找一个能描述这种语言现象的模型的过程。开发者只需调用train接口即可,但在实现中,有许多细节。

分词

目前,本系统中的分词器接口一共有两种实现:

但文本分类是否一定需要分词?答案是否定的。 ​ 我们可以顺序选取文中相邻的两个字,作为一个“词”(术语叫bigram)。这两个字在数量很多的时候可以反映文章的主题(参考清华大学2016年的一篇论文《Zhipeng Guo, Yu Zhao, Yabin Zheng, Xiance Si, Zhiyuan Liu, Maosong Sun. THUCTC: An Efficient Chinese Text Classifier. 2016》)。这在代码中对应BigramTokenizer. ​ 当然,也可以采用传统的分词器,如HanLPTokenizer。 ​ 另外,用户也可以通过实现ITokenizer来实现自己的分词器,并通过IDataSet#setTokenizer来使其生效。

特征提取

特征提取指的是从所有词中,选取最有助于分类决策的词语。理想状态下所有词语都有助于分类决策,但现实情况是,如果将所有词语都纳入计算,则训练速度将非常慢,内存开销非常大且最终模型的体积非常大。
本系统采取的是卡方检测,通过卡方检测去掉卡方值低于一个阈值的特征,并且限定最终特征数不超过100万。

调参调参

对于贝叶斯模型,没有超参数需要调节。

训练

本系统实现的训练算法是朴素贝叶斯法,无需用户关心内部细节。另有一个子项目实现了支持向量机文本分类器,可供参考。由于依赖了第三方库,所以没有集成在本项目中。

模型

训练之后,我们就得到了一个模型,可以通过IClassifier#getModel获取到模型的引用。该接口返回一个AbstractModel对象,该对象实现了Serializable接口,可以序列化到任何地方以供部署。 ​ 反序列化后的模型可以通过如下方式加载并构造分类器: ​

NaiveBayesModel model = (NaiveBayesModel) IOUtil.readObjectFrom(MODEL_PATH);
NaiveBayesClassifier naiveBayesClassifier = new NaiveBayesClassifier(model); 

分类

通过加载模型,我们可以得到一个分类器,利用该分类器,我们就可以进行文本分类了。

IClassifier classifier = new NaiveBayesClassifier(model); 

目前分类器接口中与文本分类有关的接口有如下三种: ​

/*** 预测分类** @param text 文本* @return 所有分类对应的分值(或概率, 需要enableProbability)* @throws IllegalArgumentException 参数错误* @throws IllegalStateException    未训练模型*/
Map<String, Double> predict(String text) throws IllegalArgumentException, IllegalStateException;/*** 预测分类* @param document* @return*/
Map<String, Double> predict(Document document) throws IllegalArgumentException, IllegalStateException;/*** 预测分类* @param document* @return* @throws IllegalArgumentException* @throws IllegalStateException*/
double[] categorize(Document document) throws IllegalArgumentException, IllegalStateException;/*** 预测最可能的分类* @param document* @return* @throws IllegalArgumentException* @throws IllegalStateException*/
int label(Document document) throws IllegalArgumentException, IllegalStateException;/*** 预测最可能的分类* @param text 文本* @return 最可能的分类* @throws IllegalArgumentException* @throws IllegalStateException*/
String classify(String text) throws IllegalArgumentException, IllegalStateException;/*** 预测最可能的分类* @param document 一个结构化的文档(注意!这是一个底层数据结构,请谨慎操作)* @return 最可能的分类* @throws IllegalArgumentException* @throws IllegalStateException*/
String classify(Document document) throws IllegalArgumentException, IllegalStateException; 

classify方法直接返回最可能的类别的String形式,而predict方法返回所有类别的得分(是一个Map形式,键是类目,值是分数或概率),categorize方法返回所有类目的得分(是一个double数组,分类得分按照分类名称的字典序排列),label方法返回最可能类目的字典序。

情感分析

可以利用文本分类在情感极性语料上训练的模型做浅层情感分析。目前公开的情感分析语料库有:中文情感挖掘语料-ChnSentiCorp,语料发布者为谭松波。

接口与文本分类完全一致,请参考com.hankcs.demo.DemoSentimentAnalysis

四、具体流程

特征提取

本系统采取的是卡方检测,通过卡方检测去掉卡方值低于一个阈值的特征,并且限定最终特征数不超过100万。

在这里插入图片描述

在这里插入图片描述

训练

在这里插入图片描述

测试结果

在这里插入图片描述
HanLP Github地址:https://github.com/hankcs/HanLP

HanLP文档地址:https://hanlp.hankcs.com/docs/api/hanlp/pretrained/index.html

📑文章末尾

在这里插入图片描述

http://www.jinmujx.cn/news/79816.html

相关文章:

  • 做网站公司汉狮团队站长统计app进入网址新版小猪
  • 如何优化政府门户网站建设网站产品怎么优化
  • 东莞最新防控通知临沂百度seo
  • 免费建站网站一级大陆在线看西安百度seo推广
  • 网站建设维护什么意思seo论坛站长交流
  • 基于liferay portal的乡镇企业门户网站建设研究广东seo加盟
  • 用ps做美食网站网站怎么找
  • 会ps的如何做网站广东seo推广外包
  • 高乐雅官方网站 哪个公司做的网络营销案例有哪些
  • 国内网站公安部备案西安分类信息seo公司
  • seo优化百度自然排名seo营销推广服务公司
  • 如何替别人建网站挣钱百度推广官网电话
  • 做淘宝头像的网站如何创建网站站点
  • 装修公司10强排名嘉兴新站seo外包
  • 企业网站备案意义百度竞价推广登录
  • 公司网站建设费入哪个科目软文营销文章
  • 做网站需要几个人分工seo体系
  • 响应式布局的原理seo排名策略
  • 旅游网站设计与建设论文关键词优化精灵
  • 做网站的基本步骤百度秒收录神器
  • 做网站培训推广软文平台
  • 邯郸网站建设联系电话怎样做品牌推广
  • 公章在线制作网站网站优化排名金苹果系统
  • 中国制造网官网下载六安seo
  • 网站kv如何做web网页
  • 从网址怎么看网站的域名sem 优化价格
  • 营销型网站有哪些seo运营专员
  • 日照住房和城乡建设局网站做一个app软件大概要多少钱
  • 自己建网站需要什么软件惠州网络营销
  • java 直接做网站百度公司地址