#abbreviation #geocoding #language #word #different #short #tokens

geocoder-abbreviations

按语言和类型分类的地理编码缩写词

8个版本 (稳定版)

4.6.8 2021年5月12日
4.6.0 2021年1月5日
4.3.1 2020年9月2日
4.3.0 2020年5月29日
0.1.0 2020年4月17日

#143 in 地理空间

MIT 许可证

41KB
547

geocoder-abbreviations

地理编码缩写词按语言分组。这些是用于地理编码的有用的损失性词替换。

tokens 目录中,每个JSON文件包含一种语言的词等效列表,并以语言代码命名。

每个组包含一组被认为彼此语义等效的标记——它们具有相同的意思,但其中一些可能是缩写、同义词等。不同的组可能在它们包含的标记中相互重叠,如果相同的缩写可以用来表示语义上不同的概念;例如,在英语中,“Cl”是“Clinic”和“Close”的缩写,但“Clinic”和“Close”并不等价,因此 en.json 文件包含两个不同的组,都包含“Cl”标记。

每个组还包含可能有助于决定如何使用相关标记列表的附加属性。它们是

必需属性

  • tokens (字符串数组):组中包含的标记
  • full (字符串):在标记列表中混合缩写和完整单词时,首选的完整单词
  • canonical (字符串):在标记列表中混合缩写和完整单词时,首选的缩写

可选属性

  • note (字符串):关于组的用途的人类可读性注释;有时包含非英语单词的英文翻译
  • onlyCountries (字符串数组):限制替换使用的ISO国家代码列表
  • onlyLayers (字符串数组):限制等效使用的层数据类型列表
  • preferFull (布尔值):指示是否首选完整单词的标志;如果存在,则表示缩写不常见
  • regex (布尔值): 表示替换内容包含正则表达式。不存在应解释为 false。如果为 false,则假定 单词没有转义用于正则表达式(例如,点号只是点号),希望使用它们进行正则表达式操作的消费者应在使用之前进行自己的转义。
  • reduceRelevance (布尔值): 表示替换将使用降低的相关性进行索引。
  • skipBoundaries (布尔值): 表示替换不需要在单词边界处匹配。不存在应解释为 false
  • skipDiacriticStripping (布尔值): 表示替换不应用忽略重音符号。不存在应解释为 false
  • spanBoundaries (数字): 如果存在,表示建议的替换必须跨越分词边界才能执行,并指定跨越了多少个边界。
  • type (字符串): 表示单词组的语义类别(例如,街道或道路的类型、数字、方位等)。当前允许的值
    • box: 邮政信箱或类似标志(例如,'PO Box', 'Boite')
    • cardinal: 方位(例如,'North', 'Östra')
    • number: 数字(例如,'eight', '9', 'trois')
    • ordinal: 基数词(例如,'fifth', 'deuxième')
    • unit: 表示单位/楼层/子地址标识的模式(例如,'Apt [0-9]+')
    • way: 类似 'street', 'road', 'avenue' 的单词——交通道路

用法

geocoder-abbreviations 作为 Node.js 包和 Rust crate 可用。

Node.js 包

index.js 公开一个带有可选 lang 参数的单个函数,如果为 null,则返回按语言分隔的所有标记的映射。它接受一个可选的第二布尔参数,用于指定是否包括包含单个标记的组,以及一个可选的第三布尔参数,用于指定是否返回包括所有元数据的完整/高级表示,或者一个仅包含标记且无元数据、与早期版本兼容的简单版本。

有关更多详细信息,请参阅 index.js 的 JSDoc

Rust crate

geocoder-abbreviations 目前尚未发布在 crates.io 上。要将它添加到您的项目中,请将以下内容添加到您的 Cargo.toml 文件中 [dependencies]

geocoder-abbreviations = { git = "https://github.com/mapbox/geocoder-abbreviations", rev = "master" }

依赖项

~6–15MB
~177K SLoC