自然语言处理-中文分词方法总结

python自然语言处理(NLP)1------中文分词1,基于规则的中文分词方法 python中文分词方法之基于规则的中文分词 目录 常见中文分词方法 推荐中文分词工具 参考链接 一、四种常见的中文分词方法: 基于规则的中文分词 基于统计的中文分词 深度学习中文分词 混合分词方法 基于规则的中文分词 包括, 正向最大匹配法,逆向最大匹配法和双向最大匹配法。 最大匹配方法是最有代表性的一种基于词典和规则的方法,其缺点是严重依赖... 阅读详情

中文分词是中文文本处理的一个基础步骤,也是中文人机自然语言交互的基础模块。不同于英文的是,中文句子中没有词的界限,因此在进行中文自然语言处理时,通常需要先进行分词,分词效果将直接影响词性、句法树等模块的效果。当然分词只是一个工具,场景不同,要求也不同。前人做的工作,已注明出处,我觉得相对很完整。

在人机自然语言交互中,成熟的中文分词算法能够达到更好的自然语言处理效果,帮助计算机理解复杂的中文语言。竹间智能在构建中文自然语言对话系统时,结合语言学不断优化,训练出了一套具有较好分词效果的算法模型,为机器更好地理解中文自然语言奠定了基础。在此,对于中文分词方案、当前分词器存在的问题,以及中文分词需要考虑的因素及相关资源,做了些整理和总结,希望能为大家提供一些参考。

中文分词根据实现原理和特点,主要分为以下2个类别:
1、基于词典分词算法也称字符串匹配分词算法。该算法是按照一定的策略将待匹配的字符串和一个已建立好的“充分大的”词典中的词进行匹配,若找到某个词条,则说明匹配成功,识别了该词。常见的基于词典的分词算法分为以下几种:正向最大匹配法、逆向最大匹配法和双向匹配分词法等。基于词典的分词算法是应用最广泛、分词速度最快的。很长一段时间内研究者都在对基于字符串匹配方法进行优化,比如最大长度设定、字符串存储和查找方式以及对于词表的组织结构,比如采用TRIE索引树、哈希索引等。

2、基于统计的机器学习算法这类目前常用的是算法是HMM、CRF、SVM、深度学习等算法,比如stanford、Hanlp分词工具是基于CRF算法。以CRF为例,基本思路是对汉字进行标注训练,不仅考虑了词语出现的频率,还考虑上下文,具备较好的学习能力,因此其对歧义词和未登录词的识别都具有良好的效果。Nianwen Xue在其论文《Combining Classifiers for Chinese Word Segmentation》中首次提出对每个字符进行标注,通过机器学习算法训练分类器进行分词,在论文《Chinese word segmentation as character tagging》中较为详细地阐述了基于字标注的分词法。常见的分词器都是使用机器学习算法和词典相结合,一方面能够提高分词准确率,另一方面能够改善领域适应性。随着深度学习的兴起,也出现了基于神经网络的分词器,例如有人员尝试使用双向LSTM+CRF实现分词器,其本质上是序列标注,所以有通用性,命名实体识别等都可以使用该模型,据报道其分词器字符准确率可高达97.5%。算法框架的思路与论文《Neural Architectures for Named Entity Recognition》类似,利用该框架可以实现中文分词。
首先对语料进行字符嵌入,将得到的特征输入给双向LSTM,然后加一个CRF就得到标注结果。分词器当前存在问题:目前中文分词难点主要有三个:1、分词标准:比如人名,在哈工大的标准中姓和名是分开的,但在Hanlp中是合在一起的。这需要根据不同的需求制定不同的分词标准。2、歧义:对同一个待切分字符串存在多个分词结果。歧义又分为组合型歧义、交集型歧义和真歧义三种类型。1) 组合型歧义:分词是有不同的粒度的,指某个词条中的一部分也可以切分为一个独立的词条。比如“中华人民共和国”,粗粒度的分词就是“中华人民共和国”,细粒度的分词可能是“中华/人民/共和国”2) 交集型歧义:在“郑州天和服装厂”中,“天和”是厂名,是一个专有词,“和服”也是一个词,它们共用了“和”字。3) 真歧义:本身的语法和语义都没有问题, 即便采用人工切分也会产生同样的歧义,只有通过上下文的语义环境才能给出正确的切分结果。例如:对于句子“美国会通过对台售武法案”,既可以切分成“美国/会/通过对台售武法案”,又可以切分成“美/国会/通过对台售武法案”。一般在搜索引擎中,构建索引时和查询时会使用不同的分词算法。常用的方案是,在索引的时候使用细粒度的分词以保证召回,在查询的时候使用粗粒度的分词以保证精度。3、新词:也称未被词典收录的词,该问题的解决依赖于人们对分词技术和汉语语言结构的进一步认识。

