09-国土TXT格式

news/2025/11/26 20:23:49/文章来源:https://www.cnblogs.com/znlgis/p/19274558

国土TXT格式

概述

国土TXT格式是中国自然资源部门使用的地块坐标文本格式,主要用于土地调查、不动产登记等业务场景。理解并正确处理该格式是从事国土相关GIS开发的必备技能。

文件格式

基本结构

国土TXT文件由多个部分组成:

[扩展信息](可选)
...[属性描述]
格式版本号=
数据产生单位=自然资源部
数据产生日期=2024-01-01
坐标系=2000国家大地坐标系
几度分带=3
投影类型=高斯克吕格
计量单位=米
带号=38
精度=0.01
转换参数=0,0,0,0,0,0,0[地块坐标]
13,1234.56,地块001,土地名称,面,图幅号,住宅用地,0101,,1,B,C,备注,@
J1,1,3456789.12,123456.78
J2,1,3456790.12,123457.78
...
13,1234.56,地块002,土地名称,面,...,@
...

属性描述说明

字段 说明 示例
格式版本号 文件格式版本 空或版本号
数据产生单位 数据生产单位名称 自然资源部
数据产生日期 数据生产日期 2024-01-01
坐标系 使用的坐标系 2000国家大地坐标系
几度分带 3度或6度分带 3
投影类型 投影方式 高斯克吕格
计量单位 坐标单位
带号 投影带号 38
精度 坐标精度 0.01
转换参数 七参数转换值 0,0,0,0,0,0,0

地块数据结构

地块数据行格式:属性值1,属性值2,...,@

默认字段顺序:

  1. JZDS - 界址点数
  2. DKMJ - 地块面积(公顷)
  3. DKBH - 地块编号
  4. DKMC - 地块名称
  5. JLTXSX - 记录图形属性(面/线/点)
  6. TFH - 图幅号
  7. DKYT - 地块用途
  8. DLBM - 地类编码
  9. TBLX - 图斑类型
  10. DL - 地类
  11. GZQ - 改造前质量等别
  12. GZH - 改造后质量等别
  13. BZ - 备注

坐标点格式

点号,圈号,Y坐标,X坐标

  • 点号:点的序号,J1、J2或1、2等
  • 圈号:环的序号,1为外环,2及以上为内环(岛洞)
  • Y坐标:北方向坐标(通常是大数)
  • X坐标:东方向坐标(带号+坐标值)

注意:国土TXT中Y/X与常见GIS坐标系的X/Y是反的!

数据模型

TxtLayer

/*** TXT图层*/
@Data
public class TxtLayer implements Serializable {private String name;          // 图层名称private String gsbbh;         // 格式版本号private String sjscdw;        // 数据产生单位private String sjscrq;        // 数据产生日期private String zbx;           // 坐标系private String jdfd;          // 几度分带private String tylx;          // 投影类型private String jldw;          // 计量单位private String dh;            // 带号private String jd;            // 精度private String zhcs;          // 转换参数private List<TxtExtInfo> exts;      // 扩展信息private List<TxtFeature> features;  // 要素列表
}

TxtFeature

/*** TXT要素*/
@Data
public class TxtFeature implements Serializable {private List<String> values;              // 属性值列表private List<TxtCoordinate> coordinates;  // 坐标点列表
}

TxtCoordinate

/*** TXT坐标点*/
@Data
public class TxtCoordinate implements Serializable {private String dh;    // 点号private Integer qh;   // 圈号private Double y;     // Y坐标private Double x;     // X坐标
}

文件读取

解析TXT文件

/*** 加载TXT图层*/
public static TxtLayer loadTxt(String txtPath) {File file = new java.io.File(txtPath);Charset encoding = EncodingUtil.getFileEncoding(file);// 读取并清理空行List<String> txtLines = new ArrayList<>();for (String line : FileUtil.readLines(file, encoding)) {String trim = line.trim();if (CharSequenceUtil.isBlank(trim)) continue;// 处理BOM头if (trim.startsWith("\uFEFF")) {trim = trim.substring(1);}txtLines.add(trim);}// 检查必要部分if (txtLines.stream().noneMatch("[属性描述]"::equals)) {throw new RuntimeException("缺少[属性描述]");}if (txtLines.stream().noneMatch("[地块坐标]"::equals)) {throw new RuntimeException("缺少[地块坐标]");}// 按模块分组LinkedHashMap<String, List<String>> txtMap = new LinkedHashMap<>();String currKey = null;for (String txtLine : txtLines) {if (txtLine.startsWith("[") && txtLine.endsWith("]")) {currKey = txtLine;txtMap.put(txtLine, new ArrayList<>());} else {txtMap.get(currKey).add(txtLine);}}// 解析各模块TxtLayer txtLayer = new TxtLayer();txtLayer.setName(FileUtil.getName(txtPath));parseAttributeDescription(txtLayer, txtMap.get("[属性描述]"));parseCoordinates(txtLayer, txtMap.get("[地块坐标]"));parseExtInfo(txtLayer, txtMap);return txtLayer;
}

