自然语言处理学习笔记(四)————词典分词
目录
1.中文分词
2.词典分词
(1)词的定义
(2)词典性质——齐夫定律
(3)词典
(4)加载词典
(5)hanlp词典路径
1.中文分词
- 中文分词:指的是将一段文本拆分为一系列单词的过程,这些单词顺序拼接后等于原文本。
- 中文分词算法大致分为基于词典规则与基于机器学习这两大派。
- 词典分词是最简单、最常见的分词算法,仅需一部词典和一套查词典的规则即可。给定一部词典,词典分词就是一个确定的查词和输出的规则系统。
2.词典分词
(1)词的定义
在基于词典的中文分词中,词的定义要现实得多:词典中的字符串就是词。根据此定义,词典之外的字符串就不是词了。这个推论或许不符合读者的期望,但这就是词典分词故有的弱点。事实上,语言中的词汇数量是无穷的,无法用任何词典完整收录。
(2)词典性质——齐夫定律
齐夫定律:一个单词的词频与它的词频排名成反比。就是说,虽然存在很多生词,但生词的词频较小,趋近于0,平时很难碰到。至少在常见的单词的切分上,可以放心地试一试词典分词。
(3)词典
互联网上有许多公开的中文词库,比如
搜狗实验室发布的互联网词库(SogouW,其中有15万个词条):https://www.sogou.com/labs/resource/w.php
清华大学开放中文词库(THUOCL):http://thunlp.org
何晗发布的千万级巨型汉语词库(千万级词条):http://www.hankcs.com/nlp/corpus/tens-of-millions-of-giant-chinese-word-library-share.html
(4)加载词典
from pyhanlp import *def load_dictionary():"""加载HanLP中的mini词库:return: 一个set形式的词库"""IOUtil = JClass('com.hankcs.hanlp.corpus.io.IOUtil') # ①path = HanLP.Config.CoreDictionaryPath.replace('.txt', '.mini.txt') # ②dic = IOUtil.loadDictionary([path]) # ③return set(dic.keySet())if __name__ == '__main__':dic = load_dictionary()print(len(dic))print(list(dic)[0])
JClass 函数是连通Java和Python 的桥梁,用来根据Java路径名得到一个Python类。
①处利用JClass取得了HanLP中的IOUti1工具类,②处则取得了HanLP的配置项Config中的词典路径。我们写在配置文件中的条目最终会被读入这个结构中,比如配置文件写作CoreDictionaryPath=data/dictionary/CoreNatureDictionary.txt,该配置将被读人HanLP.Config.CoreDictionaryPath。这里我们想要加载mini 词典,因为其体积更小,加载起来更快。于是②处将这个路径替换为mini词典的路径。在③处我们像对待普通Python 工具类一样调用了IOUti1的静态方法 loadDictionary。该方法支持将多个文件读入同一个词典中,因此需要传入一个1ist。它返回一个Java Map对象,前面提到过,我们不关心Map中的值,于是我们只取它的键keySet,并将其转换为一个Python原生的set 对象。这样接下来的代码就不必考虑与Java的交互,Python用户从此回到了自己熟悉的环境中。
(5)hanlp词典路径
路径为:HanLP/data/dictionaray/CoreNatureDictionaray.mini.txt
相关文章:
自然语言处理学习笔记(四)————词典分词
目录 1.中文分词 2.词典分词 (1)词的定义 (2)词典性质——齐夫定律 (3)词典 (4)加载词典 (5)hanlp词典路径 1.中文分词 中文分词:指的是将一…...
jsoncpp库和nlohmann-json库实现JSON与字符串类型转换
在ROS中,可以使用jsoncpp库来实现JSON与字符串类型之间的转换。jsoncpp是ROS自带的一个JSON库,它提供了一些函数来解析和生成JSON数据。 下面是一个使用jsoncpp库实现JSON与字符串类型转换的示例代码: #include <ros/ros.h> #include…...
20230803 函数传参引用
定义多输出变量的函数时,通过直接传参数内存地址在函数内部直接修改外部变量的值。需要定义函数时 在输入参数前加 引用符号 & 。 C 值传递、指针传递、引用传递详解...
IDEA SpringBoot项目引入外部jar并打包
1、首先,我们再pom.xml中导入依赖包时,打包可以正常进行。 但如果我们引入了第三方的外部jar包(这里需要先把jar包添加到该项目依赖库中,这里不做演示),如图 2、导致打包时报错,程序包不存在或…...
ModaHub魔搭社区——阿里云通义千问宣布开源!70亿参数模型上线魔搭社区,免费可商用
通义千问开源!8月3日,AI模型社区魔搭ModaHub上架两款开源模型Qwen-7B和Qwen-7B-Chat,阿里云确认其为通义千问70亿参数通用模型和对话模型,两款模型均开源、免费、可商用。在多个权威测评中,通义千问7B模型取得了远超国内外同等尺寸模型的效果,成为当下业界最强的中英文7B…...
Jenkins 自动化部署实例讲解,另附安装教程!
【2023】Jenkins入门与安装_jenkins最新版本_丶重明的博客-CSDN博客 也可以结合这个互补看 前言 你平常在做自己的项目时,是否有过部署项目太麻烦的想法?如果你是单体项目,可能没什么感触,但如果你是微服务项目,相…...
arcgis字段计算器
1、两字段叠加。要求待叠加的字段类型为文本或字符串类型。如下: 2、字符串部分提取。...
数据结构: 线性表(无哨兵位单链表实现)
文章目录 1. 线性表的链式表示: 链表1.1 顺序表的优缺点1.2 链表的概念1.3 链表的优缺点1.4 链表的结构 2. 单链表的定义2.1 单链表的结构体2.2 接口函数 3. 接口函数的实现3.1 动态申请一个结点 (BuySListNode)3.2 单链表打印 (SListPrint)3.3 单链表尾插 (SListPushBack)3.4 …...
Exploring the Underlying Architecture of CSS3
引言 在现代的网页设计中,CSS(层叠样式表)起着至关重要的作用。CSS3作为最新的CSS标准,引入了许多令人兴奋的功能和特性。但是,要真正理解CSS3的底层架构实现原理,对于前端开发者来说,是非常重…...
方差分析||判断数据是否符合正态分布
方差分析练习题 练习学习笔记: (1) 标准差和标准偏差、均方差是一个东西。标准误差和标准误是一个东西。这两个东西有区别。 (2)单因素方差分析(MATLAB求解) (3)使用an…...
java linq多字段排序时间比较
public static void main(String[] args) {//100万条数据List<CrmInvestSaleUserCount> waitAssignUserList new ArrayList<>();for (int i 0; i < 1000000; i) {waitAssignUserList.add(new CrmInvestSaleUserCount().setSales_username("test" i…...
【c++】rand()随机函数的应用(二)——舒尔特方格数字的生成
目录 一、舒尔特方格简介 二、如何生成舒尔特方格 (一)线性同余法 1、利用线性同余法生成随机数序列的规律 (1) 当a和c选取合适的数时,可以生成周期为m的随机数序列 (2) 种子seed取值也是有周期的 2、利用线性同余法生成5阶舒尔特方格…...
“深入剖析JVM内部机制:探索Java虚拟机的运行原理“
标题:深入剖析JVM内部机制:探索Java虚拟机的运行原理 摘要:本文将深入探讨Java虚拟机(JVM)的内部机制,包括类加载、内存管理、垃圾回收、即时编译等关键概念和原理,帮助开发者更好地理解JVM的运…...
pandas 新增数据列的几种方式
准备数据 将下面的数据存到csv中 ymd,bWendu,yWendu,tianqi,fengxiang,fengli,aqi,aqiInfo,aqiLevel 2018-01-01,3℃,-6℃,晴~多云,东北风,1-2级,59,良,2 2018-01-02,2℃,-5℃,阴~多云,东北风,1-2级,49,优,1 2018-01-03,2℃,-5℃,多云,北风,1-2级,28,优,1 2018-01-04,0℃,-8℃…...
linux_驱动_iic总线获取si7006温湿度
应用层si7006.c #include<stdio.h> #include <sys/types.h> #include <sys/stat.h> #include <fcntl.h> #include <unistd.h> #include <stdlib.h> #include <string.h> #include <sys/ioctl.h> #include <arpa/inet.h>…...
虚拟机网络图标不见了
有3台虚拟机之前正常运行的,有一天打开虚拟机发现2台虚拟机的网络连接图标不见了,也ping不通另外两台。 解决:在终端执行以下命令,即可ping通 [roothadoop103 ~]# sudo nmcli network off [roothadoop103 ~]# sudo nmcli network…...
CTF:信息泄露.(CTFHub靶场环境)
CTF:信息泄露.(CTFHub靶场环境) “ 信息泄露 ” 是指网站无意间向用户泄露敏感信息,泄露了有关于其他用户的数据,例如:另一个用户名的财务信息,敏感的商业 或 商业数据 ,还有一些有…...
Redis学习总结
Redis学习总结 文章目录 Redis学习总结Radis基本介绍docker的安装基本数据结构通用命令字符型key的层次结构Hash类型Listset sortedset集合redis的java客户端jedis的使用jedis连接池的配置 SpringDataRedis自定义redistemplate的序列化与反序列化方式stringtemplate的使用 redi…...
云原生全栈体系(二)
Kubernetes实战入门 第一章 Kubernetes基础概念 一、是什么 我们急需一个大规模容器编排系统kubernetes具有以下特性: 服务发现和负载均衡 Kubernetes 可以使用 DNS 名称或自己的 IP 地址公开容器,如果进入容器的流量很大,Kubernetes 可以负…...
C++设计模式之建造者设计模式
C建造者设计模式 什么是建造者设计模式 建造者设计模式是一种创建型设计模式,它是一种将复杂对象的分解为多个独立部分的模式,以便于构建对象的过程可以被抽象出来并独立变化。 该模式有什么优缺点 优点 灵活性:建造者设计模式允许对象的…...
网络六边形受到攻击
大家读完觉得有帮助记得关注和点赞!!! 抽象 现代智能交通系统 (ITS) 的一个关键要求是能够以安全、可靠和匿名的方式从互联车辆和移动设备收集地理参考数据。Nexagon 协议建立在 IETF 定位器/ID 分离协议 (…...
深入浅出Asp.Net Core MVC应用开发系列-AspNetCore中的日志记录
ASP.NET Core 是一个跨平台的开源框架,用于在 Windows、macOS 或 Linux 上生成基于云的新式 Web 应用。 ASP.NET Core 中的日志记录 .NET 通过 ILogger API 支持高性能结构化日志记录,以帮助监视应用程序行为和诊断问题。 可以通过配置不同的记录提供程…...
线程与协程
1. 线程与协程 1.1. “函数调用级别”的切换、上下文切换 1. 函数调用级别的切换 “函数调用级别的切换”是指:像函数调用/返回一样轻量地完成任务切换。 举例说明: 当你在程序中写一个函数调用: funcA() 然后 funcA 执行完后返回&…...
汽车生产虚拟实训中的技能提升与生产优化
在制造业蓬勃发展的大背景下,虚拟教学实训宛如一颗璀璨的新星,正发挥着不可或缺且日益凸显的关键作用,源源不断地为企业的稳健前行与创新发展注入磅礴强大的动力。就以汽车制造企业这一极具代表性的行业主体为例,汽车生产线上各类…...
linux 下常用变更-8
1、删除普通用户 查询用户初始UID和GIDls -l /home/ ###家目录中查看UID cat /etc/group ###此文件查看GID删除用户1.编辑文件 /etc/passwd 找到对应的行,YW343:x:0:0::/home/YW343:/bin/bash 2.将标红的位置修改为用户对应初始UID和GID: YW3…...
相机Camera日志分析之三十一:高通Camx HAL十种流程基础分析关键字汇总(后续持续更新中)
【关注我,后续持续新增专题博文,谢谢!!!】 上一篇我们讲了:有对最普通的场景进行各个日志注释讲解,但相机场景太多,日志差异也巨大。后面将展示各种场景下的日志。 通过notepad++打开场景下的日志,通过下列分类关键字搜索,即可清晰的分析不同场景的相机运行流程差异…...
MySQL中【正则表达式】用法
MySQL 中正则表达式通过 REGEXP 或 RLIKE 操作符实现(两者等价),用于在 WHERE 子句中进行复杂的字符串模式匹配。以下是核心用法和示例: 一、基础语法 SELECT column_name FROM table_name WHERE column_name REGEXP pattern; …...
大语言模型(LLM)中的KV缓存压缩与动态稀疏注意力机制设计
随着大语言模型(LLM)参数规模的增长,推理阶段的内存占用和计算复杂度成为核心挑战。传统注意力机制的计算复杂度随序列长度呈二次方增长,而KV缓存的内存消耗可能高达数十GB(例如Llama2-7B处理100K token时需50GB内存&a…...
scikit-learn机器学习
# 同时添加如下代码, 这样每次环境(kernel)启动的时候只要运行下方代码即可: # Also add the following code, # so that every time the environment (kernel) starts, # just run the following code: import sys sys.path.append(/home/aistudio/external-libraries)机…...
计算机基础知识解析:从应用到架构的全面拆解
目录 前言 1、 计算机的应用领域:无处不在的数字助手 2、 计算机的进化史:从算盘到量子计算 3、计算机的分类:不止 “台式机和笔记本” 4、计算机的组件:硬件与软件的协同 4.1 硬件:五大核心部件 4.2 软件&#…...
