本文主要是介绍地理编码应用程序实例-利用LanceDB、Pgvector构建地址查询应用,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
介绍
在本文中,我的目标是开发一个利用矢量数据库来查询地址和位置数据的应用程序。
数据准备和向量嵌入
我们将使用受地震影响的城市的数据进行应用。
要安装矢量嵌入库,我们需要运行以下命令:
pip install pandas geopandas pyarrow transformer torch
如果您在安装pytorch库时遇到错误,可以从这里下载。
让我们导入我们安装的库:
from transformers import AutoTokenizer, AutoModel
import torch
import pandas as pd
import geopandas as gpd
读取数据:
df = pd.read_csv("bina.csv")
df.columns
"""
['il', 'ilce', 'mahalle', 'sokak', 'binaNo', 'x', 'y']
"""
坐标系变换:
gdf = gpd.GeoDataFrame(df,geometry=gpd.points_from_xy(df["x"],df["y"]),crs=4326)
gdf = gdf.to_crs("EPSG:3857")
df["x"] = gdf.geometry.x
df["y"] = gdf.geometry.y
组合地址信息并根据坐标创建向量:
df["adres"] = df[['il', 'ilce', 'mahalle', 'sokak', 'binaNo']].apply(lambda x: f"{x['mahalle']} mahallesi {x['sokak']} no {x['binaNo']} {x['ilce']} {x['il']} ",axis=1)
df["vector_geom"] = df[["x","y"]].apply(lambda x: [x["x"],x["y"]],axis=1)
df.to_csv("bina.csv",index=False)
df.sample(10)
它包含城市、区、社区、街道、建筑物号码和位置信息。
这篇关于地理编码应用程序实例-利用LanceDB、Pgvector构建地址查询应用的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!