【ChatBot学习笔记】1.中文分词

ChatterBot+第三方中文语料库实现在线聊天机器人 设计并实现一个在线聊天机器人案例 1、ChatterBot ChatterBot是Python自带的基于机器学习的语音对话引擎,可以基于已知的对话库来产生回应。ChatterBot独特的语言设计可以使它可以通过训练来用任何一种语言进行对话。该项目的开源代码链接:https://github.com/gunthercox/ChatterBot 2、应用案例描述 ChatterBot包含的工具有助于简化训练聊天机器人实例的过程。ChatterBot的训练过程涉及将示例对话框加载到聊天机器人的数据库中。这可以创建 阅读详情

1.中文分词

他说的确实在理

原理:基于大量语料库,利用平均感知机分类器对上面特征做打分,并训练权重系数,这样得出的模型就可以用来分词了,句子右边多出来一个字,用模型计算这些特征的加权得分,得分最高的就是正确的分词方法

基于n元语法模型的方法的优势在于词表里已有的词的分词效果

基于字构词的方法的优势在于未登陆词的识别

流行分词工具

jieba

  • 基于前缀词典实现高效的词图扫描,生成句子中汉字所有可能成词情况所构成的有向无环图 (DAG)
  • 采用了动态规划查找最大概率路径, 找出基于词频的最大切分组合
  • 对于未登录词,采用了基于汉字成词能力的 HMM 模型,使用了 Viterbi 算法
  • 前两句话是说它是基于词表的分词,最后一句是说它也用了由字构词,所以它结合了两种分词方法

ik分词器

基于词表的最短路径切词

ltp云平台分词

主要基于机器学习框架并部分结合词表的方法

NLPIR汉语分词工具,文档地址:http://pynlpir.readthedocs.io/en/latest/

测试一下NLPIR分词器

import pynlpir
pynlpir.open()

s = '欢迎科研人员、技术工程师、企事业单位与个人参与NLPIR平台的建设工作。'
pynlpir.segment(s)

pynlpir.open()
s = '聊天机器人到底该怎么做呢?'
segments = pynlpir.segment(s)
for segment in segments:
    print (segment[0], '\t', segment[1])

key_words = pynlpir.get_key_words(s, weighted=True)
for key_word in key_words:
    print (key_word[0], '\t', key_word[1])

s = "猪笼草是如何捕食的?"

调用segment方法指定的pos_names参数可以是’all’, ‘child’, ‘parent’

默认是parent, 表示获取该词性的最顶级词性

child表示获取该词性的最具体的信息

all表示获取该词性相关的所有词性信息,相当于从其顶级词性到该词性的一条路径

可选参数pos_english=False,使用中文输出

segments = pynlpir.segment(s, pos_names='all',pos_english=False)  
print("分词:")
for segment in segments:
    print (segment[0], '\t', segment[1])
key_words = pynlpir.get_key_words(s, weighted=True)
print("关键词提取:")
for key_word in key_words:
    print (key_word[0], '\t', key_word[1])

pynlpir.close()

测试一下jieba

encoding=utf-8

import jieba
 
seg_list = jieba.cut("我来到北京清华大学", cut_all=True)
print("Full Mode: " + "/ ".join(seg_list))  # 全模式
 
seg_list = jieba.cut("我来到北京清华大学", cut_all=False)
print("Default Mode: " + "/ ".join(seg_list))  # 精确模式
 
seg_list = jieba.cut("他来到了网易杭研大厦")  # 默认是精确模式
print("Default Mode: " +", ".join(seg_list))
 
seg_list = jieba.cut_for_search("小明硕士毕业于中国科学院计算所,后在日本京都大学深造")  # 搜索引擎模式
print("Search Mode: " + ", ".join(seg_list))

应用:中文单词统计

import jieba

txt = open("..\语料\三国演义.txt", "r", encoding='utf-8').read()
words = jieba.lcut(txt)     # 使用精确模式对文本进行分词
counts = {}     # 通过键值对的形式存储词语及其出现的次数

for word in words:
    if len(word) == 1:    # 单个词语不计算在内
        continue
    else:
        counts[word] = counts.get(word, 0) + 1    # 遍历所有词语,每出现一次其对应的值加 1

items = list(counts.items())
items.sort(key=lambda x: x[1], reverse=True)    # 根据词语出现的次数进行从大到小排序

