除開字數不同的原因,為什麼日本名字一聽就知道是日本的?

人名就不說了,小栗旬啊藤原靜香這樣的,因為和中國的姓氏基本不一樣,所以一聽就知道是日本的。

但是地名呢?像鹿兒島、靜岡、青森、宮城、長野這樣的地名,字數也和中國的差不多,為什麼還是一聽就知道是日本的地名呢?

請賜教。


我覺得之所以題主覺得「鹿兒島、靜岡、青森、宮城、長野」這些地名「日本味兒」很濃,或許很大程度上是因為你在聽說這些地名的同時,就已經了解到這些地方在日本了。

如果你不信,請判斷以下地名哪些是中國的哪些日本的:

松江、柳川、山陰、湘南、山陽、金澤、洛南、大田、富山益田、高崎

暈了吧?

再看看下一組:

鹿泉、井陘、深澤、博野、神池、神木、月城、漳浦、巨野、新野、隴川、涇川、鹿野原

如果事先不知道這些地方,題主你確定可以分辨其中的日本地名嗎?

PS:根據知友的評論添加了高崎神木兩個地名。


其實要說直白,中國地名人名也個頂個的直白,只不過人家的白話跟咱們的白話不是一回事,或者說常用字不是特別重疊。

拿人名來說吧,單字男名中國人喜歡叫什麼剛、強、偉、傑、濤、磊之類的;日本人則是勝、博、誠、信、徹、慎這種居多。單字女名日本比較俗的有愛、舞、堇、幸、薰、唯等等;中國人則更傾向翠、娟、梅、紅、娜、莉這些字。

共通的也有,像健、明、亮、靜、蘭、雪這些在兩國也都還算常見,但總的來說還是風格迥異。

日本雙字名在有限常用字範圍內更有固定組合。先不論什麼郎、什麼夫、什麼子,你一看翔太、健二、拓也、惠美、麻里、沙織就知道是日本人;而中國人相對更多樣化,基本就是隨便找倆字拼一起的節奏,如逸凡、文鵬、廣宇、曉蕾、佳敏、淑芬等等,帶點時代氣息就是建國、建軍、解放、援朝這樣的。你要看介於中日風格之間的,那得上台灣找——例如柏彥、志雄。XD

至於地名,也是相同的道理。從意境上來講,我反正看不出鹿兒島和台兒庄孰高孰低,無非是常用字不同的事。

他們叫銀座,咱們叫金盞。

他們叫熊本,咱們叫馬坡。

他們叫石川,咱們叫清河。

他們叫長崎,咱們叫香山。

他們叫武藏野,咱們叫潘家園。

他們叫名古屋,咱們叫半壁店。

他們叫太宰府,咱們叫菜戶營。

他們叫八重櫻,咱們叫雙榆樹。

他們叫六本木,咱們叫五棵松。

他們叫千代田,咱們叫萬壽路。

他們叫寶冢,咱們叫公主墳。

他們叫日暮里,咱們叫草場地。

他們叫神戶,咱們叫奶子房……


人名這條題主概括得還算到位,確實就主要是姓的問題。日本的姓通常是兩個字以上,而且因為其中很多姓都是明治政府《平民苗字必稱令》頒布之後沒什麼文化的人民群眾自己瞎起的結果而顯得非常直白通俗,跟中國姓通常為單字而且給人一種「咦這個字好像變成姓了之後本身的意思就木有了」的感覺非常不同。

但日本也有很多單字姓。比如排全國62位的「原」,排126位的「關」,排192位的「南」,排270位的「谷」,排579位的「柳」,排660位的「秦」,排1271位的「桂」等等,這些姓都是中文當中就有的,所以如果你見到的日本是姓這些姓的,那光憑姓其實是比較難判斷的。

可是我們還有名字。日本人有很多常用的名字,而且其名字用字的變化比中國人要少得多。某種意義上,你看一個日本人的名字當中使用的字基本上可以猜出這人的家長是不是比較有文化。有關日本人名字的常用字可以看這裡:Behind the Name: Japanese Names

