NLP segment-01-聊一聊分词 AI 的基础

拓展阅读

分词系列专题

jieba-fenci 01 结巴分词原理讲解 segment

jieba-fenci 02 结巴分词原理讲解之数据归一化 segment

jieba-fenci 03 结巴分词与繁简体转换 segment

jieba-fenci 04 结巴分词之词性标注实现思路 speechTagging segment

关键词系列专题

NLP segment-01-聊一聊分词

NLP segment-02-聊一聊关键词提取 keyword

NLP segment-03-基于 TF-IDF 实现关键词提取 java 开源实现

倒排索引原理与实现 reverse-index

TF-IDF 自动生成文章摘要

TF-IDF 自动提取关键词

相似文章算法之语义指纹-文本内容去重

TF-IDF 找出相似文章算法

开源项目

为了便于大家学习,项目开源地址如下,欢迎 fork+star 鼓励一下老马~

nlp-keyword 关键词

pinyin 汉字转拼音

segment 高性能中文分词

opencc4j 中文繁简体转换

nlp-hanzi-similar 汉字相似度

word-checker 拼写检测

sensitive-word 敏感词

NLP 的分词

在自然语言处理(NLP)中,分词是指将一段文本按照一定规则分解为一个个单词或词组的过程。

这是 NLP 的基础步骤之一,尤其在中文处理里尤为关键,因为中文没有天然的空格分隔词语。

分词的必要性

  1. 中文语料:与英文不同,中文中没有天然的分词标记,分词是理解文本的前提。例如,“我爱北京天安门”可以分成多个不同的词组,影响模型对文本的理解。
  2. 语义分析:正确的分词可以帮助算法准确地获取文本含义,便于后续的词频统计、情感分析等任务。
  3. 信息检索:分词能够提高信息检索系统的精度,比如在搜索引擎中,合理的分词可以帮助用户更好地找到相关内容。

分词的难点

  1. 歧义问题:如“我是中国人”,“中国人”既可以是国家名字加“人”,也可以是“中”“国人”。
  2. 未登录词:在词库中不存在的词称为未登录词,比如新出现的网络词汇、人名或地名等,需要识别这些词语才能提升分词的准确度。
  3. 多义性:同一个词在不同上下文中的含义可能不同,例如“苹果”既可能是水果,也可能是科技公司。

分词方法

  1. 基于规则的分词

    • 正向最大匹配法(MM):从文本开头开始,尝试匹配最长的词,直到文本结束。缺点是可能会漏掉较短的词汇。
    • 逆向最大匹配法(RMM):从文本末尾开始,向前匹配最长词语。可以与正向法组合,增加准确率。
    • 双向最大匹配法(Bi-MM):结合正向和逆向匹配,取分词结果较少的分法。可以较好地减少歧义,但效果仍有限。
  2. 基于统计的分词

    • N-gram 模型:将词语按 N-gram(如二元组)的形式切分,利用词语共现的频率计算切分的概率。适合处理文本中的高频词。
    • 隐马尔科夫模型(HMM):将分词问题转化为状态序列标注问题,利用已知的标注序列训练模型并计算分词概率。能处理一定的未登录词问题,但依赖于标注数据的质量。
  3. 基于机器学习的分词

    • 条件随机场(CRF):一种常用的序列标注方法,能通过上下文信息进行词语边界判断。与 HMM 相比,CRF 不要求特征的独立性,适合更复杂的语言结构。
    • 支持向量机(SVM)、决策树等:将分词转化为分类问题,使用上下文特征判断分词点。效果通常不如 CRF,但在特定任务中可能有效。
  4. 基于深度学习的分词

    • 循环神经网络(RNN):RNN 模型(如 LSTM 和 GRU)可以处理长文本的上下文信息,通过构建一个词语序列标注模型来进行分词。
    • BERT、GPT 等预训练模型:这类模型捕获了丰富的上下文信息和语义关系,经过微调后可用于分词任务,尤其在处理复杂语境和歧义问题上表现优异。

分词有哪些应用场景?

分词在自然语言处理(NLP)的多个应用场景中起着重要的作用。以下是一些主要的应用场景:

1. 文本分类

  • 分词作为特征提取的第一步:通过分词,可以将文本转换为词袋模型(Bag of Words)或 TF-IDF 特征向量,以便于分类算法使用。
  • 垃圾邮件分类:在邮件分类中,通过分词可以提取关键词,将文本分为正常邮件、广告或垃圾邮件等类别。
  • 情感分析:分词能提取出情绪词汇,为判断文本的情感倾向(如正面、负面、中性)提供基础数据。

2. 搜索引擎

  • 关键字提取:在搜索引擎中,用户的查询词通过分词解析成多个关键词,用于检索和匹配文档内容。
  • 相关性排序:通过分词可以提取文档中的重要词汇,帮助搜索引擎对结果进行更准确的排序。
  • 自动补全和纠错:分词和词频统计可以帮助实现搜索时的自动补全,纠正用户的拼写错误或输入错误的词语。

