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

广州的服装网站建设技术短期培训班

广州的服装网站建设,技术短期培训班,梵客家装,360建筑网怎么注销账号上篇文章我们学习了LangChain教程——Chain链,这篇文章我们学习LangChain教程——文本嵌入模型。 文本嵌入模型 文本嵌入模型(Embeddings)用于文本转换为向量,为语义搜索、相似性计算等任务提供了基础支持。 其提供了两种方法将…

上篇文章我们学习了LangChain教程——Chain链,这篇文章我们学习LangChain教程——文本嵌入模型。

文本嵌入模型

文本嵌入模型(Embeddings)用于文本转换为向量,为语义搜索、相似性计算等任务提供了基础支持。

其提供了两种方法将文本向量化:

  • 文档向量化(embed_documents):接收参数是字符串数组;

  • 句子向量化(embed_query):接收参数是字符串;

在使用文本嵌入模型前,需要执行如下代码安装sentence-transformers。

pip install sentence-transformers

示例代码如下:

from langchain_huggingface import HuggingFaceEmbeddings# 模型地址
embeddings_path = "F:\model\ge-large-zh-v1.5"
# 实例化模型
embeddings = HuggingFaceEmbeddings(model_name=embeddings_path)text="你好,你知道白巧克力吗?"
# 句子向量化
result=embeddings.embed_query(text)
# 文档向量化
doc_result=embeddings.embed_documents([text])print(result[:10])
print(doc_result[0][:5])

运行结果如下:

[-0.033717427402734756, -0.03865227848291397, -0.01294323056936264, -0.020587250590324402, -0.0017022894462570548, -0.05969524011015892, -0.04599889740347862, -0.0034713181667029858, 0.026392975822091103, -0.023560168221592903]
[-0.033717427402734756, -0.03865227848291397, -0.01294323056936264, -0.020587250590324402, -0.0017022894462570548]

这样就可以得到了文本向量,得到了向量数据,需要存储在数据库中。

向量存储

文本嵌入一般都与向量数据库配合使用,实现高效的相似性搜索。LangChain官方提供了三种开源、免费、可用于本地机器的向量数据库示例(chroma、FAISS、Lance)。

这里我们简单使用chroma向量数据库来配合文本嵌入,以后的文章会详细介绍。

在使用chroma前,需要执行如下安装chroma,

pip install chromadb

首先实例化模型,示例代码如下:

# 文本文件加载器
from langchain_community.document_loaders import TextLoader
# 文本分割器
from langchain.text_splitter import CharacterTextSplitter
# 矢量存储数据库
from langchain_community.vectorstores import Chroma
from langchain_huggingface import HuggingFaceEmbeddings
# 模型地址
embeddings_path = "F:\model\ge-large-zh-v1.5"
# 实例化模型
embeddings = HuggingFaceEmbeddings(model_name=embeddings_path)

接下来对文档进行分割切片,示例代码如下:

# 加载文档
raw_documents=TextLoader('计算机技术与软件专业技术资格(水平)考试简介.txt',encoding='utf-8').load()
print(raw_documents)# 实例化文本分割器
text_splitter=CharacterTextSplitter(chunk_size=200,     # 分割后文本最大长度chunk_overlap=20,      # 文档之间重叠度separator="\n"         # 按换行符优先分割
)
# 对文本进行分片
documents=text_splitter.split_documents(raw_documents)
print(len(documents))
print(documents[0])

运行结果如下:

也可以使用split_text方法进行分片,示例代码如下:

# 加载文档
raw_texts=open('计算机技术与软件专业技术资格(水平)考试简介.txt',encoding='utf-8').read()
print(raw_texts)# 对文本进行分片
texts=text_splitter.split_text(raw_texts)
print(len(texts))
print(texts[0])

运行结果如下:

接下来将矢量化文本加载到Chroma向量数据库中,示例代码如下:

db=Chroma.from_documents(documents,embeddings)
db_texts=Chroma.from_texts(texts,embeddings)
print(db)
print(db_texts)

运行结果为:

<langchain_community.vectorstores.chroma.Chroma object at 0x000002487E641330>
<langchain_community.vectorstores.chroma.Chroma object at 0x0000018DAC94A530>

默认情况下存储数据库的路径:

windows:用户/用户名/.cache/chroma/xxx
Linux:/home/<username>/.cache/chroma/xxx

接下来就可以进行实例化一个检索器用来矢量查询与检索,示例代码如下:

# 实例化检索器
ret=db.as_retriever()
docs=ret.invoke('计算机软件资格考试由哪些部门进行领导的')
print('检索出相似文档数量',len(docs))
print("第一个文档的内容:",docs[0].page_content)

运行结果如下:

好了,LangChain教程——文本嵌入模型就简单讲到这里,下一篇我们学习LangChain教程——文档加载、转换器。

公众号:白巧克力LIN

该公众号发布Python、数据库、Linux、Flask、Django、自动化测试、Git、算法、前端、服务器、AI等相关文章!

- END -

http://www.dtcms.com/wzjs/282199.html

相关文章:

  • iis装网站营销策略有哪几种
  • 网站制作的知识滕州网站建设优化
  • 输入网址跳到别的网站实时疫情最新消息数据
  • 网站建设教程 mysql线上营销推广方案模板
  • 家用电脑桌面做网站在线客服
  • 建手机网站报价网址域名查询
  • 宁波高新区建设局网站免费seo优化工具
  • 网络网站建设办公深圳今日重大新闻
  • 专做会议发布的网站网站开发的一般流程
  • 委托网站建设协议书长春建站服务
  • 公司网站开发的工作内容网站查询工具seo
  • 凯里小程序开发公司百度系优化
  • 政府网站建设服务手机上怎么制作网页
  • 大连网站排名公司网站整合营销推广
  • 网站文章页图片不显示图片长沙网站建设服务
  • 网站开发原型 图搜狐财经峰会
  • 营销推广型网站公司搜索引擎营销方式
  • 平面设计资源网站重庆seo网站
  • 宁波最靠谱的网站建设如何做好网上销售
  • 怎么做网站的域名解析广州网络推广专员
  • 做网站的国标有哪些外包网络推广公司推广网站
  • 网站建设与管理案例...seo快速排名案例
  • php做的网站处理速度怎么样百度推广后台登录
  • 博物馆网站 建设方案上海谷歌seo推广公司
  • 做网站一定要用到dw如何做好平台推广
  • iis7 添加网站2024年1月新冠高峰
  • 公司网站建设进度计划书百度提交入口网站网址
  • 和wordpress类似的开源博客西安seo计费管理
  • 用web开发一个网站怎么做百度官网下载安装到桌面上
  • 公司地址怎么免费上地图网站优化公司哪家好