另外,收集了如下部分分词工具,
供参考:中科院计算所NLPIR http://ictclas.nlpir.org/nlpir/
ansj分词器 https://github.com/NLPchina/ansj_seg
哈工大的LTP https://github.com/HIT-SCIR/ltp
清华大学THULAC https://github.com/thunlp/THULAC
斯坦福分词器 https://nlp.stanford.edu/software/segmenter.shtml
Hanlp分词器 https://github.com/hankcs/HanLP
结巴分词 https://github.com/yanyiwu/cppjiebaKCWS
分词器(字嵌入+Bi-LSTM+CRF) https://github.com/koth/kcwsZPar https://github.com/frcchang/zpar/releasesIKAnalyzer https://github.com/wks/ik-analyzer
以及部分分词器的简单说明:哈工大的分词器:主页上给过调用接口,每秒请求的次数有限制。
清华大学THULAC:目前已经有Java、Python和C++版本,并且代码开源。
斯坦福分词器:作为众多斯坦福自然语言处理中的一个包,目前最新版本3.7.0, Java实现的CRF算法。可以直接使用训练好的模型,也提供训练模型接口。
Hanlp分词:求解的是最短路径。优点:开源、有人维护、可以解答。原始模型用的训练语料是人民日报的语料,当然如果你有足够的语料也可以自己训练。
结巴分词工具:基于前缀词典实现高效的词图扫描,生成句子中汉字所有可能成词情况所构成的有向无环图 (DAG);采用了动态规划查找最大概率路径, 找出基于词频的最大切分组合;对于未登录词,采用了基于汉字成词能力的 HMM 模型,使用了 Viterbi 算法。字嵌入+Bi-LSTM+CRF分词器:本质上是序列标注,这个分词器用人民日报的80万语料,据说按照字符正确率评估标准能达到97.5%的准确率,各位感兴趣可以去看看。
ZPar分词器:新加坡科技设计大学开发的中文分词器,包括分词、词性标注和Parser,支持多语言,据说效果是公开的分词器中最好的,C++语言编写。关于速度:由于分词是基础组件,其性能也是关键的考量因素。通常,分词速度跟系统的软硬件环境有相关外,还与词典的结构设计和算法复杂度相关。比如我们之前跑过字嵌入+Bi-LSTM+CRF分词器,其速度相对较慢。另外,开源项目 https://github.com/ysc/cws_evaluation 曾对多款分词器速度和效果进行过对比,可供大家参考。
本回答来自 竹间智能 自然语言与深度学习小组 。

自然语言处理之命名实体识别:Bi-LSTM-CRF:中文分词与词性标注 词性标注(Part-of-Speech Tagging,POS Tagging)是自然语言处理中的一个基础任务,它为文本中的每个词附上一个表示其语法功能的词性标签。词性标签通常包括名词、动词、形容词、副词、介词、连词、代词、数词、量词、方位词、时态词、语气词、助词、叹词、拟声词等。双向LSTM(Bi-LSTM)结合了两个LSTM层,一个正向LSTM和一个反向LSTM。正向LSTM从左到右处理序列,而反向LSTM从右到左处理序列。通过这种方式,Bi-LSTM能够同时利用序列的前后文信息,从而提高模型的性能。 阅读详情

相关推荐

AI自然语言处理NLP原理与Python实战:中文分词技术发展历程

1.背景介绍 自然语言处理(Natural Language Processing,NLP)是人工智能(Artificial Intelligence,AI)领域的一个重要分支,旨在让计算机理解、生成和处理人类语言。中文分词(Chinese Word Segmentation)是NLP的一个重要技术,它将中文文本划分为有意义的词语或词组,以便进行后续的