3. 信息抽取

  • 实体识别:分词与命名实体识别结合使用,可以提取人名、地名、机构名等特定信息。
  • 关系抽取:从文本中提取实体之间的关系(如“苹果公司”与“收购”之间的关系),需要基于分词获取基础的句子结构信息。
  • 事件抽取:通过分词识别特定事件(如“地震”、“发布会”等)并记录相关信息,在新闻监控和情报分析中非常重要。

4. 机器翻译

  • 中文分词对齐:在翻译中文文本时,分词可以帮助分解复杂的词汇结构,便于机器翻译模型进行词对齐处理。
  • 提升语法分析效果:分词能提升句法分析的准确率,进而提升翻译的连贯性和准确性,特别是在复杂句和长句中效果明显。

5. 对话系统和聊天机器人

  • 意图识别:通过分词获取用户输入中的关键词,可以帮助聊天机器人识别用户意图(如查询天气、下订单等)。
  • 槽位填充:分词帮助机器人识别出用户意图中的参数信息,比如时间、地点等,为槽位填充提供基础。
  • 上下文理解:结合分词可以帮助对话系统更好地理解用户的上下文内容,从而提供更相关的回答。

6. 文本摘要

  • 关键词提取:在生成摘要时,通过分词提取文中的高频词和重要词,有助于生成概括性较强的文本摘要。
  • 句子压缩:分词可以帮助在长句中提取重要的语义片段,从而去掉冗余信息,为摘要生成打下基础。

7. 知识图谱构建

  • 实体和关系抽取:分词能够帮助从文本中识别实体和关系,便于构建知识图谱。
  • 数据整合:在将多个数据源整合到知识图谱时,分词可以对同义词、复合词进行拆分和规范化处理,提升数据一致性。
  • 自动构建:通过自动化分词和实体识别,可以从海量文本中抽取知识点,形成结构化的知识图谱。

8. 推荐系统

  • 用户兴趣提取:通过分词分析用户的浏览记录、评论、搜索历史,提取出用户的兴趣关键词。
  • 个性化推荐:基于分词结果将用户兴趣和推荐内容进行匹配,实现个性化推荐,特别在新闻推荐和电商推荐中应用广泛。

9. 舆情分析和社会媒体监控

  • 主题和热点分析:通过分词提取出文本中的高频词,可以用于识别和追踪社交媒体上的热点话题。
  • 情绪和情感分析:在评论、社交媒体等文本中,通过分词识别出情感倾向词汇,帮助判断公众的情绪(如满意、不满等)。
  • 事件监控:对重大事件的文本实时分析,通过分词和关键词提取,自动检测和监控事件进展。

10. 语音识别

  • 分词辅助语言模型:在语音识别中,分词有助于构建语言模型,提高语音识别的准确度,尤其是对拼接单词的识别。
  • 后处理步骤:语音识别系统生成的文本往往没有标点符号,分词帮助进行句子划分和标点恢复,提升文本可读性。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/461379.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Open3D(C++) 基于法线微分的点云分割

目录 一、算法原理二、代码实现三、结果展示1、原始点云2、分割结果本文由CSDN点云侠原创,原文链接,首发于:2024年11月1日。 一、算法原理 使用C++版本Open3D复现的PCL里边基于法线微分的分割算法。PCL 基于法线微分(DoN)的点云分割【2024最新版】。网上有大量相关算法介…

Xcode 15.4 运行flutter项目,看不到报错信息详情?

Xcode升级后,遇到了奇怪的事情: 运行flutter项目,左侧栏显示有报错信息,但是点击并没有跳转出具体的error详情。【之前都会自己跳转出来的,升级后真的是无厘头】 方案: 点击左侧导航栏最右边的图标——>…

Java基础(8)异常

目录 1.前言 2.正文 2.1异常的引入 2.2异常的类型 2.2.1编译时异常 2.2.2运行时异常 2.3区分Exception与Error 2.4异常的声明,抛出与捕获 2.4.1throw 2.4.2throws 2.4.2try-catch与finally 2.6自定义异常 3.小结 1.前言 哈喽大家好啊,Java…

解决rabbitmq-plugins enable rabbitmq_delayed_message_exchange :plugins_not_found

问题:我是在docker-compose环境部署的 services:rabbitmq:image: rabbitmq:4.0-managementrestart: alwayscontainer_name: rabbitmqports:- 5672:5672- 15672:15672environment:RABBITMQ_DEFAULT_USER: rabbitRABBITMQ_DEFAULT_PASS: 123456volumes:- ./rabbitmq/…

JavaScript语法基础——变量,数据类型,运算符和程序控制语句(小白友好篇,手把手教你学会!)

一、JavaScript概述 JavaScript是一种高级编程语言,常用于网页开发和服务器端应用程序。它是一种动态类型语言,可以在浏览器中直接解释执行,而不需要编译。 脚本(Script)是一种与计算机程序相关的指令集或代码块&…

Android 中View.post的用法

View.post 是 Android 中 View 类的一个方法,它允许我们在视图 (View) 完成其布局 (Layout) 阶段后,将一个任务放到主线程的消息队列中,以便稍后执行。这种方式通常用于确保在 View 的尺寸、位置等布局属性已经计算完成后执行某些操作。 基本…