for i in range(3):
    word, count = items[i]
    print("{0:<5}{1:>5}".format(word, count))
拓展:英文单词统计
def get_text():
    txt = open("1.txt", "r", encoding='UTF-8').read()
    txt = txt.lower()
    for ch in '!"#$%&()*+,-./:;<=>?@[\\]^_‘{|}~':
        txt = txt.replace(ch, " ")      # 将文本中特殊字符替换为空格
    return txt

file_txt = get_text()
words = file_txt.split()    # 对字符串进行分割,获得单词列表
counts = {}

for word in words:
    if len(word) == 1:
        continue
    else:
        counts[word] = counts.get(word, 0) + 1 

items = list(counts.items())    
items.sort(key=lambda x: x[1], reverse=True)      

for i in range(5):
    word, count = items[i]
    print("{0:<5}->{1:>5}".format(word, count))

功能:载入词典

  • 开发者可以指定自己自定义的词典,以便包含 jieba 词库里没有的词。虽然 jieba 有新词识别能力,但是自行添加新词可以保证更高的正确率
  • 用法: jieba.load_userdict(file_name) # file_name 为文件类对象或自定义词典的路径
  • 词典格式和 dict.txt 一样,一个词占一行;每一行分三部分:词语、词频(可省略)、词性(可省略),用空格隔开,顺序不可颠倒。file_name 若为路径或二进制方式打开的文件,则文件必须为 UTF-8 编码。
  • 词频省略时使用自动计算的能保证分出该词的词频。

功能:调整词典

  • 使用 add_word(word, freq=None, tag=None) 和 del_word(word) 可在程序中动态修改词典。
  • 使用 suggest_freq(segment, tune=True) 可调节单个词语的词频,使其能(或不能)被分出来。
  • 注意:自动计算的词频在使用 HMM 新词发现功能时可能无效。
Python-ChatterBot是一个能够自我训练学习多种语言的聊天机器人 ChatterBot是一个能够自我训练学习多种语言的聊天机器人 立即下载

相关推荐

chatterbot中文手册1

4.1.1 4.1.2 4.1.3 4.1.3.1 4.1.3.2 4.5.2 4.7.3

Chatbot 分类

一.分类 1. 依照应用场景的不同,Chatbot可以分为开放域chatbot和封闭域chatbot,也可以说是开放领域和垂直领域; 2. 按照问答轮次的不同,Chatbot能够分为单轮bot和多轮bot,当然单轮bot更像是检索了; 2. 根据技术方案的不同,Chatbot也可以分为检索式Chatbot和生成式Chatbot. 二.中文语料 中文公开聊天语料库: https://github.com/codemayq/chin...

weixin_44867812的博客 1046

Day01 Geant4学习

​ 用来记录粒子在每个step中的信息的,例如位置,能量,动量.例如,假设每一个粒子都有一个属于自己的id,会记录自己的轨迹状态信息就是track,当他发生反应时,就会产生新的id。​ 最终在新建的build文件夹中的vis.mac文件中设置,是自带的,如果有更高的需求可以自己去更改,但是一般都是写好的,设置好了图形界面的一些东西,呈现的自己建模的图形界面多大,需不需要网格什么的。从反应到结束的过程,其中也包括它产生的刺激粒子的反应到结束的过程,成为一个事件event。

LXS_357的博客 929

聊聊chatbot那些事

1. 生活中的chatbot ​ 现在社会,随着AI的迅猛发展,各种新技术层出不穷,大大改变了我们的生活,其中,有很多技术已经走入了我们的日常生活,比如CV领域的人脸识别 ,NLP 领域的智能助手等。本次,我们就来聊聊智能助手中会涉及到的技术,也就是chatbot。 ​ chatbot,其实是有很多分类的,目前,最常见的是把它分为一下几类: Chit-Chat-oriented Dialogue Systems: 闲聊型对话机器人,产生有意义且丰富的回复。 Task-oriented: 任务驱动类,

u013596454的博客 3058

PointMLP实战:5分钟用PyTorch搭建点云分类模型(附GitHub代码)

本文提供了基于ICLR 2022论文PointMLP的点云分类模型实战教程。通过PyTorch框架,详细介绍了从环境搭建、数据预处理、模型架构解析到训练推理的全流程,并分享了性能调优技巧。该模型利用残差MLP模块构建,结构清晰高效,适合开发者快速上手并应用于实际点云处理项目。