當然,也有些情況是非常非常難判斷的。比如有個日本演員叫「左 時枝」。這個名字基本上就無從判斷是中國人還是日本人了。但有些對於兩國文化都有了解的人們可能會這樣猜:日本人和中國人在起名字的時候都會借物,也就是說用自然當中的物的某些性質來象徵對這個人的美好祝願。在這種借物的場合,日本人的借物通常會比中國人更具象化。也就是說他們會更傾向於用更加直白和表象的字來指代這個被借的物。這也就是為啥日本男性很多人名字里有「樹」字的原因。他們就認為希望孩子像樹一樣茁壯成長,那要表達這個祝願,直接給名字里放個「樹」就完了嘛。中國人一般不會這麼取名。中國人的借物通常是要找更為抽象的,直接反映那個性質本身的字。所以中國人會更傾向於用那些直接表達美好品質的字用在這種場合下。

所以對於像「左時枝」這樣的名字,足夠內行的人恐怕還是會優先猜這是日本人的名字。因為如果是中國人的名字的話,「左時知」可能會更像話一些。

地名也是類似的情況。日本人取地名沒什麼創意的,是個山,嗯,那當然就山,是個大點的山坡就岡,是個小點的土坡就坂,修過城堡的地方就城,是塊小點的平地就野,是塊大點的平地就原,是塊水邊的沼澤就浦,是塊島就……額,那當然就島,是小溪的源頭就澤,有塊人聚居的地方就庄,有什麼河流的出海口或者是山谷和平原的介面就口……當然,你說像岐阜這樣有點內涵的也有,但大部分,還是直白得一筆。


上海野生動物園裡有個飯店,叫上野餐館。


人生前20年我一直以為金城武姓金……


請問「中國」是中國的地方還是日本的地方?


從計算機學的角度看,你的大腦從小到大看了很多中日韓人名後被訓練出了一個分類器。

可以對一個從沒見過的名字進行分類,但是既然是分類器就只能保證有較大概率正確,對某些特別樣本還是會判斷錯誤。

這個分類器是被大量數據樣本訓練出來的,所以很難講有什麼規律規則,大數據有時不是很講道理的。


非抬杠,您看看這圖這地方,乍一聽是中國的還是日本的。

非抬杠,您所舉出來的人名地名,都是1.在國人腦海中有著深刻印象的、帶有明顯日本色彩的名詞,或者是2.與中國常見人名地名模式相差較大的那種,因此一看就肯定會歸類到日本。

但一旦不符合上述兩點的,就容易產生歸類障礙。比如秦基博,比如許斐剛,比如金城武。

再比如圖上這地方。

另,在日本的現代社會,「天津」這個詞一般都指中國天津(tenshin),很少指日本的天津(amatsu),漢字一樣但日語發音不同,一個用漢語音讀,一個用日語訓讀。因為日本這地方太小了,對日本現代社會的影響還不如中國天津大了(因為天津飯,天津甘栗是日本人日常生活常見的)


看到還沒有程序員答這個題,我來裝個逼:

用貝葉斯公式就行啦:

貝葉斯公式 P(Y | X) = P(X | Y) * P(Y) / P(X)

X表示名字,Y表示是日本名

按公式寫出下面的代碼:

(只用字元特徵,不考慮字數特徵,瞞足題意)

import java.nio.charset.Charset;
import java.nio.file.Files;
import java.nio.file.Paths;
import java.util.Arrays;
import java.util.stream.Stream;