健康之路押注医药零售:毛利率下滑亏损扩大,医疗咨询人次大幅减少

《港湾商业观察》黄懿 2024年9月13日,健康之路股份有限公司(下称“健康之路”)再次递表港交所,建银国际为独家保荐人。健康之路国内运营主体为健康之路(中国)信息技术有限公司和福建健康之路信息技术有限公…

在pycharm中使用sqllite

在pycharm中使用sqllite sqllite 简介 SQLite 是一个开源的、轻量级的、关系型数据库管理系统(RDBMS),它设计用于嵌入到应用程序中,并且可以在无需外部服务器进程的情况下运行。SQLite 提供了完整的 SQL 语言支持,允…

游戏启动失败:8种修复xinput1_3.dll错误的几种方法教程,轻松解决xinput1_3.dll错误

当你准备好在一天的工作后放松一下,启动你最爱的游戏,却突然收到一个“xinput1_3.dll 丢失”的错误消息,这无疑是令人沮丧的。幸运的是,xinput1_3.dll丢失问题通常可以通过几个简单的步骤来解决。本文将详细介绍这些步骤&#xff…

多线程和线程同步基础篇学习笔记(Linux)

大丙老师教学视频:10-线程死锁_哔哩哔哩_bilibili 目录 大丙老师教学视频:10-线程死锁_哔哩哔哩_bilibili 线程概念 为什么要有线程 线程和进程的区别 在处理多任务的时候为什么线程数量不是越多越好? Linux提供的线程API 主要接口 线程创建 pth…

DDRPHY数字IC后端设计实现系列专题

在对 LPDDR3 物理层接口模块进行后端设计之前,需要对该模块的功能结 构以及后端物理设计流程的相关理论进行深入的分析和研究。本章第一节详细分 析了本次 LPDDR3 物理层接口模块的结构,为该模块的布图布局的合理规划奠 定了理论基础,并且分析…

【笔记】数据结构与算法

参考链接:数据结构(全) 参考链接:数据结构与算法学习笔记 一些PPT的整理,思路很不错,主要是理解角度吧,自己干啃书的时候结合一下会比较不错 0.总论 1.数据 注:图是一种数据结构!!…

无人机救援系统基本组成

无人机救援系统基本组成 1. 源由2. 组成2.1 无人机载具2.1.1 多旋翼2.1.2 垂起固定翼2.1.3 智能避障2.1.4 物资投递 2.2 智能吊舱2.2.1 云台2.2.2 高清摄像2.2.3 红外热成像2.2.4 激光测距2.2.5 目标跟踪 2.3 通讯链路2.3.1 超长距离通信2.3.2 长距离通信2.3.3 中等距离通信 2.…

拍拍贷鸿蒙版H5容器之路

背景介绍 业务背景 2024年1月18日华为宣布:HarmonyOS NEXT 将不再支持 Android系统,基于以上背景及国内信贷业务现状,公司决定启动借款App鸿蒙化项目。 下图是2024年6月华为HDC大会上,华为宣布 HarmonyOS NEXT 将面向开发者和先…

微信小程序服务通知

项目中用到了小程序的服务消息通知,通知订单状态信息,下边就是整理的一下代码,放到项目中,把项目的小程序appid和小程序的secret写进去,直接运行即可 提前申请好小程序服务信息通知短信模板,代码需要用到模…

3000字帮你彻底搞懂Java抽象类与接口的区别(含JDK8接口新增三种方法与丰富案例)

Java-OOP 1-Final 1.1简介 final关键字是最终的意思,可以修饰:类、方法、变量。 修饰类:该类被成为最终类,特点是不能被继承了。修饰方法:该方法被称为最终方法,特点是不能被重写了。修饰变量&#xff…

有没有噪音低的宠物空气净化器推荐?希喂、IAM性能PK

有一说一,随着清洁家电市场的不断发展,市面上的各种清洁家电品类也是越来越多,像是吸尘器、洗地机、扫地机等等这些产品估计大家都很熟悉了。 但!如果你家也跟我家一样也是养了几只猫猫狗狗,那你就会发现到&#xff0…

vscode摸鱼学习插件开发

不知道大家在摸鱼的时候,会不会想要学习? 或者有没有考公人,下班要学习的? 上班时间摸鱼,下班时间不够学习? 为此,我决定开发一个vscode插件,来刷粉笔题 粉笔插件名称:…

hive将包含逗号的字段拆分为多列

目录 一、概述 二、行动 1.准备数据 2.数据清洗 3.substring_index函数 4.split函数实现 一、概述 想将hive表中包含逗号的字段按逗号做分隔符进行分列操作 二、行动 1.准备数据 --1 select {1,2,3,4,5,6,7,8} as num_str --使用的数据2.数据清洗 --2 select num_s…

文心一言 VS 讯飞星火 VS chatgpt (381)-- 算法导论24.5 1题

一、给出图24-2的与图中两棵最短路径树不同的另外两棵最短路径树。如果要写代码,请用go语言。 文心一言: 在图论中,最短路径树(Shortest Path Tree, SPT)是一种从单个源点到所有其他节点的最短路径形成的树。给定一个…