解析属性描述

private static void parseAttributeDescription(TxtLayer txtLayer, List<String> lines) {for (String line : lines) {String[] split = line.split("=");if (split.length == 0 || split.length > 2) {throw new RuntimeException("txt文件格式不正确");}String key = split[0].trim();String value = split.length == 2 ? split[1].trim() : null;switch (key) {case "格式版本号": txtLayer.setGsbbh(value); break;case "数据产生单位": txtLayer.setSjscdw(value); break;case "数据产生日期": txtLayer.setSjscrq(value); break;case "坐标系": txtLayer.setZbx(value); break;case "几度分带": txtLayer.setJdfd(value); break;case "投影类型": txtLayer.setTylx(value); break;case "计量单位": txtLayer.setJldw(value); break;case "带号": txtLayer.setDh(value); break;case "精度": txtLayer.setJd(value); break;case "转换参数": txtLayer.setZhcs(value); break;default:throw new RuntimeException("txt文件格式不正确,未知字段:" + key);}}
}

解析坐标数据

private static void parseCoordinates(TxtLayer txtLayer, List<String> lines) {List<TxtFeature> features = new ArrayList<>();// 按地块分组(以@结尾的行是地块属性行)LinkedHashMap<String, List<String>> zbMap = new LinkedHashMap<>();String currZbKey = null;for (String line : lines) {if (line.endsWith("@")) {currZbKey = line;zbMap.put(currZbKey, new ArrayList<>());} else {zbMap.get(currZbKey).add(line);}}// 解析每个地块zbMap.forEach((zbKey, zbLines) -> {TxtFeature txtFeature = new TxtFeature();// 解析属性值List<String> fields = CharSequenceUtil.split(zbKey, ",");List<String> values = fields.subList(0, fields.size() - 1);txtFeature.setValues(values);// 解析坐标点List<TxtCoordinate> coordinates = new ArrayList<>();zbLines.forEach(zbLine -> {List<String> zbLineList = new ArrayList<>(CharSequenceUtil.split(zbLine, ","));if (zbLineList.size() != 4) {throw new RuntimeException("txt坐标点格式不正确:" + zbLine);}TxtCoordinate txtCoordinate = new TxtCoordinate();txtCoordinate.setDh(zbLineList.get(0));txtCoordinate.setQh(NumberUtil.parseInt(zbLineList.get(1)));txtCoordinate.setY(NumberUtil.parseDouble(zbLineList.get(2)));txtCoordinate.setX(NumberUtil.parseDouble(zbLineList.get(3)));coordinates.add(txtCoordinate);});txtFeature.setCoordinates(coordinates);features.add(txtFeature);});txtLayer.setFeatures(features);
}

TXT转WktLayer