r2s3t4的博客 212

【Kubernetes】Kubernetes 安全沙箱深度对比:gVisor vs Kata Containers

Kubernetes安全沙箱深度对比:gVisor和Kata Containers在架构、性能与安全性方面各有特点。gVisor通过用户态内核(Sentry)实现软件隔离,启动快(毫秒级)但CPU开销大(20-30%),适合Web服务等场景。Kata Containers采用轻量级虚拟机提供硬件级隔离,启动较慢(1-2秒)但兼容性更好,适合金融等高安全需求。测试显示gVisor在动态请求下性能下降33%,而Kata性能接近原生。建议根据场景选择:多租户/快速启动用gVisor,敏感数据/极致安全用Kata,

九师兄 174

智能对话Chatbot中文分词服务的搭建

部署在IBM平台的网址:https://portfolio-chat-frankieafei.mybluemix.net/ 需求链接:https://zb.oschina.net/project/cb7c1680b1bc4461 关于这个服务的搭建,我做的是中文分词的服务,调用的结巴分词的...

cigu7464的博客 327

DeepSeek-R1 论文阅读 DeepSeek-R1: Incentivizing Reasoning Capability in LLMs via Reinforcement Learning

和。这些模型的核心创新点是通过强化学习(Reinforcement Learning, RL)来提升大型语言模型(LLM)的推理能力,而没有依赖传统的监督微调(Supervised Fine-Tuning, SFT)作为预训练的步骤。是一种通过大规模强化学习直接训练的模型。它在推理能力上表现出色,能够自然地展现出许多强大且有趣的推理行为。但它也有一些问题,比如可读性差和语言混合。这意味着模型在生成文本时,有时会显得不太清晰,或者不一致地使用不同语言。为了解决这些问题并进一步提升推理能力,研究者提出了。

CSPhD-winston的博客 1831

从0到1掌握gh_mirrors/cha/Chatbot:词向量模型配置与训练教程

gh_mirrors/cha/Chatbot是一款基于向量匹配的情境式聊天机器人,通过词向量模型实现智能对话匹配。本文将带你快速掌握该项目词向量模型的配置方法与训练流程,让你轻松搭建属于自己的智能聊天系统。 ## 准备工作:环境搭建与依赖安装 在开始词向量模型配置前,需确保开发环境已安装必要依赖。项目提供了详细的依赖清单,位于[requirements.txt](https://link.gi

gitblog_00143的博客 649

Claude Code 学习笔记之一:理解 Agentic Loop 与内置工具

本文介绍了Claude Code这一终端智能助手的工作原理与使用方式。作者从ABAP开发经验出发,指出学习Claude Code的高级用法具有长期价值。文章详细解析了Claude Code的Agentic Loop机制:通过大语言模型进行推理,借助各类工具执行任务,并循环收集上下文、执行操作、验证结果三个步骤。系统阐述了Claude Code支持的五大类工具及其扩展方式,说明了其访问本地资源的范围和自治处理能力,同时介绍了权限模式等安全机制。最后提供了从小任务开始、充分探索、及时引导、使用CLAUDE.md

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 527

汇川Easy系列斜坡函数功能块(支持状态输出)

IN rSetValue REAL 0.000000 0.000000 不保持 目标值 1IN rMaxValue REAL 0.000000 0.000000 不保持 最大目标值 2IN rMinValue REAL 0.000000 0.000000 不保持 最小目标值 3IN rSmoothTime REAL 100.000000 100.0000 不保持 最小到最大值平滑时间 单位 秒 4IN diTs DINT 10 10 不保持 函数调用周期采样时间中断时间 5。

RXXW_Dor的博客 444

我开发了一个温柔的智能客服聊天机器人ChatBot,并回答为什么不是ChatGPT(附思路和代码)

本文是笔者设计实现智能客服机器人chatbot的思考和开发过程,使用了全文搜索技术、中文分词、nodejs、socketio等技术,虽然不是chatgpt却也是个温柔可人的客服小助理,是个可爱的聊天机器人,附有代码和演示网址。代码实现浅显易懂,适合入门级学习。

一名高级工程师的博客 8968

YOLOv11的物理信息神经网络(PINN):引入物理规律约束目标运动预测