public class IsItAJapaneseName {

static Stream& lines(String file) throws Throwable {
return Files.lines(Paths.get(file), Charset.forName("GBK")); // 如果你的文件是其他編碼,在這裡設置
}

public static double[] charPercent(String file) throws Throwable {
int[] count = new int[65536];
lines(file).forEach(s -&> {
for (char c : s.toCharArray()) {
count[c]++;
}
});
double sum = Arrays.stream(count).sum() + 6.5536;
return Arrays.stream(count).mapToDouble(x -&> (x + 0.0001) / sum).toArray();
}

/** 基於條件獨立性假設,字元串的概率 = 所有字元概率的乘積 */
public static double prob(double[] a, String s) {
double p = 1;
for (char c : s.toCharArray()) {
p *= a[c];
}
return p;
}

public static void main(String[] args) throws Throwable {
double[] probCharGivenJp = charPercent(args[0]);
double[] probCharGivenCn = charPercent(args[1]);
long cnNameCount = lines(args[0]).count();
long jpNameCount = lines(args[1]).count();
// 先驗概率
double probJpPrior = cnNameCount / (double) (cnNameCount + jpNameCount);
lines(args[2]).forEach(name -&> {
double probStrGivenJp = prob(probCharGivenJp, name);
double probStrGivenCn = prob(probCharGivenCn, name);

// 貝葉斯公式 P(Y | X) = P(X | Y) * P(Y) / P(X)
double probJpGivenStr = probJpPrior * probStrGivenJp / (probJpPrior * probStrGivenJp + (1 - probJpPrior) * probStrGivenCn);
System.out.printf("「%s」是%s的概率是%.6g
", name, probJpGivenStr &> 0.5 ? "日本姓名" : "中國姓名", probJpGivenStr &> 0.5 ? 1 : 1 - probJpGivenStr);
});
}

}

找份數據

中文名1000個.txt

...
李開德
李開端
李開復
李開生
...

日本名300個.txt

...
Sayaka Nishimura西村紗也香
Sayori Aizawa相沢沙頼
Sayuri Hayashi林小百合
..

待判斷的名字.txt

朱文彬
川川川川
王海波
王王海波

編譯運行

javac IsItAJapaneseName.java
java IsItAJapaneseName 中文名1000個.txt 日本名300個.txt 待判斷的名字.txt

「朱文彬」是中國姓名的概率是1.00000
「川川川川」是日本姓名的概率是1.00000
「王海波」是中國姓名的概率是1.00000
「王王海波」是中國姓名的概率是1.00000

50行代碼,電腦又學會了新技能

你們管這叫日本姓名識別演算法?加減乘除而已

______________________________________________

回複評論的幾個例子:

「原敬」是中國姓名的概率是0.994606
「原研哉」是中國姓名的概率是0.999997
「桂太郎」是中國姓名的概率是1.00000
「林正男」是中國姓名的概率是1.00000

除了「原研哉」有錯誤,其它都判斷正確,「原研哉」錯誤的原因可能是沒有使用字位特徵,主要是不想讓代碼太長,也可能是人名數據太少,數據中日本人名中沒有包含研字的,中文人名倒是有幾個


因為你知道他們是日本的啊

樓上說了挺多跟中國的比較了,我說點別的

比如:

濟州島,鹿兒島、尖閣諸島(←_←什麼鬼)

北海道,江原道、京畿道

大阪,大邱、大田、大津

板門店,名古屋

釜山、蔚山、富山、石山

樓主分辨一下吧

你會發現你分得清的都是你知道的,你不知道的始終不知道


以前陳綺貞有一首歌,叫「坐火車到美麗的湘南海岸」。

乍一聽沒發現問題,我仔細一想,心說:「卧槽,你丫唬我呢吧,湖南南部哪裡有海?」


曾經以為倉央嘉措是日本人(? ̄? ??  ̄??)

大概是因為中國的地名大家都比較熟悉,排除了基本上就是日本了吧


日本人因為他們的命名思想和規則,2字以內的名字也是很明顯的

男的

X一

X二

X三

X夫

等等。。。

女的

X美

x子

X香

X惠


我曾經以為秦基博,夏帆是中國人,阿蘭,端木蕻良是日本人。。


認識一個日本人叫林正雄はやしまさお,一開始看到這個名字以為是台灣人。

我估計還是姓氏的問題吧?如果拿一堆中國人和日本人的名字給歐美的人看估計他們應該也分不出來。


有個地方叫 小手指, 你們感受一下。


關孝和(日本算聖)

藍花悅(學園都市第六位)

還有伊能靜金城武什麼的就更不用說了………………



金城武你一聽就知道是日本的?!我不信。


秦基博——

中國人的名字,韓國人的臉,日本人。


推薦閱讀:

女性是否更容易拋棄自己的母語或方言?
為什麼會有人喜歡石頭?它的魅力何在?
什麼是文學作品中的譯制腔?
朱自清和三毛都寫過《背影》,都是寫父母之心的,感人至深,由「背影」這個切入口寫親情為什麼別有魅力呢?
亞洲女性在阿聯酋應該注意些什麼?

TAG:語言 | 文化 | 語言文化 | 日語 | 語言比較 |