/*** TxtLayer转WktLayer*/
public static WktLayer parseTxtLayerToWktLayer(TxtLayer txtLayer, List<WktField> wktFields) {// 默认字段定义if (wktFields == null) {wktFields = getDefaultFields();}WktLayer wktLayer = new WktLayer();wktLayer.setYwName("TXT");wktLayer.setZwName(txtLayer.getName());// 根据带号确定坐标系int wkid = 4488 + NumberUtil.parseInt(txtLayer.getDh());wktLayer.setWkid(wkid);wktLayer.setTolerance(CrsUtil.getTolerance(wkid));wktLayer.setGeometryType(GeometryType.MULTIPOLYGON);wktLayer.setFields(wktFields);// 转换要素List<WktFeature> wktFeatures = new ArrayList<>();for (TxtFeature txtFeature : txtLayer.getFeatures()) {WktFeature wktFeature = convertFeature(txtFeature, wktFields, wkid);wktFeatures.add(wktFeature);}wktLayer.setFeatures(wktFeatures);wktLayer.check();return wktLayer;
}/*** 转换单个要素*/
private static WktFeature convertFeature(TxtFeature txtFeature, List<WktField> wktFields, int wkid) {// 按圈号分组坐标点LinkedHashMap<Integer, List<Coordinate>> coordinateMap = new LinkedHashMap<>();for (TxtCoordinate zb : txtFeature.getCoordinates()) {int qh = zb.getQh();List<Coordinate> coordinates = coordinateMap.computeIfAbsent(qh, k -> new ArrayList<>());// 注意:TXT中Y是北方向,X是东方向// JTS中X是东方向,Y是北方向coordinates.add(new Coordinate(zb.getX(), zb.getY()));}// 构建多边形GeometryFactory factory = new GeometryFactory(new PrecisionModel(PrecisionModel.FLOATING));LinearRing shell = null;LinearRing[] holes = null;if (coordinateMap.size() > 1) {holes = new LinearRing[coordinateMap.size() - 1];}int index = 0;for (Map.Entry<Integer, List<Coordinate>> entry : coordinateMap.entrySet()) {List<Coordinate> coordinates = entry.getValue();// 确保闭合if (!coordinates.get(0).equals2D(coordinates.get(coordinates.size() - 1))) {coordinates.add(coordinates.get(0));}LinearRing ring = factory.createLinearRing(ArrayUtil.toArray(coordinates, Coordinate.class));if (index == 0) {shell = ring;} else if (holes != null) {holes[index - 1] = ring;}index++;}Polygon polygon = factory.createPolygon(shell, holes);// 设置属性List<WktFieldValue> wktFieldValues = new ArrayList<>();for (int i = 0; i < txtFeature.getValues().size() && i < wktFields.size(); i++) {WktFieldValue fv = new WktFieldValue();fv.setField(wktFields.get(i));fv.setValue(txtFeature.getValues().get(i));wktFieldValues.add(fv);}WktFeature wktFeature = new WktFeature();wktFeature.setFieldValues(wktFieldValues);wktFeature.setWfId(IdUtil.simpleUUID());wktFeature.setWkt(ESRIGeometryUtil.simplify(polygon.toText(), wkid));return wktFeature;
}

WktLayer转TXT

/*** WktLayer转TxtLayer*/
public static TxtLayer parseWktLayerToTxtLayer(WktLayer wktLayer, TxtLayer msAndExtInfo, List<String> fieldNames, Integer dh) {TxtLayer txtLayer = new TxtLayer();txtLayer.setName(wktLayer.getZwName() != null ? wktLayer.getZwName() : wktLayer.getYwName());// 设置属性描述(从模板或默认值)txtLayer.setGsbbh(getOrDefault(msAndExtInfo, TxtLayer::getGsbbh, ""));txtLayer.setSjscdw(getOrDefault(msAndExtInfo, TxtLayer::getSjscdw, "自然资源部"));txtLayer.setSjscrq(getOrDefault(msAndExtInfo, TxtLayer::getSjscrq, DatePattern.NORM_DATE_FORMAT.format(DateUtil.date())));txtLayer.setZbx(getOrDefault(msAndExtInfo, TxtLayer::getZbx, "2000国家大地坐标系"));txtLayer.setJdfd(getOrDefault(msAndExtInfo, TxtLayer::getJdfd, "3"));txtLayer.setTylx(getOrDefault(msAndExtInfo, TxtLayer::getTylx, "高斯克吕格"));txtLayer.setJldw(getOrDefault(msAndExtInfo, TxtLayer::getJldw, "米"));txtLayer.setJd(getOrDefault(msAndExtInfo, TxtLayer::getJd, "0.01"));txtLayer.setZhcs(getOrDefault(msAndExtInfo, TxtLayer::getZhcs, "0,0,0,0,0,0,0"));// 默认字段if (fieldNames == null || fieldNames.isEmpty()) {fieldNames = getDefaultFieldNames();}// 确定坐标系Integer wkid = null;if (dh != null) {wkid = CrsUtil.getProjectedWkid(dh);}// 转换要素List<TxtFeature> txtFeatures = new ArrayList<>();for (WktFeature wktFeature : wktLayer.getFeatures()) {TxtFeature txtFeature = convertToTxtFeature(wktFeature, wktLayer, fieldNames, wkid);txtFeatures.add(txtFeature);// 更新带号if (dh == null) {dh = CrsUtil.getDh(GeometryConverter.wkt2Geometry(wktFeature.getWkt()));wkid = CrsUtil.getProjectedWkid(dh);}}txtLayer.setFeatures(txtFeatures);txtLayer.setDh(String.valueOf(dh));return txtLayer;
}

文件写入

