首页 > 基础资料 博客日记

大美祖国-使用Java盘点那些在地名中出现最多的汉字

2025-01-10 08:00:07基础资料围观45

这篇文章介绍了大美祖国-使用Java盘点那些在地名中出现最多的汉字,分享给大家做个参考,收藏Java资料网收获更多编程知识

目录

前言

一、地名数据准备

1、全国地名数据

二、使用Java进行汉字统计

1、汉字数据统计

2、汉字分割统计

三、浅谈地名汉字名次及其意义

1、山、城、江、河

 2、安、平、宁

 3、地名中的方位

四、总结 


前言

        在中国这片古老而又年轻的土地上,地名不仅仅是地理位置的标识,它们还承载着丰富的历史、文化和自然景观信息。每一个地名都像是一部微型的历史书,记录着这片土地的变迁和发展,讲述着一个个动人的故事。在这些地名中,有些汉字频繁出现,它们不仅构成了中国地名的特色,也反映了中国地名文化的深厚底蕴。

        地名作为信息的载体,在其命名过程中,往往带有一定的地域特色和风格。可以说,地名是一种特殊的文化,见证了一方百姓生存、发展的历程,是宝贵的民族文化遗产。它记载着人类探索世界、征服自然和发展自我的辉煌历史、民族的变迁和融合、自然环境的变化,是社会发展的一面镜子;它见证了历史,昭示着未来,有着丰富的地理、历史、语言、经济、民族和社会发展等科学内涵。

        “地名文化”作为一个概念,实际上包括了地名语词文化和地名实体文化两个层面。地名语词揭示了地名的语源文化内涵,地名实体文化体现了其所指代实体的地理、历史和乡土等。地名语词文化和地名实体文化互相依存,密不可分,二者共同构成了地名文化的全貌。地名文化记录着人类社会发展的历程、民族的变迁与融合、人们生活环境的发展变化,是重要的民族文化遗产。

        本文将带您走进这些在地名中出现频率最高的汉字,一起探索它们背后的故事和意义。文章以全国3327个区县及地市名称为例,将从这些区县以上的地名中选取出现次数最多的前20个汉字,重点讲解如何使用Java来自动统计单个汉字的词频,最终形成汉字的出现频率排名。如果您对地名也感兴趣,不妨来这里看看。

一、地名数据准备

        为了能准确的提取地名中出现次数最多的汉字,首先需要准备全国区县及以上的行政区划信息,在此数据基础上进行统计次数。

1、全国地名数据

        全国的地名数据,以我们导入到PostGIS空间数据库的数据为例,首先来看下保存到数据库中的所有数据。数据物理结构如下:

        表结构SQL如下:

CREATE TABLE "biz_geographic_name" (
  "pk_id" int8 NOT NULL,
  "name" varchar(255) COLLATE NOT NULL,
  "pinyin" varchar(255) COLLATE "pg_catalog"."default",
  "classz" varchar(4) COLLATE "pg_catalog"."default",
  "bz" varchar(100) COLLATE "pg_catalog"."default",
  "slx" varchar(20) COLLATE "pg_catalog"."default",
  "geom" "geometry" NOT NULL,
  CONSTRAINT "pk_biz_geographic_name" PRIMARY KEY ("pk_id")
);
CREATE INDEX "idex_biz_geographic_name_classz" ON "biz_geographic_name" USING btree (
  "classz" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST
);
CREATE INDEX "idx_biz_geographic_name_geom" ON "biz_geographic_name" USING gist (
  "geom" "public"."gist_geometry_ops_2d"
);
COMMENT ON COLUMN "biz_geographic_name"."pk_id" IS '主键id';
COMMENT ON COLUMN "biz_geographic_name"."name" IS '地名';
COMMENT ON COLUMN "biz_geographic_name"."pinyin" IS '汉语拼音';
COMMENT ON COLUMN "biz_geographic_name"."classz" IS 'classz';
COMMENT ON COLUMN "biz_geographic_name"."bz" IS '备注';
COMMENT ON COLUMN "biz_geographic_name"."slx" IS 'slx';
COMMENT ON COLUMN "biz_geographic_name"."geom" IS '空间对象';
COMMENT ON TABLE "biz_geographic_name" IS '地名基础信息表,用于存储中国范围内的地名信息';

        来看一下表中保存的数据如下:

select * from biz_geographic_name ;

        以上就是对地名数据的基本讲解,有了这些基础数据,后续就可以使用Java语言实现汉字的统计。

二、使用Java进行汉字统计

        有了全国的地名数据,接下来我们就使用Java语言对这3327条地名数据进行统计。然后对统计的结果进行分析和展示。

1、汉字数据统计

        这里以Java语言为例,在Jdk1.8中使用Stream来实现汉字的快速统计分析。统计的逻辑分三步,第一步是查询所有的地名数据列表,然后作为数据的输入,第二步是过滤掉干扰词,比如常见的“市”、“县”,“区”等。第三步是对过滤后的地名进行单个分割,然后计算其出现的频率,由于涉及的地名不是很多,需要分割的汉字的计算量不是很庞大,这里采用ConcurrentHashMap来进行汉字及其出现次数的统计,ConcurrentHashMap是线程安全的HashMap。

2、汉字分割统计

        具体的分割统计代码如下所示,这里以Java语言为例:

@Test
public void TestAddressFrequency() {
	List<GeographicName> cityList = geonameService.list();
	System.out.println(cityList.size());
	// 从City对象中提取城市名称,去除非汉字字符以及“市”、“区”等关键词
    String filteredCities = cityList.stream()
        .map(GeographicName::getName) // 提取城市名称
        .map(city -> removeNonChineseAndKeywords(city, "市", "区","县","自治州","地区","郡","盟","自治","旗","族")) // 去除非汉字和关键词
        .collect(Collectors.joining());

    // 使用ConcurrentHashMap并行统计汉字出现次数
    ConcurrentHashMap<Character, Integer> frequencyMap = new ConcurrentHashMap<>();
    IntStream.range(0, filteredCities.length()).parallel().forEach(i -> {
        char c = filteredCities.charAt(i);
        frequencyMap.compute(c, (k, v) -> v == null ? 1 : v + 1);
    });

    // 找出出现次数最多的前10个汉字
    int topN = 20;
    StringBuilder result = new StringBuilder("出现次数最多的前10个汉字及其次数:\n");
    frequencyMap.entrySet().stream()
        .sorted(Map.Entry.<Character, Integer>comparingByValue().reversed())
        .limit(topN).forEach(entry -> result.append(entry.getKey()).append(":     ").append(entry.getValue()).append("\n"));

     System.out.println(result.toString());
}

        最后我们来看一下在控制台中输出的汉字及其出现频次的前20名的汉字列表。其中,需要设置的过滤词为,(即这些字不进行汇总统计):

"市", "区","县","自治州","地区","郡","盟","自治","旗","族"

        最终得到的排名前20的汉字及其具体的频次如下:

汉字
数量178163131123120
汉字
 
数量114110888279
汉字西
数量7871665951
汉字
数量4848474646

        通过以上的汉字及其出现频次可以看到,去掉干扰词之后,出现的次数最多的汉字是山(178次)、城(163次)、阳(131)、安(123)、江(120)等。

三、浅谈地名汉字名次及其意义

        本节根据前面的汉字及其出现次数的统计结果,对地名汉字名次以及汉字蕴含的含义进行一些分析和探索。将从两个方面来分析这些数据,首先根据排名看一下包含该汉字的地名有哪些,然后解析一下该汉字的意义。

1、山、城、江、河

        众所周知,我们的城市很多都是依山而建或者傍水而建,通过上面的排名也可以看到。山、城、江、河都是出现次数比较靠前的。这里以山为例,看全国有哪些地方包含“山这个汉字”。查询的SQL如下:

select * from biz_geographic_name where name like '%山%';

        然后我们的PgAdmin自带的地图浏览器中对数据进行浏览,可以看到如下界面:

        可以看到,包含山的区县主要集中在东部城市,基本都是分布在胡焕庸线的一边。 而关于山、城、河、湖的意义,可以查阅相关的信息:

        山,作为自然界的壮丽景观,在中国地名中同样占据着重要位置。“山”字地名遍布全国,如山东、山西、广东的山区等,这些地名不仅指代了具体的山脉,也象征着这些地区的地理特征和自然风光。而“峰”字地名,如黄山、庐山、峨眉山等,更是以其独特的山峰景观而闻名,成为了中国旅游的标志性景点。在中国,江河湖海是自然地理的重要组成部分,也是地名中不可或缺的元素。“江”和“河”作为水系的名称,在地名中的出现频率极高。长江、黄河作为中国的两大母亲河,不仅在地理上占据重要地位,也在文化和历史上具有深远的影响。长江流域的“江”字地名,如江苏、江西、浙江等,不仅代表了地理位置,也象征着这片土地的富饶和繁荣。黄河作为中华文明的发源地之一,其流域的“河”字地名,如河南、河北,同样承载着厚重的历史和文化。

 2、安、平、宁

        与前面的山、城、河、湖等自然景观不一样,接下来的汉字将一些美好的寓意包含在汉字当中。比如古都西安、六安、雅安、革命圣地延安等等,包含了我们的深切希望。在PostGIS中查询包含汉字“安”的城市信息SQL语句如下:

select * from biz_geographic_name where name like '%安%';

        执行之后,看到的结果如下所示:

        再来看一下其空间分布,

        其空间分布跟山、城等基本类似,都是分布在胡焕庸线的一侧。 关于“安”字的寓意:

        安这个字的本义是:安定;安全;安稳!在甲骨文的象形文字中,安字的整个字的字形字意,就是一个妇女从室外走进室内安坐了下来,表示的是“女坐室内”的意思。女子坐在室内就可以免受野地里或室外的毒蛇猛兽们的侵害,使身心得到安宁。我们的老祖先们在自然实践中摸索出了适应自然界人类天敌的生存经验,所以发明了“安全”的“安”这个字,以“女坐室内为安”形象的提示人类注意人身安全。在我国流行的古代阴阳风水理论中,那种三面环山,一面开口的上等风水就叫做"安"。而能够选择到一个背后三面环山,而前方地势开阔,另外加上有一条河水横穿房前的这样一个地方,那这样一块地就无疑是一块上等的风水宝地了。在我国,大到城市;中到乡镇;小到村庄,自古就有保护女人,使之安稳安全,一切以“安”为好,以“安”为主。这就决定了人们从古到今都喜欢以“安”字城市乡镇名以及人名了。

 3、地名中的方位

        表示方位的汉字,最常见的有东、南、西、北,在排名前20的汉字中,刚好这四个字都有。比如南京、西安、北京、东莞等。在数据库中查看带东字的sql如下:

select * from biz_geographic_name where name like '%东%';

        同样来看一下“东”字的空间分布。

        关于表示位置的汉字的寓意如下:

        在中国地名中,“东”和“西”字的使用也颇为频繁。这些字不仅表示方位,还常常与地理位置、历史沿革和文化特色有关。例如,“东”字地名如山东、东莞等,往往位于某个区域的东部;而“西”字地名如西安、西宁等,则多位于西部地区。这些地名不仅方便了人们对地理位置的识别,也反映了中国地名的多样性和地域特色。 

四、总结 

        以上就是本文的主要内容, 本文将带您走进这些在地名中出现频率最高的汉字,一起探索它们背后的故事和意义。文章以全国3327个区县及地市名称为例,将从这些区县以上的地名中选取出现次数最多的前20个汉字,重点讲解如何使用Java来自动统计单个汉字的词频,最终形成汉字的出现频率排名。

        通过对这些在地名中出现频率最高的汉字的盘点,我们不仅能够了解到中国地名的构成和特点,还能够从中窥见中国地名文化的丰富性和多样性。每一个地名都是一个故事,每一个汉字都是一段历史。在这些地名的背后,是中国悠久的历史、灿烂的文化和壮丽的山河。让我们在探索这些地名的同时,也更加深入地了解和热爱我们伟大的祖国。行文仓促,难免有许多不足之处,如有不足,在此还恳请各位专家朋友在评论区不吝指出,不胜感激。


文章来源:https://blog.csdn.net/yelangkingwuzuhu/article/details/144918929
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:jacktools123@163.com进行投诉反馈,一经查实,立即删除!

标签:

相关文章

本站推荐

标签云