本文介绍了YOLOv11目标检测与PINN物理信息神经网络的融合技术。YOLOv11采用增强特征提取和参数优化架构,在保持实时性的同时提升检测精度。PINN通过将物理方程嵌入损失函数,实现数据高效学习。两者的结合可显著提升运动预测准确性和遮挡处理鲁棒性。文章详细阐述了环境配置、YOLOv11模型验证方法,并提供了基础PINN框架代码实现,展示了物理约束如何通过自动微分整合到神经网络中。该融合技术适用于自动驾驶、无人机导航等需要物理规律建模的视觉感知场景。

本博客聚焦 YOLOv11 全流程落地,涵盖架构优化、数据集处理、训练技巧与多场景部署,兼及国产数据库、Java 开发与 AI 模型应用,内容兼顾理论与工程实践,为开发者提供系统干货,助力高效提升技术能力。 418

如何快速搭建gh_mirrors/cha/Chatbot:从安装到配置的完整指南

想要快速搭建一个基于向量匹配的中文聊天机器人吗?gh_mirrors/cha/Chatbot 是一个功能强大的开源聊天机器人项目,它采用模板与检索式模型搭建,支持基于词向量的短語分類和多轮对话功能。本文将为您提供从零开始搭建这个智能聊天机器人的完整教程,涵盖环境配置、模型训练到实际应用的每一个步骤。 ## 🚀 项目概述与核心功能 gh_mirrors/cha/Chatbot(又称Mianbo

gitblog_01115的博客 1027

华为OD新系统机试真题 - 配置操作失败数量统计

华为OD机试新系统 4月8号【配置操作失败数量统计】,提供C语言、Java、C++、Python、Go、JavaScript源码实现,并提供完整思路讲解,以及在线OJ模拟做题。华为OD机试真题【配置操作失败数量统计】。

qq_45776114的博客 1144

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

从零构建高可用AI Chatbot项目的技术架构与实战指南

基于火山引擎豆包大模型,从零搭建一个实时语音通话应用。它不是简单的问答,而是需要你亲手打通 ASR(语音识别)→ LLM(大脑思考)→ TTS(语音合成)的完整 WebSocket 链路。对于想要掌握 AI 原生应用架构的同学来说,这是个绝佳的练手项目。架构理解:掌握实时语音应用的完整技术链路(ASR→LLM→TTS)技能提升:学会申请、配置与调用火山引擎AI服务定制能力:通过代码修改自定义角色性格与音色,实现“从使用到创造”从0到1构建生产级别应用,脱离Demo,点击打开。

2600_94960222的博客 377

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

Chatbot安装教程:从环境配置到生产部署的完整指南

通过以上步骤,我们完成了一个从环境配置、服务编排、安全实践到性能监控的Chatbot生产级部署指南。使用Docker Compose让本地开发与生产部署保持高度一致,是提升效率和减少错误的关键。如何设计跨平台会话迁移方案?当用户从Web端切换到移动App时,如何无缝转移未完成的对话上下文?这涉及到用户身份的统一识别和会话状态的跨设备同步,是一个涉及架构设计的有趣挑战。在多租户(SaaS)场景下,如何高效隔离和治理不同客户的AI调用成本与数据?这需要从API网关、计量计费、数据存储层面进行精细化的设计。

2600_94959856的博客 457

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

基于LSTM的Chatbot实例(2) — tensorflow LSTM模型创建

一、总体分析   感觉很多chatbot的博文都是直接拿seq2seq开刀,上来就堆了一堆RNN(或者LSTM,Attention)模型的原理和公式。本篇从初学者的角度出发更想将机器学习基础(目标函数,优化方法,正则化等思想)贯穿始终。并结合Tensorboard可视化tensorflow中相关的模型算法。   在Machine Learning by Mitchell(1997)中,给出了机...

Alice 2744

Approaching a Chatbot Service - Part 3: Bot Model

jieba分词默认的字典是:1998人民日报的切分语料还有一个msr的切分语料和一些txt小说。开发者可以自行添加字典,只要符合字典构建的格式就行。jieba分词同时提供接口添加词汇。

Chatopera 865

Chatbot UI 中文文档实战指南:从零搭建企业级对话界面

* 中文长句强制换行 *//*** 支持中文换行的消息气泡* @param {string} props.text - 原始文本*/<Message></Message>在对话流里替换默认<Message>即可。把上面整套流程跑完整合后,我对“中文 Chatbot”这件事才算真正心里有底。若你也想亲手感受一次“让 AI 听懂中国话”的成就感,可以顺手试试这个动手实验——从0打造个人豆包实时通话AI。