/*** 保存TXT图层*/
public static void saveTxt(TxtLayer txtLayer, String txtPath) {List<String> txtLines = new ArrayList<>();// 写入扩展信息if (txtLayer.getExts() != null && !txtLayer.getExts().isEmpty()) {for (TxtExtInfo extInfo : txtLayer.getExts()) {txtLines.add("[" + extInfo.getName() + "]");for (Map.Entry<String, String> entry : extInfo.getFields().entrySet()) {txtLines.add(entry.getKey() + "=" + entry.getValue());}}}// 写入属性描述txtLines.add("[属性描述]");txtLines.add("格式版本号=" + txtLayer.getGsbbh());txtLines.add("数据产生单位=" + txtLayer.getSjscdw());txtLines.add("数据产生日期=" + txtLayer.getSjscrq());txtLines.add("坐标系=" + txtLayer.getZbx());txtLines.add("几度分带=" + txtLayer.getJdfd());txtLines.add("投影类型=" + txtLayer.getTylx());txtLines.add("计量单位=" + txtLayer.getJldw());txtLines.add("带号=" + txtLayer.getDh());txtLines.add("精度=" + txtLayer.getJd());txtLines.add("转换参数=" + txtLayer.getZhcs());// 写入地块坐标txtLines.add("[地块坐标]");for (TxtFeature txtFeature : txtLayer.getFeatures()) {// 属性行txtLines.add(CharSequenceUtil.join(",", txtFeature.getValues()) + ",@");// 坐标点for (TxtCoordinate coord : txtFeature.getCoordinates()) {txtLines.add(CharSequenceUtil.join(",", coord.getDh(), coord.getQh(),NumUtil.getPlainString(coord.getY()),NumUtil.getPlainString(coord.getX())));}}FileUtil.writeLines(txtLines, txtPath, StandardCharsets.UTF_8);
}

实践案例

案例1:TXT转Shapefile

/*** 国土TXT转Shapefile*/
public void txt2Shp(String txtPath, String shpPath) {// 读取TXTTxtLayer txtLayer = TxtLayerUtil.loadTxt(txtPath);// 转换为WktLayerWktLayer wktLayer = TxtLayerUtil.parseTxtLayerToWktLayer(txtLayer, null);// 写入ShapefileWktLayerConverter.toShapefile(wktLayer, shpPath, GisEngineType.GEOTOOLS);
}

案例2:Shapefile转TXT

/*** Shapefile转国土TXT*/
public void shp2Txt(String shpPath, String txtPath, Integer targetDh) {// 读取ShapefileWktLayer wktLayer = WktLayerConverter.fromShapefile(shpPath, null, null, GisEngineType.GEOTOOLS);// 转换为TxtLayerTxtLayer txtLayer = TxtLayerUtil.parseWktLayerToTxtLayer(wktLayer, null, null, targetDh);// 保存TXTTxtLayerUtil.saveTxt(txtLayer, txtPath);
}

案例3:批量转换

/*** 批量TXT转Shapefile*/
public void batchConvert(String inputDir, String outputDir) {File dir = new File(inputDir);File[] txtFiles = dir.listFiles((d, name) -> name.toLowerCase().endsWith(".txt"));if (txtFiles == null) return;for (File txtFile : txtFiles) {try {String shpName = FileUtil.mainName(txtFile) + ".shp";String shpPath = outputDir + File.separator + shpName;txt2Shp(txtFile.getAbsolutePath(), shpPath);System.out.println("转换成功: " + txtFile.getName());} catch (Exception e) {System.err.println("转换失败: " + txtFile.getName() + " - " + e.getMessage());}}
}

案例4:TXT数据验证