AI天才研究院 409

自然语言处理之中文分词(基于Python)

人生苦短,我用python 除了给你生孩子,python都能给你做到。 这句话所言不假,python拥有丰富的库,能完成各种各样的的功能。 只有你想不到的,没有python做不到的。下面我们来看看python在自然语言处理中的应用吧! python之中文分词 中文分词 指的是将一个汉字序列切分成一个一个单独的词。分词就是将连续的字序列按照一定的规范重新组合成词序列的过程。 ** 在自然语言处理技术...

诗酒趁年华。 8515

自然语言处理之情感分析:ALBERT在中文分词与词性标注中的应用

ALBERT(A Lite BERT)是由Google提出的一种轻量级的预训练语言模型。ALBERT在结构上进行了优化,通过参数共享和减少嵌入维度,大大减少了模型的参数量,同时保持了与BERT相当的性能。ALBERT的这些特性使其在资源有限的环境下也能高效运行,成为NLP任务中一个非常有吸引力的选择。词性标注(Part-of-Speech Tagging, POS Tagging)是自然语言处理中的一项基础任务,它涉及为文本中的每个词附上一个标记,表示该词在句子中的语法功能。

zhubeibei168的博客 1163

自然语言处理之中文分词算法

关于分词 目前有三大主流分词方法:基于字符串匹配的分词方法、基于理解的分词方法和基于统计的分词方法。 1、基于字符串匹配的分词方法 基于字符串匹配的分词方法又称为机械分词方法,它需要有一个初始的充分大的词典,然后将待分词的字符串与词典中的元素进行匹配,若能成功匹配,则将该词切分出来。 按扫描方向的不同,字符串匹配分词方法可以分为正相匹配和逆向匹配;按照不同长度的匹配优先度可以划分为最大匹配...

sysu63的博客 1万+

AI自然语言处理NLP原理与Python实战:中文分词工具比较

