聊天机器人之文本分词
聊天机器人之文本分词
1. 准备词典和停用词
1.1 准备词典
1.2 准备停用词
stopwords = set([i.strip() for i in open(config.stopwords_path).readlines()])
关于结巴分词的详细代码操作,查看博文:https://blog.csdn.net/weixin_44799217/article/details/115244829
2. 准备按照单个字切分句子的方法
import redef cut_by_word(sentence):# 对中文按照字进行处理,对英文不分为字母sentence = re.sub("\s+", " ", sentence) # 匹配空白,即 空格,tab键sentence = sentence.strip()result = []temp = ""for word in sentence:if word.lower() in letters:temp += word.lower()else:if temp != "": # 不是字母result.append(temp)temp = ""if word.strip() in filters: # 标点符号continueelse: # 是单个字result.append(word)if temp != "": # 最后的temp中包含字母result.append(temp)return result
3. 完成分词方法的封装
lib 下创建cut_sentence.py
文件,完成分词方法的构建
import logging
import jieba
import jieba.posseg as psg # 分词并返回词性
import config
import re
import string# 关闭jieba log输出
jieba.setLogLevel(logging.INFO) # 这行代码使程序运行时的4行红字去掉
# 加载词典
jieba.load_userdict(config.keywords_path)
# 单字分割,英文部分
letters = string.ascii_lowercase
# 单字分割 去除的标点
filters = [",", "-", ".", " "]
# 停用词
stopwords = set([i.strip() for i in open(config.stopwords_path).readlines()])def cut(sentence, by_word=False, use_stopwords=False, with_sg=False):""":param sentence: str句子:param by_word: 是否按照单个字分词:param use_stopwords: 是否使用停用词:param with_sg: 是否返回词性:return: """assert by_word != True or with_sg != True, "根据word切分时候无法返回词性"if by_word:return _cut_by_word(sentence)else:ret = psg.lcut(sentence)if use_stopwords:ret = [(i.word, i.flag) for i in ret if i.word not in stopwords]if not with_sg:ret = [i.word for i in ret]return retdef _cut_by_word(sentence):# 对中文按照字进行处理,对英文不分为字母sentence = re.sub("\s+", " ", sentence)sentence = sentence.strip()result = []temp = ""for word in sentence:if word.lower() in letters:temp += word.lower()else:if temp != "": # 不是字母result.append(temp)temp = ""if word.strip() in filters: # 标点符号continueelse: # 是单个字result.append(word)if temp != "": # 最后的temp中包含字母result.append(temp)return result
聊天机器人之文本分词相关推荐
- 聊天机器人之文本聚类分析
目录 文本聚类 聚类算法 Affinity propagation 算法概述 特点 K-means 算法概述 特点 Chinese Whispers 算法概述 特点 选择算法 计算过程优化 聚类API ...
- 人工智能标记语言AIML聊天机器人:…
人工智能标记语言AIML聊天机器人:产生.种类.应用.实例.AIML概述.知识库.公司.业界(20k字经典收藏版) 秦陇纪10译编 聊天机器人(chatterbot)是一个用来模拟人类对话或聊天的程序 ...
- 人工智能标记语言AIML聊天机器人:产生、种类、应用、实例、AIML概述、知识库、公司、业界(20k字经典收藏版)...
目录 一.聊天机器人(chatbots)的产生.盛行.中文版 二.聊天机器人种类及应用场景简介 三.聊天机器人相关疑问与常见实例 四.人工智能标记语言(AIML)概述(Dr.理查德S.华勒斯Richa ...
- 使用TensorFlow.js的AI聊天机器人三:改进了文本中的情感检测
目录 使用通用语句编码器设置TensorFlow.js代码 GoEmotion数据集 通用句子编码器 训练AI模型 让我们发现情绪 终点线 下一步是什么? 下载项目代码-9.9 MB TensorFl ...
- 使用TensorFlow.js的AI聊天机器人一:检测文本中的情绪
目录 设置TensorFlow.js代码 GoEmotion数据集 言语包 训练AI模型 检测文本中的情绪 终点线 下一步是什么? 下载项目代码-9.9 MB TensorFlow + JavaScr ...
- JAVASCRIPT实现基于文本的自动智能聊天机器人
原创作者:一粒马豆&冰豆小李 首先让我们来看看这样一种语言现象: 研表究明,汉字序顺并不定一影阅响读. Aoccdrnig to a rscheearch at an Elingsh uine ...
- 聊天机器人落地及进阶实战 | 公开课速记
嘉宾 | 邵浩 编辑 | suiling 来源 | AI科技大本营在线公开课 近年来,聊天机器人技术及产品得到了快速的发展.聊天机器人作为人工智能技术的杀手级应用,发展得如火如荼,各种智能硬件层出不穷 ...
- 聊天机器人之语料准备
聊天机器人之语料准备 1. 分词词典 最终词典的格式: 词语 词性(不要和jieba默认的词性重复) 1.1 词典来源 各种输入法的词典 [通过下面链接下载使用] 例如:https: ...
- 《预训练周刊》第21期:FlipDA:有效且稳健的数据增强小样本学习、开放域低资源适应的生成式聊天机器人...
No.21 智源社区 预训练组 预 训 练 研究 观点 资源 活动 关于周刊 超大规模预训练模型是当前人工智能领域研究的热点,为了帮助研究与工程人员了解这一领域的进展和资讯,智源社区整理了第21期&l ...
最新文章
- CCS5.5 中报错 Does not match the target type,not loaded 的一种情况
- Oracle查询锁表以及杀会话或系统进程来解除锁表操作
- spark-submit提交参数说明以及与yarn-site.xml中参数的相互约束关系+spark运行架构图解(持续更新中)
- java方法2数据求和_Leet Code 2 Add Two Numbers - 链表表示的两个数求和 - Java
- 最美旗舰机型又将易主?三星Galaxy S11高清渲染图曝光
- Linux 镜像文件ISO下载地址、centos网络配置:
- 小波同态滤波 matlab,matlab同态滤波程序
- java jersey_Jersey框架
- echarts绘制地理坐标/地图
- linux登出用户,Linux系统中用户的登入登出命令详解
- 互联网服务器信息检索,网络信息检索的一般方法
- 学习ELMo从文本中提取特征的分步NLP指南
- 云盘里资料被和谐了,怎么办?
- PMC亮相IDF展示12G SAS分层存储解决方案
- python from import什么意思_Python import与from import使用及区别介绍
- 文档,图片有水印很让人头痛!处理起来很麻烦?用Python三秒搞定!
- js的计时事件. 圆形时钟
- 2022年寒假训练赛(2020级)题解
- hackme guestbook
- [STM32] 分散加载文件 之一 (初探)