当前位置: 首页 > news >正文

jieba分词和RecursiveCharacterTextSplitter分词

目录

  • jieba 分词
    • 本身特点
    • 使用方法
    • 输出结果
  • RecursiveCharacterTextSplitter 分词
    • 本身特点
    • 使用方法

jieba 分词

jieba(中文名:结巴)是一个广泛使用的中文分词库,它支持三种分词模式:

  • 精确模式:试图将句子最精确地切开,适合文本分析。
  • 全模式:把句子中所有可以成词的词语都扫描出来,速度非常快,但是不能保证每个词语的准确性。
  • 搜索引擎模式:在精确模式的基础上,对长词再次切分,提高召回率,适合用于搜索引擎的分词。

本身特点

  • 支持繁体分词和简体分词。
  • 支持自定义词典,可以提高分词的准确性。
  • 支持词性标注。
  • 可以进行关键词提取和词频统计。

使用方法

import jiebatext = "我爱北京天安门"
seg_list = jieba.cut(text)
print("Default Mode: " + "/ ".join(seg_list))  # 默认精确模式
print("Full Mode: " + "/ ".join(jieba.cut(text, cut_all=True)))  # 全模式
print("Search Mode: " + "/ ".join(jieba.cut_for_search(text)))  # 搜索引擎模式

输出结果

在这里插入图片描述

RecursiveCharacterTextSplitter 分词

RecursiveCharacterTextSplitterLangchain 中的一个文本分割工具,它基于字符递归地分割文本。这种分词方法不是基于词的边界,而是基于文本的字符长度进行分割。

本身特点

  • 可以指定每个文本块的最大字符数。
  • 可以指定文本块之间的重叠字符数,以保持上下文的连贯性。
  • 通常用于生成适合深度学习模型输入的文本块。

使用方法

from langchain.text_splitters import RecursiveCharacterTextSplitter
# 省略其他【这个示例要是运行的话前期准备工作很复杂,包很难下载,这里只是展示它们的不同以及各自的输出结果】
# 获取对应语言风格的数据
metadata = [item for item in data if item.get("press") == type_all[get_type]]
contents = [item['content'] for item in metadata]
updated_metadata = [{key: dic[key] for key in dic if key != 'content'} for dic in metadata]
# 创建 Document 对象
document = [Document(page_content=content, metadata=meta) for content, meta in zip(contents, updated_metadata)]
# print(document)
# 切分文档
text_split = RecursiveCharacterTextSplitter(chunk_size=12, chunk_overlap = 4)
split_data = text_split.split_documents(document)# 切分数据print(split_data)

在这里插入图片描述

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • electron rce
  • Milvus在数派数据大模型业务中的实践
  • 坐牢第三十天(c++)
  • [C++] C++11详解 (一)
  • 【模型】Temporal Fusion Transformer (TFT) 模型
  • 算法学习-基础算法
  • Visual Studio 2022 自定义字体大小
  • 摄像头设备问题如何检测
  • leetcode518:零钱兑换II
  • minio 后端大文件分片上传,合并,删除分片
  • 【线程安全】ReentrantLock和synchronized的使用示例——言简意赅
  • 【嵌入式开发之网络编程】TCP并发实现
  • 主场竞争,安踏把背影留给耐克
  • Java13 网络编程
  • 【pytorch】固定(freeze)住部分网络
  • [NodeJS] 关于Buffer
  • 2018一半小结一波
  • Facebook AccountKit 接入的坑点
  • fetch 从初识到应用
  • JS 面试题总结
  • Laravel深入学习6 - 应用体系结构:解耦事件处理器
  • Octave 入门
  • ReactNativeweexDeviceOne对比
  • Storybook 5.0正式发布:有史以来变化最大的版本\n
  • 从0到1:PostCSS 插件开发最佳实践
  • 名企6年Java程序员的工作总结,写给在迷茫中的你!
  • 浅谈Golang中select的用法
  • 如何解决微信端直接跳WAP端
  • 如何学习JavaEE,项目又该如何做?
  • 手机app有了短信验证码还有没必要有图片验证码?
  • 它承受着该等级不该有的简单, leetcode 564 寻找最近的回文数
  • 函数计算新功能-----支持C#函数
  • ​字​节​一​面​
  • #{} 和 ${}区别
  • #QT(QCharts绘制曲线)
  • #经典论文 异质山坡的物理模型 2 有效导水率
  • (1)Nginx简介和安装教程
  • (2024)docker-compose实战 (9)部署多项目环境(LAMP+react+vue+redis+mysql+nginx)
  • (3)llvm ir转换过程
  • (day 12)JavaScript学习笔记(数组3)
  • (Java实习生)每日10道面试题打卡——JavaWeb篇
  • (PADS学习)第二章:原理图绘制 第一部分
  • (苍穹外卖)day03菜品管理
  • (附源码)springboot美食分享系统 毕业设计 612231
  • (十五)devops持续集成开发——jenkins流水线构建策略配置及触发器的使用
  • (四) 虚拟摄像头vivi体验
  • (原創) 如何動態建立二維陣列(多維陣列)? (.NET) (C#)
  • *算法训练(leetcode)第四十五天 | 101. 孤岛的总面积、102. 沉没孤岛、103. 水流问题、104. 建造最大岛屿
  • .ai域名是什么后缀?
  • .apk 成为历史!
  • .cn根服务器被攻击之后
  • .dwp和.webpart的区别
  • .Net Core 微服务之Consul(二)-集群搭建
  • .NET Standard / dotnet-core / net472 —— .NET 究竟应该如何大小写?
  • .NET 回调、接口回调、 委托