You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用Python估算推文缺失的geo-location地理位置方法咨询

无地理标签推文的地理位置推算Python实现方案

可利用的核心推算逻辑

推文地理位置推算通常基于数据集自带的其他关联特征实现,常用方案优先级从高到低如下:

  • 同用户历史位置复用:如果同一个用户发布的推文中有任意一条带有效经纬度标签,可直接将该位置复用到该用户所有无标签的推文中,该方法实现成本最低、准确率最高
  • 用户简介位置地理编码:提取用户个人主页填写的公开位置字段,通过地理编码工具转换为经纬度坐标
  • 推文文本地名实体提取:通过NER模型识别推文文本中出现的地名实体,再将实体转换为对应的经纬度坐标

具体实现代码

你已完成带经纬度标签数据的GeoDataFrame构建,后续补全缺失值的实现可参考如下:

1. 依赖导入

import pandas as pd
import geopandas as gpd
from shapely.geometry import Point
from geopy.geocoders import Nominatim
import spacy

2. 同用户历史位置复用

# 提取所有带有效经纬度的用户的位置映射
user_loc_map = gdf.dropna(subset=['geometry']).groupby('user_id')['geometry'].first().to_dict()

# 给缺失geometry的行匹配同用户的已有位置
df2['geometry'] = df2.apply(
    lambda x: user_loc_map.get(x['user_id'], x['geometry']) if pd.isna(x['geometry']) else x['geometry'],
    axis=1
)

3. 用户简介位置地理编码

geolocator = Nominatim(user_agent="twitter_loc_infer")

# 定义地理编码函数
def get_geo_from_loc_str(loc_str):
    if not loc_str or pd.isna(loc_str):
        return None
    try:
        location = geolocator.geocode(loc_str, timeout=10)
        return Point(location.longitude, location.latitude) if location else None
    except:
        return None

# 给仍然缺失位置的行用用户简介位置推导
mask = df2['geometry'].isna()
df2.loc[mask, 'geometry'] = df2.loc[mask, 'user_profile_location'].apply(get_geo_from_loc_str)

4. 推文文本地名实体提取推导

# 加载对应语言的NER模型,中文场景可加载中文预训练模型
nlp = spacy.load("zh_core_web_md")

def get_geo_from_text(text):
    if not text or pd.isna(text):
        return None
    doc = nlp(text)
    # 提取地理实体
    gpe_list = [ent.text for ent in doc.ents if ent.label_ == 'GPE']
    return get_geo_from_loc_str(gpe_list[0]) if gpe_list else None

# 给剩余缺失位置的行用推文文本推导
mask = df2['geometry'].isna()
df2.loc[mask, 'geometry'] = df2.loc[mask, 'text'].apply(get_geo_from_text)

5. 最终结果整理

# 构建统一的GeoDataFrame
final_gdf = gpd.GeoDataFrame(df2, crs="EPSG:4326", geometry='geometry')
# 可根据需求过滤无法推断位置的记录
final_gdf = final_gdf.dropna(subset=['geometry'])

内容的提问来源于stack exchange,提问作者Ankita

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.04 20:33:01