/*** 验证TXT数据*/
public List<String> validateTxt(String txtPath) {List<String> errors = new ArrayList<>();try {TxtLayer txtLayer = TxtLayerUtil.loadTxt(txtPath);WktLayer wktLayer = TxtLayerUtil.parseTxtLayerToWktLayer(txtLayer, null);for (WktFeature feature : wktLayer.getFeatures()) {Geometry geom = GeometryConverter.wkt2Geometry(feature.getWkt());// 检查几何有效性if (!geom.isValid()) {errors.add("地块 " + feature.getWfId() + " 几何无效");}// 检查面积double area = geom.getArea();if (area <= 0) {errors.add("地块 " + feature.getWfId() + " 面积为0或负数");}}} catch (Exception e) {errors.add("文件解析错误: " + e.getMessage());}return errors;
}

案例5:坐标系转换

/*** TXT坐标系转换*/
public void transformTxt(String inputPath, String outputPath, Integer sourceDh, Integer targetDh) {// 读取并转换为WktLayerTxtLayer txtLayer = TxtLayerUtil.loadTxt(inputPath);WktLayer wktLayer = TxtLayerUtil.parseTxtLayerToWktLayer(txtLayer, null);// 坐标转换int targetWkid = CrsUtil.getProjectedWkid(targetDh);wktLayer = CrsUtil.reproject(wktLayer, targetWkid);// 转回TXT格式TxtLayer newTxtLayer = TxtLayerUtil.parseWktLayerToTxtLayer(wktLayer, txtLayer, null, targetDh);// 保存TxtLayerUtil.saveTxt(newTxtLayer, outputPath);
}

常见问题

1. 坐标顺序问题

问题:TXT中Y是北方向,X是东方向,与常见GIS软件相反

解决:转换时注意坐标对应关系

// TXT → JTS
new Coordinate(txtCoord.getX(), txtCoord.getY())  // X是东,Y是北// JTS → TXT  
txtCoord.setX(coordinate.getX());  // 东方向
txtCoord.setY(coordinate.getY());  // 北方向

2. 内环方向

问题:多边形内环(岛洞)方向错误导致几何无效

解决:确保外环逆时针,内环顺时针,或使用几何修复

3. 编码问题

问题:中文乱码

解决:自动检测文件编码,输出使用UTF-8

4. 精度损失

问题:坐标精度在转换过程中损失

解决:使用足够的小数位数(建议保留2-3位)

小结

本章介绍了国土TXT格式的核心内容:

  1. 文件结构:属性描述、扩展信息、地块坐标三个部分
  2. 数据模型:TxtLayer、TxtFeature、TxtCoordinate
  3. 格式转换:TXT与WktLayer互转
  4. 读写操作:解析和生成TXT文件
  5. 实践案例:格式转换、数据验证、坐标转换

下一章将介绍不同数据格式之间的转换方法总结。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/977619.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

P30_利用GUP训练(二)

P30_利用GUP训练(二)1.代码实战: (1)调用.to()方法即可。 .to(device) device = torch.device("cpu") torch.device("cuda")点击查看代码 #12.定义训练的设备 # device = torch.device("…

重磅!图灵奖得主 Bengio 领衔 30 + 顶流学者联合发文!首次给 AGI 下量化定义

论文标题:A Definition of AGI 作者团队:人工智能安全中心、加州大学伯克利分校、Morph实验室、密歇根大学等 发布时间:2025年10月21日 👉一键直达论文 👉Lab4AI大模型实验室论文阅读 ✅Lab4AI平台提供AI导读和…

GitHub Actions安全漏洞:GITHUB_TOKEN部分泄露风险分析

本文详细分析了CVE-2025-31479安全漏洞,该漏洞会导致GitHub Actions中的GITHUB_TOKEN在异常输出中部分泄露,可能被攻击者利用进行供应链攻击,影响仓库安全性。CVE-2025-31479:canonical/get-workflow-version-acti…

使用 C# 自动创建和格式化 Word 表格

要在 C# 中自动创建和格式化 Word 表格,可借助Microsoft.Office.Interop.Word库或DocX(更轻量,无需安装 Office)。以下分别介绍两种方案的实现方法: 方案一:使用 Microsoft.Office.Interop.Word(需安装 Office)…

Mac SPSS 26 dmg 安装步骤详解 简单易懂一步步教你装(附安装包)

Mac SPSS 26 dmg 安装步骤详解 简单易懂一步步教你装(附安装包)​ SPSS 26​ 是一款专门用来分析数据的软件,很多人做统计、调查、市场研究时会用到。它能帮你算平均数、百分比、做各种图表,还能跑复杂的分析模型,…

NeurIPS 2025Mamba引爆3D重建!MVSMamba:效率与精度双双超越Transformer

论文标题:MVSMamba: Multi-View Stereo with State Space Model 作者团队:北京科技大学 发布时间:2025年11月4日 👉一键直达论文 👉Lab4AI大模型实验室论文阅读 ✅Lab4AI平台提供AI导读和AI翻译等工具,辅助论文…

StackOverflow已经死亡了吗

StackOverflow已经死亡了吗 最近,一张有趣的图片在X平台上引发了程序员社区的热烈讨论。用户@_devJNS将StackOverflow比作《忍者神龟》中的斯普林特大师,而ChatGPT、Claude、DeepSeek和Gemini则化身为新一代忍者。配…

零代码,分钟级定制:我用LLaMA-Factory轻松造了个“票务专家”AI

传统的基于关键词匹配的聊天机器人难以理解用户复杂的、多意图的自然语言查询(例如,“我想下周从北京飞往上海,看看上午的机票,最好是不用太早起床的航班,并且帮我选一个靠过道的位置”),导致用户体验不佳,转而…

2025AI培训权威排名:AI时代新商学引领行业变革

行业痛点分析 在当前的AI培训领域,技术挑战层出不穷。随着人工智能技术的快速发展,企业对具备AI技能的人才需求日益增加,然而,传统的培训模式往往难以跟上这一趋势。数据显示,超过60%的企业反映,现有的培训内容与…

Manim进阶:用背景图片让你的数学视频脱颖而出

做Manim动画久了,你是否厌倦了那万年不变的黑色虚空? 很多初学者(甚至老手)都想给动画加个背景图,但往往会遇到两个问题:怎么加? 是把图片放进去,还是设置相机? 看不清! 背景花里胡哨,前面的文字公式瞬间“…

2025 AI 培训机构权威推荐榜排名揭晓:AI时代新商学引领行业破局之路

2025 AI 培训机构权威推荐榜排名揭晓:AI时代新商学引领行业破局之路 近期,2025 AI 培训机构覆盖度权威推荐榜正式揭晓,这一榜单不仅反映了各机构在市场中的影响力,也凸显出当前 AI 培训机构领域面临的诸多挑战。 行…

小程序商城客服系统传递咨询产品信息卡片,传递订单信息卡片

vx:llike620 gofly.v1kf.com你是不是也遇到过这样的困境:用户在小程序商城里看中一款产品,想要咨询客服,却只能干巴巴地发一句“这个产品怎么样?”——客服完全不知道用户在看哪个商品,只能机械回复:“亲,请问您…

Lab4AI与国内顶会展开合作!一键体验 CVPR/ICCV/NeurIPS 顶会论文复现

01 Lab4AI与国内顶级会议的论文复现合作 Lab4AI 大模型实验室是一个专注于高性能 GPU 应用场景的实践型内容社区与实操平台,致力于构建“论文 → 代码 → 教学 → 传播 → 孵化”的完整闭环。平台涵盖论文复现、项目实…

委托和事件的区别

1.本质:委托是类型安全的函数指针,可以指向一个或多个方法。事件是对委托的封装,提供受控的发布-订阅模型。 2.关键字:delegate和event。 3.访问权限:委托公有或私有,可被外部直接调用或赋值。事件外部只能通过 …

2025:如何利用AI不再错过任何一个opening job - M-T

img { max-width: 60% !important; height: auto; display: block; margin: 0 auto 1em } .markdown-body img { max-width: 60% !important } 核心:利用MCP server省钱省力爬job list的邪修打法,亲测Indeed,LinkedI…

SIGIR会议聚焦包容性AI与多语言技术

本文介绍了SIGIR会议上关于构建更包容AI系统的研究,包括多语言仇恨言论检测技术和基于社交媒体的灾害检测系统,通过跨语言学习和特定领域嵌入技术提升模型性能。某机构在SIGIR:迈向更包容的AI SIGIR 2021会议即将召…

NeurlPS 2024! 扩散模型用于世界建模:视觉细节在Atari环境中至关重要| 计算机视觉 | 强化学习2

01 论文概述 论文名称:Diffusion for World Modeling: Visual Details Matter in Atari ——扩散模型用于世界建模:视觉细节在 Atari 环境中至关重要 👉一键直达论文 👉Lab4AI大模型实验室论文🌟 简介 在基于模…

48(11.28)

上了网课形势政策

Unclutter 黑五 Mac App 大包测评

今年 Unclutter 还是准时推出了 BLACK FRIDAY MAC APPS COLLECTION,这也是每年黑五 MacOS 软件最值得的大包之一。考虑到今年 BundleHunt 还表现得较为拉跨的情况下,这个大包的性价比就显得更高了。直接拿下整个大包…

详细介绍:VS Code 新旧版本 Remote-SSH 内网离线连接服务器方法(版本 ≤ 1.78.x 及 ≥ 1.79.0)

详细介绍:VS Code 新旧版本 Remote-SSH 内网离线连接服务器方法(版本 ≤ 1.78.x 及 ≥ 1.79.0)2025-11-26 20:01 tlnshuju 阅读(0) 评论(0) 收藏 举报pre { white-space: pre !important; word-wrap: normal !i…