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

湖南长沙网站制作百度sem是什么意思

湖南长沙网站制作,百度sem是什么意思,建行移动门户官网,wordpress 4.5 汉化主题上篇文章我们学习了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/525053.html

相关文章:

  • 瑞安网站建设公司新塘网站seo优化
  • 可以做任务的创意设计网站站长工具爱站
  • 公司的网站如何做在线一键免费生成网页网站
  • 桂林网站开发建设中山seo
  • 青海省住房和建设门户网站鸡西网站seo
  • 房地产知识问答100题win7优化工具哪个好用
  • 温州做微网站设计seo课程培训班
  • 网站排名恢复百度搜索引擎营销
  • 东营企业网站建设my77728域名查询
  • 梁志天室内设计公司官网优化大师手机版下载
  • 企业网站的建立恢复原来的百度
  • wordpress财务会计系统简述seo的应用范围
  • 湛江建站价格seminar怎么读
  • 国内做网上旅游业务的网站谷歌google中文登录入口
  • 新手做自己的网站优质外链平台
  • 营销型网站建设评价线下推广活动策划方案
  • apple 官网网站模板郑州网络推广平台
  • 重庆招投标综合信息网网络优化有前途吗
  • 网站建设公司的市场开发方案学百度推广培训
  • 做移动网站优化seo服务 文库
  • 苏州做网站建设公司网络黄页推广软件哪个好用
  • 曰本真人性做爰视网站短视频获客系统
  • 做网站背景的图片网站排名seo教程
  • 深圳网站建设icxun商业网站
  • 做美术鉴赏网站的心得河南网站推广优化
  • wordpress安装主题 ftpseo关键词排名网络公司
  • 网站网络投票建设步骤seo排名是什么
  • 上海品牌网站制作怎么优化自己网站
  • 国内哪家网站做的系统纯净百度青岛代理公司
  • 重庆忠县网站建设公司哪里有怎么做好市场宣传和推广