0%

日式城市随机命名

最近在天际线中建造日式城市时,经常需要为城市中的行政区划和轨道线路等命名,那么如何创作出合适的日式城市名称呢?

首先,最简单的办法,就是从地图中寻找灵感,如果是一些小地方的地名,直接借用也无妨。个人比较推荐的是Bing地图,可以非常便利的查看世界各地的详情。顺便贴一下网址:https://cn.bing.com/maps?cc=hk

其次,可以利用已有地名衍生类比得出新的地名,比如更改一些方位词、表颜色等特征的形容词。

但是,灵感终究会枯竭,我又发现,日本许多姓氏来自于地名,自然也可以反过来利用。我找到了这个网站,收录了日本绝大多数的姓氏:https://htmfiles.englishhome.org/Japsurnames/Japsurnames.htm

可能这样查看也不是很方便,于是我利用Python,简单写了一个爬取姓氏信息并随机给出姓氏与对应罗马音的程序。由于本人并不熟练,可能代码会有一些冗长,希望各位可以加以指正,代码如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
import re
import requests
import random
import linecache
import os

def gethtml():
url = 'https://htmfiles.englishhome.org/Japsurnames/Japsurnames-'
filename = 'result.txt'
i = 0
r = ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k1', 'k2', 'm', 'n', 'o', 'r', 's', 't', 'u', 'w', 'v', 'z']

f = open(filename, 'a+', encoding='utf-8')
for i in range(22):
htr = url + str(r[i]) + str('.htm')
response = requests.get(htr)
response.encoding = response.apparent_encoding
html = response.text
pattern = re.compile('<td width="45%"(.+)</td>')
result = pattern.findall(html,re.S)
for line in result:
f.write(line + '\n')
f.close()

def correct():
i = 0
subp = ['。', '>', ' height="[0-9][0-9]"']
filename = 'result.txt'
for i in range(3):
f = open(filename, 'r', encoding='utf-8')
alllines = f.readlines()
f.close()
f = open(filename, 'w+', encoding='utf-8')
for eachline in alllines:
a = re.sub(subp[i], ' ', eachline)
f.writelines(a)
f.close()
f = open(filename, 'r', encoding='utf-8')
alllines = f.readlines()
f.close()
f = open(filename, 'w+', encoding='utf-8')
for eachline in alllines:
a = re.sub('Itoda', '伊藤\nItoda', eachline)
f.writelines(a)
f.close()

def myrandom():
p = random.randint(1, 12652)
if p % 2 == 0:
q = p
p = p - 1
else:
q = p + 1
prtl1 = linecache.getline('result.txt', p)
prtl2 = linecache.getline('result.txt', q)
print("罗马音:", prtl1, "名称:", prtl2)

print("---欢迎使用随机命名工具,本工具会在相同目录下创建列表,并根据需求随机给出日语名称及对应罗马音---\n")
while True:
flag = int(input("---输入1以获取列表---\n""---输入2以随机获得名称---\n---输入0以退出---\n---请输入:"))
path = os.path.exists('result.txt')
if flag == 1:
if path==True:
print("---您已获取过列表---\n")
else:
print("---这可能需要1分钟时间,请耐心等候---")
gethtml()
correct()
print("---获取完成---\n")
if flag == 2:
if path == True:
myrandom()
else:
print("---请先获取列表---\n")
if flag == 0:
break
print("---进程已结束---")

另外也有这个小工具封装为exe的版本,欢迎试用并提出建议!

链接:https://pan.baidu.com/s/1EgK1MoQJFJ6nMXrLd4rbzQ
提取码:vpfm
解压码:octdafu