2600_94960039的博客 390

从零构建Chatbot知识库:技术选型与实战避坑指南

把上面的脚本串成 Airflow DAG,每天凌晨增量更新,线上实测 10 万文档、峰值 800 QPS,P99 延迟 120 ms,内存稳在 4.2 GB。若你也想亲手搭一套可语音对话的“豆包”版 Chatbot,不妨从这份知识库骨架开始,再接入 ASR→LLM→TTS 完成闭环。我把自己跑通的完整实验放在这里,步骤更细、代码开箱即用——从0打造个人豆包实时通话AI,跟着做一遍,小白也能把麦克风聊活。

2600_94960123的博客 229

基于Python构建个人知识库Chatbot:从附件解析到智能问答实战

作为一名开发者,我经常遇到这样的困扰:技术文档、项目报告、会议纪要、学习笔记散落在电脑的各个角落,格式五花八门——PDF、Word、TXT,甚至还有图片扫描件。当需要查找某个特定概念或解决方案时,只能依靠模糊的记忆和文件系统的关键词搜索,效率极低,常常“书到用时方恨少”。因此,构建一个能够理解附件内容、并能通过自然语言进行智能问答的个人知识库Chatbot,就成了一个极具吸引力的解决方案。它不仅能将散乱的知识点串联起来,更能让我们像与专家对话一样,快速获取所需信息。

2600_94959853的博客 180

【ChatBot开发笔记】聊天机器人——语料资源获取与词性分类

目录python爬虫框架scrapy1、简介scrapy2、scrapy安装3、scrapy使用创建配置setting.py试用与运行语料提取中文分词pynlpir1、pynlpir安装2、使用词性分类表 python爬虫框架scrapy 1、简介scrapy 快速、高层次的屏幕抓取和web抓取框架,用于抓取web站点并从页面中提取结构化数据。 2、scrapy安装 打开cmd,输入 pip install scrapy 下载完成后,出现Successfully install scrapy字样即安装成功

weixin_44524843的博客 1206

提升Chatbot响应质量的终极指南:关键词匹配与模糊搜索优化技巧

在当今人工智能快速发展的时代,基于向量匹配的情境式聊天机器人已成为智能对话系统的核心技术。本文将深入探讨如何优化gh_mirrors/cha/Chatbot项目的响应质量,通过关键词匹配与模糊搜索技巧,帮助您打造更加智能、准确的对话体验。无论您是新手开发者还是普通用户,都能从本文中找到实用的优化策略。 ## 为什么Chatbot响应质量至关重要? 🎯 一个优秀的聊天机器人应该能够准确理解用户

gitblog_00712的博客 683

Python Chatbot 开源框架实战指南:从选型到生产环境部署

你可以亲手为AI伙伴选择不同的音色,定义它的性格,并最终通过网页和它进行实时语音聊天,延迟很低,效果很惊艳。GitHub上搜索“Python chatbot”,结果琳琅满目,从轻量级的规则引擎到重型的端到端框架,让人眼花缭乱。如何让机器人记住“航班”、“下午”、“这个”所指代的具体内容,并连贯地完成订票流程,这其中的状态管理非常考验设计。对话状态的存储、服务的并发处理、资源的弹性伸缩,这些生产环境的问题在Demo阶段往往被忽略,却直接决定了项目的成败。接下来,我们就以它为核心,展开实战。

2600_94959948的博客 202

基于LSTM的Chatbot实例(1) — 研究背景及数据准备

一、背景   一直想写一篇面对初学者的文章从上层应用到底层的机器学习基础方面全流程的阐释当下流行的深度学习算法(CNN,RNN等)。刚好春节前有同学工作内容涉及对话机器人,我也从零开始接触学习了下,所以就借这个案例展开说一些自己的学习过程吧。   对话系统根据实际的任务需求,所要用到的主要技术手段也不尽相同。具体来说,对话系统大致可分为两种: 任务导向型(task-oriented)对话系...

Alice 2706
上一篇: 【ChatBot学习笔记】0.自然语言处理
下一篇: 【ChatBot学习笔记】2.语料标注
Javitation
博客等级 码龄8年 0粉丝 15原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值