1.背景介绍 自然语言处理(Natural Language Processing,NLP)是人工智能(Artificial Intelligence,AI)领域的一个重要分支,旨在让计算机理解、生成和应用自然语言。在过去的几十年里,NLP研究取得了显著的进展,但是,在处理复杂的自然语言任务方面,计算机仍然远远落后于人类。 中文分词(Ch

AI天才研究院 223

中文分词NLP工具包:动物词库详解

本文还有配套的精品资源,点击获取 简介:自然语言处理(NLP)中的中文分词是处理文本数据的关键步骤,尤其在中文这样的非空格分隔语言中。动物词库“THUOCL_animal.txt”在此过程中扮演了重要角色,帮助NLP系统准确识别文本中的动物相关词汇。本文章介绍中文分词的各种方法,包括基于规则、统计、混合及深度学习方法,并探讨动物词库在情感分析、信息提取、问答系统、机器翻译和...

weixin_35751412的博客 1103

自然语言处理系列之:中文分词技术

大纲 中文分词的概念与分类 常用分词(规则分词、统计分词、混合分词)技术介绍 开源中文分词工具-Jieba 实战分词之高频词提取 3.1 中文分词简介 规则分词 最早兴起,主要通过人工设立词库,按照一定方式进行匹配切分,实现简单高效,但对新词难以处理; 统计分词 能较好应对新词发现场景,但是太过于依赖于语料质量; 混合分词 规则分词与统计分词的结合体; 3.2 规则分词 定义 一种机械分词方法,主要通过维护词典,切分语句时,将语句中的每个字符串与词表中的词逐一匹配

Viper的程序员修炼手册 2274

中文自然语言处理中文分词训练语料

本次提供的中文汉语语料syj_trainCorpus_utf8.txt全网免费,转载需要注明出处,语料是作者通过爬取的短文本和网络上的预料处理、合并生成的。整个语料大小264M,包含1116903条数据,数据用空格隔开,可以用来训练分词模型。

自然语言处理1 -- 分词

文章目录1 概述2 中文分词难点分词标准切分歧义未登录词3 中文分词算法基于词典的分词算法基于统计的分词算法4 分词质量和性能5 总结 转载来源:https://blog.youkuaiyun.com/u013510838/article/details/81673016 1 概述 分词是自然语言处理的基础,分词准确度直接决定了后面的词性标注、句法分析、词向量以及文本分析的质量。英文语句使用空格将单词进行分隔,除了某些特定词,如how many,New York等外,大部分情况下不需要考虑分词问题。但中文不同,天然缺少

hwaust2020的博客 1312

无人机避障——卡内基梅隆大学(CMU)CERLAB 无人机自主框架复现

CMUCERLAB无人机自主框架是一个模块化的无人机自主导航系统,包含感知、测绘、规划和控制等组件。安装过程中遇到的主要问题包括:(1)cv_bridge路径未正确识别,需手动指定路径;(2)OpenCV版本冲突(4.2与4.6),导致动态导航节点崩溃。解决方案包括:完全卸载OpenCV4.2,重新编译安装OpenCV4.6,并修改相关CMakeLists文件指定版本。最终成功运行仿真环境,实现无人机在Gazebo和RViz中的自主避障导航功能。

weixin_45390670的博客 1647

发那科机器人弧焊指令实战:从Search指令到组掩码设置的完整避坑指南

本文详细解析了发那科机器人弧焊指令系统的实战应用,从Search指令的正确使用到组掩码设置的避坑技巧。通过实际案例和参数优化建议,帮助工程师提升焊接质量和生产效率,避免常见错误操作。特别针对T2模式示教难题和外部轴协调运动提供了专业解决方案。

weixin_29040367的博客 185

自然语言处理概述及应用和中文分词简述

小白一个,最近一直在学习自然语言处理。以后准备在这方面发展。也就计划开始写博客,希望自己有所提升。文中主要是笔者看过的文章和书籍中整理出来的,第一次发博客。当中肯定有许多瑕疵,内容肯定也不是那么完善。请大家多多包含,以后会更加努力,争取写出质量高的文章。FIGHTING...(热烈欢迎大家批评指正,互相讨论) (第一步总是很难的,坚持下去更难。希望自己迎难而上。)

搞点學術的研究生 1537

FID指标实战:如何用Python快速计算生成图像的质量分数(附完整代码)

本文详细介绍了如何使用Python计算Fréchet Inception Distance(FID)指标,以评估生成图像的质量。通过完整的代码示例和优化技巧,帮助开发者快速实现FID计算,并解读分数背后的实际意义,适用于GAN和扩散模型的性能评估。

weixin_28718487的博客 376

自然语言处理的中文分词方法

中文分词方法平台:win7,python,vs20101、CRF++CRF++是著名的条件随机场开源工具,也是目前综合性能最佳的CRF工具。 一、工具包的下载: 其中有两种,一种是Linux下(带源码)的,一种是win32的,下载 http://download.youkuaiyun.com/source/1425683将这两种版本打成一个包了。 二、安装: a) Windows版的

perfectmanman的博客 4296

Ubuntu18.04黑屏救急指南:从tty到图形界面的5种恢复方法(附网络配置技巧)

本文针对Ubuntu 18.04系统启动后出现黑屏并进入tty命令行的问题,提供了一套从紧急诊断到完全恢复图形化界面的系统性实战指南。文章详细讲解了五种核心恢复方法,包括重启显示管理器、重装ubuntu-desktop桌面环境、手动安装Xorg与LightDM等,并重点解决了纯命令行环境下的网络配置难题,帮助用户快速修复系统,恢复工作环境。

weixin_29243279的博客 359

编译CycloneDDS和CycloneDDS-CXX踩过的坑——CMake Error at CMakeLists.txt:227 (find_package):

最近编译CycloneDDS和CycloneDDS-CXX踩了两个坑,花了不少时间。做个简单的记录,免得以后又踩到。注意:CycloneDDS-CXX编译依赖CycloneDDS,因此必须先编译CycloneDDS需要严格按照步骤进行,否则要入坑步骤如下,1先编译CycloneDDS以上步骤完成CycloneDDS的编译和安装,生成的bin include lib等位于install目录下面。

usstmiracle的博客 1900

自然语言处理——NLP简介

NLP-自然语言处理 NLP,Natural Language Processing 用机器处理人类语言的理论和技术研究在人与人交际中以及人与计算机交际中的语言问题的一门学科。 两大著名实验: 自然语言处理与图灵测试:测试是否能让某机器表现出与人一样或者无法区分的智能 图灵测试与中文屋子:判断图灵测试是否准确,是否存在一种规则手册满足使机器像人一样智能化 NLP的历史 20世纪50年代起步——机器翻译 利用计算机自动地将一种自然语言翻译为另外一种自然语言 50—70年代——模式匹配 例如计算机答疑:用户

weixin_47822556的博客 1785

Android 16(API 36)状态栏颜色适配全攻略:从沉浸式到自定义背景

本文全面解析Android 16(API 36)强制沉浸式状态栏带来的适配挑战,提供了从FrameLayout包裹法到动态修改Window背景色的核心解决方案。针对传统状态栏颜色设置失效问题,详细阐述了如何利用WindowInsets API实现自定义背景,并涵盖全屏模式、Fragment切换及第三方ROM兼容性等实战场景,为开发者提供一站式适配指南。

weixin_29227425的博客 595

一文读懂自然语言处理NLP(图解+学习资料)

转载:https://cloud.tencent.com/developer/article/1032021 一文读懂自然语言处理NLP(图解+学习资料)数据派THU发表于数据派THU订阅905前言自然语言处理是文本挖掘的研究领域之一,是人工智能和语言学领域的分支学科。在此领域中探讨如何处理及运用自然语言。对于自然语言处理的发展历程,可以从哲学中的经验主义和理性主义说起。基于统计的自然语言处理是哲...

weixin_44852827的博客 6990

手把手教你用U盘给海信IP501H刷机:GK6323V100C芯片的4.4.2和9.0固件实战

本文详细介绍了海信IP501H电视盒子基于GK6323V100C芯片的刷机实战指南,涵盖Android 4.4.2强刷和Android 9.0免拆刷机两种方案。从工具准备、短接操作到ADB调试,提供全流程解析和常见问题解决方案,帮助用户安全高效地完成刷机操作。

lemon的博客 1456

博途PLC模糊PID控制(附SCL完整源代码)

操作人员根据对象的当前状态和以往的控制经验,用手动控制的方法给出适当的控制量,对被控对象进行控制。用电脑模拟操作人员手动控制的经验,对被控对象进行控制。用模糊数学的知识模仿人脑的思维方式,对模糊现象进行识别和判决,给出精确的控制量,对被控对象进行控制。与经典控制理论和现代控制理论相比,模糊控制的特点是不需要建立对象的精确模型。根据操作人员手动控制的经验,总结的完整控制规则,在根据系统当前的运行状态,经过模糊推理,模糊判决等运算,求出控制量,实现对被控对象的控制。......

RXXW_Dor的博客 8966

自然语言处理(NLP)

NLP(Nature Language Processing,自然语言处理)是计算机学科及人工智能领域一个重要的子学科,它主要研究计算机如何处理、理解及应用人类语言。所谓自然语言,指人说的话、人写的文章,是人类在长期进化过程中形成的一套复杂的符号系统(类似于C/Java等计算机语言则称为人造语言)。以下是关于自然语言处理常见的定义:自然语言处理还有其它一些名称,例如:自然语言理解(Natural Language Understanding),计算机语言学(Computational Linguistics

weixin_55245206的博客 9936

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

NLP-基于字符匹配的中文分词

NLP-基于字符匹配的中文分词

shui_chi_的博客 1万+

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

【原创】NLP中的中文分词技术

【原创】NLP中的中文分词技术

gfyufffb的博客 732

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

入门科普:一文看懂NLP和中文分词算法(附代码举例)

导读:在人类社会中,语言扮演着重要的角色,语言是人类区别于其他动物的根本标志,没有语言,人类的思维无从谈起,沟通交流更是无源之水。所谓“自然”乃是寓意自然进化形成,是为了...

大数据 1万+

nlp自然语言处理_NLP自然语言处理基础

NLP-基础和中文分词一、本质NLP (Natural Language Processing) 自然语言处理是一门研究计算机处理人类语言的技术二、NLP用来解决什么问题语音合成(Speech synthesis)语音识别(Speech recognition)中文分词(Chinese word segmentation)☆文本分类(Text categorization)☆信息检索(Inform...

weixin_39992072的博客 253
上一篇: Mysql使用心得(2)
下一篇: 自然语言处理-搭建文本分类器
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值