关键词:
【ChatBot】文本分词
1. 准备词典和停用词
1.1 准备词典
1.2 准备停用词
stopwords = set([i.strip() for i in open(config.stopwords_path).readlines()])
2. 准备按照单个字切分句子的方法
def _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: #标点符号
continue
else: #是单个字
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)
#加载词典
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):
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 ret
def _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: #标点符号
continue
else: #是单个字
result.append(word)
if temp != "": #最后的temp中包含字母
result.append(temp)
return result
机器学习(ml)四之文本预处理(代码片段)
文本预处理读入文本分词建立字典,将每个词映射到一个唯一的索引(index)将文本从词的序列转换为索引的序列,方便输入模型读入文本importcollectionsimportredefread_time_machine():withopen(‘/home/kesci/input/timemachine7163/timemachine.txt‘,‘r... 查看详情
基于小程序制作一个chatgpt聊天机器人(代码片段)
...将ChatGPT与实战开发相结合,制作一个随身携带的聊天机器人,紧贴前沿的同时稳固基础。一、前言1.1、什么是ChatGPT1.2、什么是文本完成二、API2.1、ChatGPT官网申请API所需要的key2.2、搭建API2.3、创建控制器及动作方法三、... 查看详情
机器学习新手项目之n-gram分词(代码片段)
...=9:1的比例进行随机划分。数据预处理包括:去词性、去文本行标识(19980101-01-001-001)、词典统计、标点统计等。主要流程文本预处理,分为:语料随机切分、去词性、统计词典等使用前向FMM和后向BMM最大切分,对测试语料进行切... 查看详情
使用python实现一个简单的智能聊天机器人(代码片段)
...明最近两天需要做一个python的小程序,就是实现人与智能机器人(智能对话接口)的对话功能,目前刚刚测试了一下可以实现,就是能够实现个人与机器的智能对话(语音交流)。总体的思路大家可以设想一下,如果要... 查看详情
python文本分析(nltk,jieba,snownlp)(代码片段)
...等。语音方面主要有机器同声传译、智能客户服务、聊天机器人、语音挖掘与多媒体挖掘、多媒体信息提取与文本转化等。文章目录文本分词词干提取词性还原词袋模型词频统计情感分析jieba中文分词对《我的大明新帝国》这本... 查看详情
nlp开发python实现聊天机器人(chatterbot)(代码片段)
...现中文、英文分词🎈🎈【NLP开发】Python实现聊天机器人(ELIZA))🎈🎈【NLP开发】Python实现聊天机器人(ALICE)🎈🎈【NLP开发】Python实现聊天机器人(ChatterBot)🎈🎈... 查看详情
文本情感分析-机器学习实验三(代码片段)
...分析-机器学习实验三实验目的:通过实验,掌握文本分析的整体流程,了解文本分类、情感分析、自动摘要等内容通过给定的文本内容,完成分词、文本向量化、文本分类、情感分析等相关实验实验可从文本分类... 查看详情
php在分词时截断文本(代码片段)
用qq聊天记录生成一个词云(代码片段)
QQ的聊天记录可以通过消息管理器,选中联系人,右键导出为 .txt 格式。由于是中文,需要分词,本文的分词工具采用的是 jieba 分词。不知道这个“福”能不能扫出来。假设你已经导出与某人的聊天记录,... 查看详情
一个文本分词程序(代码片段)
WordMap类从分词库中读入分词 将分词存入unordered_map<std::string,int>中#pragmaonce#include<istream>#include<unordered_map>#include<string>#include<ctime>classWordMappublic:Wor 查看详情
pkuseg分词库以及使用(代码片段)
...为不同领域的数据提供个性化的预训练模型。根据待分词文本的领域特点,用户可以自由地选择 查看详情
树莓派---制作一个聊天机器人(代码片段)
目录1.初步实现---用文本聊天找了一个免费的聊天机器人---青云客,只要编辑一下请求url就行虽然,有些功能还没上线官网地址chatWithRobot.py importrequestsfromurllibimportparsedefqingyunke(msg):#parse.quote方法是用来对中文编码的,... 查看详情
text聊天机器人样本(代码片段)
机器学习入门-文本数据-使用聚类增加文本的标签属性(代码片段)
通过对特征做一个kmeans聚类,将聚类的结果做为文本的标签值,可以使得样本的特征更多我们从sklearn.cluster中导入Kmeans建立模型进行聚类代码: 第一步:使用Dataframe格式化数据和使用数据格式化数据 第... 查看详情
0元试用微软azure人工智能认知服务我做了个群聊天机器人(代码片段)
前言我这边参加了CSDN与微软Azure举办的0元试用微软Azure人工智能认知服务活动。第一次使用微软Azure认知服务,老实说,还是满心期待的。文章目录前言正式开始试用环境SDK的位置语音识别(语音转文本)语音合... 查看详情
text聊天机器人订阅字段(代码片段)
我用python轻松玩转chatgpt的聊天机器人和ai画画(代码片段)
...人工智能研究实验室OpenAI在2022年11月30日发布的全新聊天机器人模型,一款人工智能技术驱动的自然语言处理工具。它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,真正像人类一样来... 查看详情
中文文本预处理流程(带你分析每一步)(代码片段)
...行处理,就要把它们转为向量。网上大部分都是处理英文文本的资料,本文就以中文文本为例,将原始的文本经过预处理得到文本向量目录去除指定无用的符号让文本只保留汉字对文本进行jieba分词去除停用词将文本转为tfidf向... 查看详情