language_detector 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (172) hide show
  1. data/README.rdoc +24 -0
  2. data/Rakefile +18 -0
  3. data/VERSION +1 -0
  4. data/lib/language_detector.rb +232 -0
  5. data/lib/model-fm.yml +52504 -0
  6. data/lib/model-tc.yml +53985 -0
  7. data/lib/textcat_ngrams/afrikaans.lm +400 -0
  8. data/lib/textcat_ngrams/albanian.lm +400 -0
  9. data/lib/textcat_ngrams/amharic-utf.lm +400 -0
  10. data/lib/textcat_ngrams/arabic-iso8859_6.lm +400 -0
  11. data/lib/textcat_ngrams/arabic-windows1256.lm +400 -0
  12. data/lib/textcat_ngrams/armenian.lm +400 -0
  13. data/lib/textcat_ngrams/basque.lm +400 -0
  14. data/lib/textcat_ngrams/belarus-windows1251.lm +400 -0
  15. data/lib/textcat_ngrams/bosnian.lm +400 -0
  16. data/lib/textcat_ngrams/breton.lm +400 -0
  17. data/lib/textcat_ngrams/bulgarian-iso8859_5.lm +400 -0
  18. data/lib/textcat_ngrams/catalan.lm +400 -0
  19. data/lib/textcat_ngrams/chinese-big5.lm +400 -0
  20. data/lib/textcat_ngrams/chinese-gb2312.lm +400 -0
  21. data/lib/textcat_ngrams/croatian-ascii.lm +400 -0
  22. data/lib/textcat_ngrams/czech-iso8859_2.lm +400 -0
  23. data/lib/textcat_ngrams/danish.lm +400 -0
  24. data/lib/textcat_ngrams/dutch.lm +400 -0
  25. data/lib/textcat_ngrams/english.lm +400 -0
  26. data/lib/textcat_ngrams/esperanto.lm +400 -0
  27. data/lib/textcat_ngrams/estonian.lm +400 -0
  28. data/lib/textcat_ngrams/finnish.lm +400 -0
  29. data/lib/textcat_ngrams/french.lm +400 -0
  30. data/lib/textcat_ngrams/frisian.lm +400 -0
  31. data/lib/textcat_ngrams/georgian.lm +400 -0
  32. data/lib/textcat_ngrams/german.lm +400 -0
  33. data/lib/textcat_ngrams/greek-iso8859-7.lm +400 -0
  34. data/lib/textcat_ngrams/hebrew-iso8859_8.lm +400 -0
  35. data/lib/textcat_ngrams/hindi.lm +400 -0
  36. data/lib/textcat_ngrams/hungarian.lm +400 -0
  37. data/lib/textcat_ngrams/icelandic.lm +400 -0
  38. data/lib/textcat_ngrams/indonesian.lm +400 -0
  39. data/lib/textcat_ngrams/irish.lm +400 -0
  40. data/lib/textcat_ngrams/italian.lm +400 -0
  41. data/lib/textcat_ngrams/japanese-euc_jp.lm +400 -0
  42. data/lib/textcat_ngrams/japanese-shift_jis.lm +400 -0
  43. data/lib/textcat_ngrams/korean.lm +400 -0
  44. data/lib/textcat_ngrams/latin.lm +400 -0
  45. data/lib/textcat_ngrams/latvian.lm +400 -0
  46. data/lib/textcat_ngrams/lithuanian.lm +400 -0
  47. data/lib/textcat_ngrams/malay.lm +400 -0
  48. data/lib/textcat_ngrams/manx.lm +400 -0
  49. data/lib/textcat_ngrams/marathi.lm +400 -0
  50. data/lib/textcat_ngrams/mingo.lm +400 -0
  51. data/lib/textcat_ngrams/nepali.lm +400 -0
  52. data/lib/textcat_ngrams/norwegian.lm +400 -0
  53. data/lib/textcat_ngrams/persian.lm +400 -0
  54. data/lib/textcat_ngrams/polish.lm +400 -0
  55. data/lib/textcat_ngrams/portuguese.lm +400 -0
  56. data/lib/textcat_ngrams/quechua.lm +400 -0
  57. data/lib/textcat_ngrams/romanian.lm +400 -0
  58. data/lib/textcat_ngrams/rumantsch.lm +400 -0
  59. data/lib/textcat_ngrams/russian-iso8859_5.lm +400 -0
  60. data/lib/textcat_ngrams/russian-koi8_r.lm +400 -0
  61. data/lib/textcat_ngrams/russian-windows1251.lm +400 -0
  62. data/lib/textcat_ngrams/sanskrit.lm +400 -0
  63. data/lib/textcat_ngrams/scots.lm +400 -0
  64. data/lib/textcat_ngrams/scots_gaelic.lm +400 -0
  65. data/lib/textcat_ngrams/serbian-ascii.lm +400 -0
  66. data/lib/textcat_ngrams/slovak-ascii.lm +400 -0
  67. data/lib/textcat_ngrams/slovak-windows1250.lm +400 -0
  68. data/lib/textcat_ngrams/slovenian-ascii.lm +400 -0
  69. data/lib/textcat_ngrams/slovenian-iso8859_2.lm +400 -0
  70. data/lib/textcat_ngrams/spanish.lm +400 -0
  71. data/lib/textcat_ngrams/swahili.lm +400 -0
  72. data/lib/textcat_ngrams/swedish.lm +400 -0
  73. data/lib/textcat_ngrams/tagalog.lm +400 -0
  74. data/lib/textcat_ngrams/tamil.lm +400 -0
  75. data/lib/textcat_ngrams/thai.lm +400 -0
  76. data/lib/textcat_ngrams/turkish.lm +400 -0
  77. data/lib/textcat_ngrams/ukrainian-koi8_u.lm +400 -0
  78. data/lib/textcat_ngrams/vietnamese.lm +400 -0
  79. data/lib/textcat_ngrams/welsh.lm +400 -0
  80. data/lib/textcat_ngrams/yiddish-utf.lm +400 -0
  81. data/lib/training_data/ar-utf8.txt +54 -0
  82. data/lib/training_data/bg-utf8.txt +26 -0
  83. data/lib/training_data/cs-utf8.txt +48 -0
  84. data/lib/training_data/da-utf8.txt +159 -0
  85. data/lib/training_data/de-utf8.txt +569 -0
  86. data/lib/training_data/el-utf8.txt +48 -0
  87. data/lib/training_data/en-utf8.txt +81 -0
  88. data/lib/training_data/es-utf8.txt +185 -0
  89. data/lib/training_data/et-utf8.txt +50 -0
  90. data/lib/training_data/fa-utf8.txt +42 -0
  91. data/lib/training_data/fi-utf8.txt +83 -0
  92. data/lib/training_data/fr-utf8.txt +191 -0
  93. data/lib/training_data/fy-utf8.txt +22 -0
  94. data/lib/training_data/ga-utf8.txt +109 -0
  95. data/lib/training_data/he-utf8.txt +116 -0
  96. data/lib/training_data/hi-utf8.txt +49 -0
  97. data/lib/training_data/hr-utf8.txt +80 -0
  98. data/lib/training_data/hu-utf8.txt +87 -0
  99. data/lib/training_data/io-utf8.txt +41 -0
  100. data/lib/training_data/is-utf8.txt +94 -0
  101. data/lib/training_data/it-utf8.txt +228 -0
  102. data/lib/training_data/ja-utf8.txt +200 -0
  103. data/lib/training_data/ko-utf8.txt +147 -0
  104. data/lib/training_data/nl-utf8.txt +215 -0
  105. data/lib/training_data/no-utf8.txt +281 -0
  106. data/lib/training_data/pl-utf8.txt +120 -0
  107. data/lib/training_data/pt-utf8.txt +214 -0
  108. data/lib/training_data/ro-utf8.txt +66 -0
  109. data/lib/training_data/ru-utf8.txt +310 -0
  110. data/lib/training_data/sl-utf8.txt +263 -0
  111. data/lib/training_data/sv-utf8.txt +174 -0
  112. data/lib/training_data/th-utf8.txt +49 -0
  113. data/lib/training_data/tk-utf8.txt +101 -0
  114. data/lib/training_data/todo/af.txt +114 -0
  115. data/lib/training_data/todo/amharic-utf.txt +95 -0
  116. data/lib/training_data/todo/arabic-windows1256.txt +157 -0
  117. data/lib/training_data/todo/armenian.txt +86 -0
  118. data/lib/training_data/todo/basque.txt +136 -0
  119. data/lib/training_data/todo/belarus-windows1251.txt +97 -0
  120. data/lib/training_data/todo/bosnian.txt +97 -0
  121. data/lib/training_data/todo/breton.txt +159 -0
  122. data/lib/training_data/todo/bulgarian-iso8859_5.txt +115 -0
  123. data/lib/training_data/todo/catalan.txt +93 -0
  124. data/lib/training_data/todo/croatian-ascii.txt +104 -0
  125. data/lib/training_data/todo/esperanto.txt +95 -0
  126. data/lib/training_data/todo/estonian.txt +218 -0
  127. data/lib/training_data/todo/frisian.txt +99 -0
  128. data/lib/training_data/todo/georgian.txt +86 -0
  129. data/lib/training_data/todo/greek-iso8859-7.txt +139 -0
  130. data/lib/training_data/todo/hawaian.txt +108 -0
  131. data/lib/training_data/todo/hebrew-iso8859_8.txt +79 -0
  132. data/lib/training_data/todo/hindi.txt +77 -0
  133. data/lib/training_data/todo/hungarian.txt +102 -0
  134. data/lib/training_data/todo/icelandic.txt +131 -0
  135. data/lib/training_data/todo/indonesian.txt +93 -0
  136. data/lib/training_data/todo/irish.txt +209 -0
  137. data/lib/training_data/todo/latin.txt +120 -0
  138. data/lib/training_data/todo/latvian.txt +126 -0
  139. data/lib/training_data/todo/lithuanian.txt +99 -0
  140. data/lib/training_data/todo/malay.txt +108 -0
  141. data/lib/training_data/todo/manx.txt +78 -0
  142. data/lib/training_data/todo/marathi.txt +100 -0
  143. data/lib/training_data/todo/mf.txt +100 -0
  144. data/lib/training_data/todo/middle_frisian.txt +102 -0
  145. data/lib/training_data/todo/mingo.txt +146 -0
  146. data/lib/training_data/todo/nepali.txt +131 -0
  147. data/lib/training_data/todo/persian.txt +73 -0
  148. data/lib/training_data/todo/quechua.txt +108 -0
  149. data/lib/training_data/todo/romanian.txt +103 -0
  150. data/lib/training_data/todo/rumantsch.txt +110 -0
  151. data/lib/training_data/todo/sanskrit.txt +135 -0
  152. data/lib/training_data/todo/scots.txt +490 -0
  153. data/lib/training_data/todo/scots_gaelic.txt +93 -0
  154. data/lib/training_data/todo/serbian-ascii.txt +121 -0
  155. data/lib/training_data/todo/slovak-ascii.txt +102 -0
  156. data/lib/training_data/todo/slovak-windows1250.txt +115 -0
  157. data/lib/training_data/todo/slovenian-ascii.txt +100 -0
  158. data/lib/training_data/todo/slovenian-iso8859_2.txt +96 -0
  159. data/lib/training_data/todo/sq.txt +110 -0
  160. data/lib/training_data/todo/swahili.txt +120 -0
  161. data/lib/training_data/todo/tagalog.txt +135 -0
  162. data/lib/training_data/todo/tamil.txt +123 -0
  163. data/lib/training_data/todo/turkish.txt +117 -0
  164. data/lib/training_data/todo/ukrainian-koi8_r.txt +214 -0
  165. data/lib/training_data/todo/vietnamese.txt +92 -0
  166. data/lib/training_data/todo/welsh.txt +148 -0
  167. data/lib/training_data/todo/yiddish-utf.txt +83 -0
  168. data/lib/training_data/uk-utf8.txt +75 -0
  169. data/lib/training_data/vi-utf8.txt +47 -0
  170. data/lib/training_data/zh-utf8.txt +228 -0
  171. data/test/language_detector_test.rb +78 -0
  172. metadata +232 -0
@@ -0,0 +1,228 @@
1
+ '''第二次世界大战'''([[1939年]]-[[1945年]])是迄今为止,人类社会所进行的规模最大,伤亡最惨重,造成破坏最大的全球性战争。
2
+
3
+ 战争最高峰时期,全球有60%的国家参战,战火遍及[[亚洲]]、[[欧洲]]、[[美洲]]、[[非洲]]及[[大洋州]]五大洲;交战双方同时也在[[太平洋]]、[[大西洋]]、[[印度洋]]及[[北冰洋]]四大洋展开战斗。二战的交战双方是以[[美国]]、[[苏联]]、[[中国]]、[[英国]]、[[法国]]等国组成的[[同盟国|反法西斯同盟]]与以[[德国]],[[日本]],[[意大利]]等国组成的[[法西斯]]国家[[轴心国]]集团。
4
+
5
+ 尽管在1939年9月前,中国的[[抗日战争]],[[埃塞俄比亚]]的抗意战争等反法西斯的抵抗已经开始,但一般认为战争从1939年[[9月1日]]德国入侵波兰开始,到1945年[[9月2日]]日本向盟国投降而告结束。
6
+
7
+ 二战对人类产生了深远的影响,战争所带来的血腥杀戮,所造成的巨大破坏,长久的反映在战后人类的社会生活各个方面。战争的结果使得法西斯这一人类社会的毒瘤被铲除。战后世界的政治,经济格局很大程度上是战争结果所带来的。在军事领域,战争发展了现代军事技术,并产生了大规模使用[[装甲部队]]进行作战的主要方式,同时,[[战略轰炸]]也成为一种直接影响战争结局的重要军事手段,战争后期,[[核武器]]第一次投入战争并体现了其巨大的杀伤力。二战的结果充分证明,在现代技术条件下,战争的胜负与交战双方的科技实力,经济实力,工业技术水平,人员素质有着直接的关系。二战也对军事武器的发展起到了重大推动作用,[[雷达]],[[喷气战斗机]],[[火箭]]及[[导弹]],[[电子计算机]],[[核武器]]等高科技武器都在战争中投入使用并发挥了重大作用。而这些军事领域的突破又直接催生了战后人类的[[第三次科技革命]]。
8
+
9
+ 在这场血腥的战争中,无辜平民的伤亡是历史上最惨重的,其中包括了纳粹德国针对[[犹太人]]和其他[[东欧]]人种的大屠杀、日本对无数中国与[[朝鲜]]平民的屠杀,以及战争末期盟军针对德国与日本境内民用目标的轰炸。第二次世界大战总共导致了全球5千万人的死亡,超过历史上任何一次战争。
10
+
11
+ 第二次世界大战参战国与伤亡统计:
12
+ *[[第二次世界大战参战国列表]]
13
+ *[[第二次世界大战各国伤亡统计]]
14
+
15
+ == 欧洲战场 ==
16
+
17
+ === 走向战争的道路 ===
18
+
19
+ 在欧洲,战争与[[法西斯主义]](特别是[[纳粹德国]])的兴起有着千丝万缕的关系,因此我们将先讲述纳粹党人是如何取得政权的。
20
+
21
+ 第二次世界大战最早可以追溯到[[第一次世界大战]]([[1914年]]~[[1918年]])。在那次战争中,由德国皇帝[[威廉二世]](Kaiser Wilhelm II)领导的德国与其盟友最终败于英国、美国、法国、俄国和其他国家的联军([[协约国]])。这场战争被认为是由威廉二世领导下、受[[军国主义]]影响的德国首先挑起的,是德国最早发动了有效的攻势,经[[比利时]]袭击了[[法国]]。法国在[[1870年]]的[[普法战争]]中受到重创([[普鲁士]]在一年后与其他几个德意志国家组成了德国),因此一战结束后,法国希望能够对德国在经济上进行报复,这使得最后的和平协定——《[[凡尔赛条约]]》对德国实行了严厉的经济与军事制裁。
22
+
23
+ 战争结束后德国废除了君主政体,一个新的[[魏玛共和国]]宣告成立。在经历了短暂的繁荣后,魏玛共和国在[[1929年]]的全球金融危机中遭到重创,面临着严重的经济问题。这为德国极端右翼的兴起提供了良机。由[[阿道夫·希特勒]]所领导的[[纳粹党]]就是其中之一,他宣称德国的困境之根源来自于战后强加给德国的严厉条款、懦弱的魏玛共和国以及被指称握有国家经济命脉的[[犹太人]]。他的理论受到越来越多德国人的支持,到[[1933年]]时纳粹党已经从一个微不足道的小党一跃成为国会内第一大党。1933年[[1月30日]],魏玛共和国年迈的总统[[保罗·冯·兴登堡]]元帅()正式任命希特勒为共和国总理。希特勒政府通过行使[[宪法]]赋予总统在紧急情况下的特殊权力来执行公务,这些权力令希特勒可越过联邦议会进行实际独裁统治。[[1934年]][[8月2日]]兴登堡去世后,希特勒又依据宪法继任了总统,真正成为了德国的唯一独裁领袖(“元首”,)。
24
+
25
+
26
+ 在[[意大利]],战后的形势同样严峻。中央政府无法控制地方,全国无政府状态,共产党人与社会党人控制着工会,很多人担心布尔什维克式的共产革命将席卷意大利。
27
+
28
+ 在几个自由政府无法解决这些威胁后,国王[[维克多·爱麦虞埃三世]]()在[[1922年]][[10月30日]]邀请右翼政客[[本尼托·墨索里尼]]()以及他所领导的[[法西斯党]]组成政府。法西斯党人上台后依然保留自己的非正规武装,用以打击[[无政府主义]]者、共产党人和[[社会主义]]者。
29
+
30
+ 在几年时间内,墨索里尼就巩固了自己的独裁地位,意大利也沦为一个警察国家。[[1935年]][[1月7日]],他与[[法国]]外长[[皮埃尔·赖伐尔]](Pierre Laval)签署了意法条约。
31
+
32
+ 此时的德国内部已经政局稳定,纳粹党人稳固了自己的政权后,开始将重心放到外交方面,并采取了多个冒险的行动。
33
+
34
+ [[1935年]][[3月16日]],《凡尔赛条约》遭到破坏,希特勒宣布德国军队将重整军备,并实行兵役制,从而破坏了《凡尔赛条约》所规定的德国军队人数不得超过10万的最高限额。
35
+
36
+ 但是这些行动仅仅遭到了[[英国]]和[[法国]]的正式抗议。两国似乎更重视加强条约中有关经济制裁方面的条款。很多人认为条约太过严厉,而希特勒只是做了条约原本就不该限制德国做的事。[[1936年]][[3月7日]],在第一次冒险中尝到甜头的希特勒又派兵[[莱因兰占领|进驻莱因兰]],而根据《凡尔赛条约》,莱因兰应该是非军事区。但是这次行动就像上次一样,并没有遭到英法的阻止。
37
+
38
+ 之后德国就开始进行实际的领土侵略活动,第一个目标便是同文同种的[[奥地利]]。在得到了盟友意大利保证不会介入后,德国就在[[1938年]][[3月12日]]正式宣布[[德奥合并|兼并奥地利]],奥地利成了德国的一个省。
39
+
40
+ 在奥地利到手后,希特勒的注意力转到[[捷克斯洛伐克]]。他提出的第一个领土要求是捷克斯洛伐克东北与德国接壤的[[苏台德区]]()。在繁琐的谈判后,英国首相[[尼维尔·张伯伦]]()与法国领导人在希特勒的武力威胁下屈服,采取姑息政策,在[[慕尼黑会议]]上放弃苏台德,而捷克代表甚至都没有被邀请参加会议,只是在做出决定后他们才被告知。虽然捷克斯洛伐克政府提出抗议,但在德国的武力胁迫与英法两国拒绝出兵干预的情况下只能最终接受。几个月后的[[1939年]][[3月]],希特勒又破坏了原先的承诺,占领了余下的捷克领土。[[3月14日]][[斯洛伐克]]宣布独立并获德国、英国与法国的承认,最后在[[1944年]][[9月]]成为纳粹国家。
41
+
42
+ 在遭到[[国际联盟]]谴责侵略[[阿比西尼亚]]后,意大利与同样退出国联的纳粹德国缔在[[1939年]][[5月]]缔结了《[[钢铁盟约]]》,从而加强了罗马-柏林轴心。[[1940年]][[9月27日]],德国和意大利又接受了日本加入轴心国,签署《[[三国公约]]》,罗马-柏林-东京轴心就此形成。
43
+
44
+ === 战争爆发 ===
45
+
46
+ 德国和苏联,欧洲两个最强大的专制国家,虽然曾经是不共戴天的仇敌,却因政治现实令他们双方抛弃了西方国家认为是无法逾越的[[意识形态]]的鸿沟,签署了互不侵犯条约([[莫洛托夫-里宾特洛甫条约]])。条约中包括了“秘密附属议定书”,划分两国在波兰、[[波罗的海三国]]与[[芬兰]]的势力范围。
47
+
48
+ 在欧洲的全面战争于[[1939年]][[9月1日]]德国侵略波兰后爆发。英国和法国之前已经保证会确保波兰的安全(参见:[[波兰九月战役]])。[[9月17日]],苏联从东方进攻波兰。波兰很快就沦陷了,最后一股军事力量在[[10月5日]]投降。
49
+
50
+ 虽然东边战事形势千变万化,西线的法德边疆却毫无动静,双方直到[[1940年]][[5月10日]]才爆发冲突。这段和平的时期被德国人叫作“[[静坐战]]”(Sitzkrieg),西方则称为“[[假战争]]”(Phony War)。
51
+
52
+ === 斯堪的纳维亚战役 ===
53
+
54
+ 其他几个小国却发现自己已经被拖入泥潭中。1939年[[9月28日]],[[波罗的海]]的三个国家([[立陶宛]]、[[拉脱维亚]]、[[爱沙尼亚]])被迫允许苏联在其领土驻军。
55
+
56
+ [[11月30日]],[[芬兰]]遭到苏联的袭击,[[冬季战争]]爆发。芬兰的反抗赢得了广泛的同情,瑞典、美国等国家的志愿者纷纷奔赴芬兰作战,英法也计划组织远征军开赴芬兰。40年3月,芬军终于放弃了曼尼海姆防线,这个小国在损失了20%的部队后已经难以支撑下去了,国内外形势更不允许。瑞典保持中立,德国甚至站在苏联一边,英法的动作太慢,远征军遥遥无期。芬兰太小了,没有足够的资源来支撑一场持久战。最后,它的独立才是第一位的。经过3个月的苦战与惨重损失(保守估计为20万人,实际伤亡可能上百万:赫鲁晓夫回忆录142页),苏联在芬兰同意割让10%的领土后放弃了侵略目标。芬兰人丧失了比在战场上所失去的更多领土,其独立仍然时时受到苏联的威胁,这最终导致了[[持续战争]]的爆发。
57
+
58
+ [[4月9日]]德国展开“[[威塞演习]]”(''Weserübung'')夺取[[丹麦]]和[[挪威]]。德国人声称这是为了防止英法首先占领挪威这个原本中立的国家,从而切断德国从瑞典进口矿产的道路。英国部队在挪威的战役中遭受失败,令[[瑞典]]和芬兰与西方国家的联系被切断。由此,德国向中立的瑞典施压,要求允许德国的军用物资与士兵过道瑞典。
59
+
60
+ === 西线战事的爆发 ===
61
+
62
+ [[1940年]][[3月18日]],墨索里尼和希特勒同意协同作战,对抗法国和英国。[[5月10日]],德国军队绕过[[马奇诺防线]]侵略了[[比利时]]、[[荷兰]]和[[卢森堡]],静坐战结束。
63
+
64
+ 未等完全占领这些国家,希特勒就把目标对准了法国。[[5月13日]]德军通过[[阿登]](Ardennes)进入法国,盟军在阿登高地完全无法组织有效的抵抗。在[[色当]]法军遭到了更严重的打击,德国人的两个坦克师在高射炮的掩护下跨过[[缪斯河]],中央防线上的盟军被完全击溃。到[[5月19日]]7个德军装甲师已经抵达离[[英吉利海峡]]只有50英里处。[[5月24日]],德国装甲部队已经望见法国的北部港口[[敦刻尔克]],但却在这时接到停止前进的命令。这个命令被证明是德军的致命失误,被包围的盟军立即开始执行“[[发电机计划]]”,即[[敦刻尔克大撤退]]。850艘各种类型、动力、大小的船只舰队跨海集中到敦克尔刻,[[5月27日]]开始撤走了第一批士兵,到[[6月4日]]时已经有超过33万人成功逃脱,其中23万是英国远征军。这次成功的撤退为英国保留了元气,也鼓舞了英国人民抗敌的信心。
65
+
66
+ 在6个星期内,法国就投降了。为了侮辱法国人,希特勒选择在一个[[1918年]]德国投降的火车车厢内签署停战条约。法国的失利令英国必须独自面对德国。
67
+
68
+ 占领法国后德国空军就在法国北部集中,准备可能的登陆战([[海狮计划]],Operation Seelöwe)。德国决定首先进行空战消灭[[英国皇家空军]],这即[[不列颠战役]]。但事实上很多人认为登陆战根本就不切实际,因为即使德国空军能够将皇家空军赶出南英格兰,剩余的英国空中力量仍有可能在英格兰中北部对德国登陆造成威胁,德国的登陆部队很有可能被英国海空力量切断,然后逐个消灭。
69
+
70
+ 但是德国人似乎没有意识到这点,他们在[[8月5日]]发动了“[[鹰计划]]”,即对英国的大规模空中打击,从而为陆军登陆扫除障碍。在战役的高峰,[[8月24日]]到[[9月6日]]德军每天平均出动1000多架飞机,凭借着数量上的优势与已经十分疲劳的皇家空军飞行员作战,虽然英国拥有先进的[[雷达]]技术,他们还是损失了四分之一的空军飞行员。
71
+
72
+ 德国却在关键时刻决定改变战略。他们开始对英国的主要城市狂轰烂炸,希望能够摧毁敌人的信心,令敌人迅速投降。这为英国的飞行员提供了喘息的机会。但轰炸也对英国造成了严重影响,几乎所有的英国工业重镇遭到袭击,伦敦更是从[[9月7日]]到[[11月3日]]连续57个夜晚遭受轰炸,其他受袭击的城市还包括工业城市[[考文垂]]和[[伯明翰]],以及一些港口和海军基地等。
73
+
74
+ 当时在欧洲大陆没有大的地面冲突,因此空战成了主要的战事。英国空军也不时在夜间轰炸欧洲大陆。[[8月25日]]晚上皇家空军第一次对[[柏林]]进行了轰炸。不列颠战役的最终结果是,希特勒在[[9月17日]]下令“无限期推延”海狮计划,德国登陆英国的企图宣告失败。当然,另一个取消海狮计划的原因是希特勒已经找到了下一个猎物:曾经是盟友的苏联。
75
+
76
+ === 巴尔干半岛 ===
77
+
78
+ 欧洲另一个法西斯国家意大利在1939年[[4月7日]]侵略了[[阿尔巴尼亚]],随后又在1940年[[10月28日]]侵略[[希腊]],但他们在军事上的成功无法与德国在法国的胜利相比。意大利不但未能占领希腊,希腊人反而在1940年[[11月14日]]进入了阿尔巴尼亚。但这时德国人介入战事。1941年[[4月6日]]德军开始与希腊人作战,同时还攻击了[[南斯拉夫]]。英国人虽然支援希腊,最后还是无法取胜,纳粹德国的军队在[[4月27日]]进入[[雅典]]。之后德国又开始发动对[[克里特岛]]的攻击,[[6月1日]][[克里特战役]]结束,德国[[伞兵]]成功从英国人手中夺取了该岛。但是这次行动对德国来说也不太顺利,之后德国再也没有使用伞兵攻击。
79
+
80
+ 英国和希腊的最后几支武装力量在[[6月1日]]撤退到[[埃及]]。在巴尔干落入纳粹手中之后,希特勒终于可以无顾虑地发动对苏联的袭击了。
81
+
82
+ === 东线 ===
83
+
84
+ 1941年[[6月22日]],德国人突然发动对苏联的进攻,计划代号为“[[巴巴罗萨]]”(Operation Barbarossa)。战事的最初几个星期对[[苏联红军]]而言是一场大灾难。无数苏联部队被包围并最终落入德国人的手中。而除了德国以外,意大利、[[匈牙利]]和[[罗马尼亚]]的部队(在希特勒的要求下)也对苏联发动袭击。
85
+
86
+ 另一个国家是[[芬兰]],不过它的立场十分特殊。芬兰最初宣布保持中立,但是到[[6月25日]]芬兰宣布将会攻击苏联,以取回其在两年前的[[冬季战争]]中所丧失的土地。这场被称为“[[继续战争]]”的冲突持续到[[1944年]]。
87
+
88
+ 虽然一开始德国人打得极其顺利,但巴巴罗沙计划本身就有重大漏洞,其中最严重的就是后勤。苏联广阔的土地意味着如果德军行动过快,后勤将无法及时跟上。到1941年[[12月5日]]德国人抵达[[莫斯科]]郊外并停止进军时,他们的后勤线已经达到极限,再加上苏联[[游击队]]的破坏,在最前线的部队根本无法获得补给以支撑下去,更别谈进攻了。巴巴罗沙最初制订时认为红军会在冬天来临之前就崩溃,但真实情况是苏联部队始终能够组织有效抵抗。这一错误的估计严重影响了德国人的计划。
89
+
90
+ 苏联人撤退时采取的是焦土政策,他们烧毁庄稼,破坏工具,令德国人的后勤问题更为突出。当冬天来临时,千百万德国士兵死于俄国严寒的冬天,以及苏联人所组织的反扑。
91
+
92
+ 但即使德国人最后不得不因供应短缺与寒冷的冬天而停止进攻计划,他们还是占领了大片俄国土地,而苏联直到[[1944年]]末才完全收复失地。
93
+
94
+ 当德国人占领了那么多土地后,这场战争中最大的悲剧开始了:围攻[[列宁格勒]](今天的[[圣彼得堡]]),当德国与芬兰的部队分别从南方和北方抵达列宁格勒外围后,希特勒下令必须“将列宁格勒从地球上消除”,命令消灭城内的所有人口。德国军队开始包围列宁格勒以切断来自外部的援救物资,同时用炮击和空军轰炸。包围持续了900天,大约100万平民死亡――其中80万死于饥饿。
95
+
96
+ 在忍受了1941年末1942年初寒冷的冬天后,德国军队开始准备进一步的进攻行动。原本进军[[莫斯科]]的计划现已经改为进攻[[高加索]]附近的[[斯大林格勒]](今天的[[伏尔加格勒]])。德国最终占领了这座城市,但是其过程有着严重的缺失。
97
+
98
+ 希特勒的犹豫不决、高级将领们对改变计划的不满以及过长的补给线,令斯大林格勒的巷战成为德国士兵的恶梦。当苏联红军发动反攻时,20个师的德军(还有2个罗马尼亚师)被切断了退路,[[德国第六军团]]被完全围困。随着食品、燃料和弹药的消耗,德军的阵地越来越小,直到最后一部分德军在[[1943年]]初投降。为了确保前线军官不会投降,希特勒提升第六军团总司令[[弗雷德里希·保罗斯]](Friedrich Paulus)为陆军元帅(因为历史上的德国陆军元帅没有一个曾经投降过。保罗斯没有投降,但也没有遵照希特勒的命令“战到最后一兵一卒一枪一弹”,他本人最后被苏军俘虏)。[[斯大林格勒战役]]以历史上最血腥的战役而载入史册,双方的损失都很惨重,大约有200万人死亡,其中50万是平民。
99
+
100
+ 斯大林格勒之后,德国人渐渐丧失主动权,但苏联人依然没有完全回过神来。由[[冯·曼施坦因]]将军(von Manstein)领导的部队在[[1943年]]夏天发动了一次绝望的反抗,暂时停止了苏军的前进。这场发生在[[库尔斯克]]的战役是历史上最大规模的坦克战役,也是德军在东线所发动的最后一次主要攻势。苏联人事先获得了情报,为库尔斯克突出部的防御制订了一个大规模计划。在他们的抵抗之下,德军装甲部队最多只前进了17英里。在该场战役以苏军的胜利结束后,红军就始终控制着战争的主导权,直到[[1945年]][[5月]]占领[[柏林]]。
101
+
102
+ 苏联人发动了猛烈的攻势,而在西线,盟军在[[诺曼第登陆]]前唯一的重要战役是进攻[[意大利]]。欧洲战场上牺牲的苏联人要比其他所有国家死亡人数的总和还多。大约有2700万苏联人,其中包括了1300万平民,在德国入侵时死亡。在很多被纳粹占领的城市,平民逮捕后就被烧死或枪击而死。[[斯拉夫人]]始终被纳粹份子认为是劣等民族,所以对他们进行残酷的种族[[大屠杀]]。
103
+
104
+ 当然我们不能说苏联人是在孤军奋战。同盟国冒着极大的风险向苏联提供战略物资。此外,苏联几乎从未参与任何一次的海战,而且直到战争末期才加入对日本的战争。
105
+
106
+ === 北非 ===
107
+
108
+ 北非战役开始于[[1940年]],当时小股英国军队击溃了来自利比亚的意大利军队的袭击。随着由[[埃尔温·隆美尔]]( Erwin Rommel)率领的德国部队的到来,战事在[[1941年]]的[[阿拉曼]](El Alamein)达到高潮。[[1942年]][[7月1日]]至[[7月27日]],[[第一次阿拉曼战役]]爆发。德国人成功占领了阿拉曼,这是在[[亚历山大港]]和[[苏伊士运河]]之前最后一个战略地点。然而,就像在苏联一样,德国人的后勤供应跟不上,让英军有机会阻挡他们进攻。
109
+
110
+ [[10月23日]]到[[11月3日]]是[[第二次阿拉曼战役]],这次是英国人采取了主动。隆美尔一路撤退到了[[突尼斯]]。
111
+
112
+ 1942年[[11月8日]],英美军队在“[[火炬行动]]”中登陆[[摩洛哥]]和[[阿尔及利亚]]。当地[[维希法国]]的部队几乎没有任何抵抗。最终德意部队遭到来自阿尔及利亚和利比亚部队的夹击。从东西两个方向同时进攻的盟军部队在[[1943年]][[5月13日]]将德意部队完全赶出[[非洲]]。在北非战场上,25万轴心国士兵被俘虏。
113
+
114
+ === 盟军进攻意大利 ===
115
+ <b>本尼托&#183;墨索里尼 意大利领袖<>意大利法西斯主义的创立人
116
+
117
+ 盟军占领北非后,利用其优势进入欧洲已经是不可避免的了。[[1943年]][[7月10日]],盟军最先攻击了意大利的[[西西里岛]]。这令墨索里尼丧失了党内同仁的支持。1943年[[7月25日]],一向是墨索里尼的橡皮图章的[[法西斯党最高委员会]]通过决议要求恢复[[君主立宪制]],并把军队的指挥权交给国王。当天晚上墨索里尼被国王召见,到达皇宫后立即被逮捕并撤除所有职务,随后软禁在一个与外界隔绝的别墅。他的继任人[[彼得罗&#183;巴多格利奥]]元帅(General Pietro Badglio)在1943年[[9月8日]]与盟军达成停火协议。
118
+
119
+ 与此同时,由[[乔治&#183;史密斯&#183;巴顿]]将军率领的[[美国第七军团]]以及由[[伯纳德&#183;劳&#183;蒙哥马利]]将军率领的[[英国第八兵团]]成功会师,完成了对西西里的占领。
120
+
121
+ 德国人在得知墨索里尼垮台后立即出兵意大利并在北部地区建立了强有力的防线。
122
+
123
+ 1943年[[9月3日]],盟军部队登陆意大利本土,美军从[[萨累诺]](Salerno)登陆,英军则在[[塔兰托]](Taranto)。
124
+
125
+ 由[[奥托&#183;斯科尔兹内]]率领的一个德国班救出了墨索里尼,并安插他为[[意大利社会共和国]]的领袖。意大利社会共和国是一个位于北意大利纳粹占领区的伪政府。墨索里尼在[[1945年]][[4月28日]]盟军会师[[米兰]]期间被捕。
126
+
127
+ 尽管德国控制了意大利北部地区,盟军还是在[[1944年]][[6月4日]][[诺曼第登陆]]两天前进入[[罗马]]。1944年[[9月10日]],英军开始对德国的防线发起攻击,直到1945年[[4月29日]],即德国投降以及墨索里尼被捕两天后。
128
+
129
+ === 盟军占领法国 ===
130
+
131
+ 与罗马沦陷同时发生的是对法国的进攻。1944年[[6月6日]]盟军在[[诺曼第]]登陆,盟军与德军进行了两个多月的激烈交战,然后美军、英军与加拿大军队逐渐取得优势,德军则渐渐衰弱。最后致命的一击是十分冒险的行动,由巴顿领导的美军直达德法边界,而原本在诺曼第作战的德军则被困在包围圈中。
132
+
133
+ '''戴高乐将军'''反抗贝当的维希法国组织<>自由法国领导人
134
+
135
+ 盟军也开始对德国城市进行猛烈的轰炸,造成了严重的死伤与破坏。而在国内,希特勒逃过了多次暗杀行动,包括发生在1944年[[7月20日]]最严重的一次政变企图。这场由[[克劳斯&#183;冯&#183;施道芬堡]](Claus von Stauffenberg)策划、埃尔温&#183;隆美尔及[[阿尔弗雷德&#183;台尔普]](Alfred Delp)等人参与的计划原本准备用炸弹谋杀希特勒,但是过程中一些未预料到的因素导致预谋失败。希特勒只受了轻伤。
136
+
137
+ 1944年[[8月15日]]盟军又发动“[[骑兵行动]]”,从法国南部发起攻击。到[[9月]],三组盟军部队已经抵达德国边境,很多乐观估计认为战争在1944年年终就可结束。
138
+
139
+ 为了实现该目标,盟军发动了“[[市场花园行动]]”(Operation Market Garden,1944年[[9月17日]]至24日),试图进入德国并解放荷兰北部地区,但是德军的力量比情报中显示要强得多,[[英国第一空降师]]几乎全军覆没。
140
+
141
+ 1944年寒冷的冬天以及盟军所遇到的困境令西线战事处于僵局。美军在[[赫尔根森林战役]](1944年9月13日至[[1945年]][[2月10日]])中试图消耗敌人的实力,因为只要德国人还守着这片森林,盟军就无法快速推进。1944年[[12月16日]]德军发动了一次反攻,在[[阿登]]攻击初期德军成功地包围了一些美军部队,但是盟军最后还是成功地击退德军。
142
+
143
+ 盟军的最后障碍只是[[莱茵河]]。他们在1945年4月渡过,从此通向德国心脏的大门便打开了。
144
+
145
+ === 欧洲战事的结束 ===
146
+
147
+ '''1945年的德国国会大厦'''
148
+ 一个苏联士兵在柏林的德国<>国会大厦上撑起苏联国旗
149
+
150
+ 1945年[[4月25日]],美国与苏联的部队在[[易北河]]会师,将德国划为两半。
151
+
152
+ 1945年[[4月30日]],当一切都即将结束时,希特勒在自己的碉堡中与自己的长期情人或新婚妻子[[爱娃&#183;勃劳恩]]()一起自杀。希特勒在遗嘱中任命[[卡尔&#183;邓尼茨]](Karl Dönitz)海军上将为他的继承人,[[约瑟夫&#183;戈培尔]]为德国总理。但是戈培尔也在[[5月1日]]与家人一起自杀,而只剩下邓尼茨与盟军谈判投降问题。最后的投降文件在[[5月7日]]由[[阿尔弗雷德&#183;约德尔]]将军(General Alfred Jodl)签字。邓尼茨在1945年[[5月23日]]被捕,前[[德意志第三帝国|第三帝国]]的领土则被盟军划分为苏联控制的[[东德]]与由英国、法国和美国控制的[[西德]]。
153
+
154
+ 战争结束后,盟军也发现了多个[[纳粹集中营]],据估计纳粹利用这些集中营囚禁与谋害了大约1200万人,其中受害最重的是欧洲的[[犹太人]],根据[[纽伦堡审判]]时的证词,大约有一半的犹太人死于纳粹魔掌之中。除此之外[[吉普赛人]]、[[斯拉夫人]]、[[天主教]]徒、[[同性恋]]、残疾人等也遭到残酷迫害与毁灭。在所有的集中营中最著名的是[[奥斯维辛集中营|奥斯维辛]](Auschwitz)集中营,大约有200万人死在这里。虽然在战争期间盟军对纳粹大屠杀的行为所知并不多,这种残酷的行为已经成为二战历史中最重要的一段记录之一。
155
+
156
+ == 中国及太平洋战场 ==
157
+
158
+ === 战争前奏曲 ===
159
+
160
+ 在[[太平洋]]地区,战争的硝烟从[[1930年代]]早期就开始弥漫。日本扩大了其在[[朝鲜半岛]]的势力范围,逐渐向中国扩张。[[1920年代]]的中国四分五裂,被各个当地的大军阀控制,中央政府无法控制全国的大部分地区。在这种情况下日本得以通过签署不平等条约的形式来对中国施加影响,但是这样做风险很大,因为一旦中国陷入完全的[[无政府]]状态,任何协议都无法执行;而如果中国变强,则有可能废除这些条约。
161
+
162
+ [[1927年]],[[蒋介石]]与[[国民党]]领导的[[国民革命军]]开始进行[[北伐]]。蒋介石成功地击溃了华中、华南地区的军阀,而且即将与北方的军阀达成和解协议。由于担心控制着[[东北三省]]([[满洲]])的军阀[[张学良]]将与蒋介石合作,日本在[[1931年]][[9月18日]]发动[[九一八事变]],占领了东三省,并在当地设立了一个[[伪满洲国]],还将清朝的末代皇帝[[溥仪]]安插为伪满洲国的皇帝。
163
+
164
+ 日本对华的侵略并不能被看作是为其称霸世界的企图所迈出的第一步。事实上,日本的侵略主要是受到[[19世纪]]西方[[殖民主义]]的影响,希望能够保障其在华的利益,特别是掠夺中国的自然资源。如果从19世纪欧洲强权的观点来看,日本的行为无可挑剔。但到1930年代,世界已经广泛接受了[[威尔逊]]的[[自决原则]],这意味着以殖民主义的方式粗暴地掠夺他国的领土或资源的行为已经无法为[[国际社会]]所容忍。此外,日本在朝鲜和中国东北的暴行也遭至非议。
165
+
166
+ 日本的行动遭到谴责,导致日本最终退出了[[国际联盟]]。在整个三十年代,中国与日本陷入了僵局,蒋介石集中精力消灭[[共产党]]人,后者被蒋介石认为是更大的威胁。随着[[民族主义]]情绪的影响,越来越多的政治精英与普通中国人对蒋介石的政策感到不满。
167
+
168
+ 此时在日本,秘密社团的暗杀与[[大萧条]]都导致民选政府逐渐丧失了政府的控制权,军人开始执政。但同时军人内阁又无法有效控制军队的行为,很多时候军队可以为自身的利益而不是国家利益采取行动。同时随着民族主义与反西方情绪的上升,日本在中国的行为被人种理论合理化了。很多日本人开始相信,中华文明的精华传承在日本,而不是中国。
169
+
170
+ [[1936年]][[12月12日]],张学良发动了[[西安事变]],在西安扣留了蒋介石,迫使其“停止内战,联共抗日”,蒋介石被迫同意。日本[[关东军]]对此的反应是在未获东京批准的情况下于[[1937年]][[7月7日]]制造[[卢沟桥事件]],以此挑起冲突,[[第二次中日战争|中日战争]]([[抗日战争]])爆发。
171
+
172
+ [[1939年]]日本军队试图从满洲进攻[[苏联]],但很快就被苏联和[[蒙古]]的混和军击溃,这阻止了日本的向北扩张政策,也保证了苏联与日本之间脆弱的和平,直到二战末期。
173
+
174
+ 日本在1930年代的政策对于其最终的失败有着决定性的影响。当时日本的政策是建立在这样一种假设之上,即日本在没有获得稳定的自然资源供应之前无法与欧洲强权对抗,但为了取得所需要的自然资源他们又必需挑起一场他自知无法获胜的战争。此外在侵华时期的残忍行径、在中国建立傀儡政权的作法与日本的最终目标一脉相承,日本在战争中坚持这种不得人心的作法。而日本国内的许多政治精英当时就已经意识到这种自取灭亡的作法将会为日本带来的灾难,但都没有试图制止。
175
+
176
+ === 战争的爆发 ===
177
+
178
+ 到1941年,日本已经占领了华北和华中的大部分地区,但是日本依然面对来自[[国民党]]正规军与[[中国共产党]]的游击队的抵抗。尽管日本在华建立了多个[[傀儡政权]],但是这些政权基本上没有实权,加上日本军队的残酷压迫使得日本的占领不得人心。日本人拒绝直接与[[蒋介石]]政府谈判,也不愿意作出让步以换取民心,他们只是希望通过高压统治能令中国人放弃抵抗。
179
+
180
+ 这种政策只会导致更顽强的抵抗与国际舆论的反弹。由于日本的侵华行为,美国、英国以及流亡的荷兰政府(此时依然控制着东南亚的大片石油资源)停止向日本供应原油与钢铁。日本将此看作是一种挑衅,而缺乏这些资源日本的战争机器便无法继续运作。因此日本在1941年[[12月7日]]日本侵略了[[马来亚半岛]]与[[菲律宾]],同时[[珍珠港事件|袭击]]在[[珍珠港]]的美国舰队。虽然日本非常清楚,他们无法与美国进行一场持久战,他们却还希望美国在面对如此突然、残烈的牺牲后能够愿意与日本进行协商,以让美国接受其在中国的侵略。但是他们的如意算盘打错了,他们面对的是一场自知无法取胜的战争。
181
+
182
+ 四天后,日本的盟友德国也对美国宣战,美国被迫两线作战,在此之前美国一直试图保持中立,尽管他们不断向英国和苏联提供战争物资。
183
+
184
+ === 太平洋战争 ===
185
+
186
+ 盟军由于欧洲战事的拖累无法在亚洲进行针对顽强的日本人的有效抵抗。1941年[[12月10日]]英军在[[马来亚]]的多艘重要军舰被击沉,[[香港]]也在1941年[[12月25日]]沦陷。在差不多同一时间,美国在[[关岛]]和[[威克岛]]的基地也被占领了。次年[[1月]]日本又进攻了[[缅甸]]、[[所罗门群岛]]、[[荷属东印度]]以及[[新几内亚]],而[[马尼拉]]、[[吉隆坡]]和[[腊包尔]]则被占领。征服的道路是如此的神速:1942年[[2月]][[新加坡]]、[[巴厘岛]]与[[帝汶]]、[[3月]][[仰光]]、[[爪哇]]、[[5月]][[曼德勒都]]一一被日军占领。而日本空军也完全控制了这些地区的空中战场,美英的空军被完全赶出这些地区。日军还对[[澳大利亚]]北部发起突袭,将英国舰队赶出[[锡兰]]。
187
+
188
+ 但盟军的攻势逐渐加强。[[4月]]的[[空袭东京]](Doolittle Raid)虽然很大程度上是象征性的,却鼓舞了士气;而美国海军在[[珊瑚海海战]](Battle of the Coral Sea)虽失利,却依然挫败了日军进攻[[莫尔斯比港]](Port Moresby)的企图。之后是[[6月]]关键的[[中途岛海战]](Battle of Midway):在这场实力相近的战役中,日本海军遭到了决定性的打击,从此便再也无法恢复元气。中途岛海战是二战太平洋战场的转折点。
189
+
190
+ 陆地上,在缅甸的英国和印度军队在中国军队的帮助下开始还击日军,撤退速度也减缓了,澳大利亚军队在新几内亚成功地守住了莫尔斯比港,[[8月]]日本地面部队在[[米尔恩湾战役]](Battle of Milne Bay)中遭到挫败。同时美国和日本抢占[[瓜达尔卡纳尔岛]](Guadalcanal)。在之后的6个月双方部队发生激烈战斗,最终美国取得了胜利。至此日本开始打一场防御战,盟军变被动为主动。被[[瓜达尔卡纳尔岛战役]]拖累,日军在其他战场上也丧失了优势,美国开始积极为[[麦克阿瑟]]在新几内亚的陆地推进以及[[尼米兹]]的太平洋岛屿战争铺平道路。
191
+
192
+ === 战争的结束 ===
193
+
194
+ [[1945年]][[8月9日]]早晨,长崎'''原子弹爆炸后在天空升起<>一个高度达6万英尺的蘑菇云。
195
+
196
+ 在[[塔拉瓦]]、[[硫黄岛]]、[[冲绳]]以及其他地方的苦战使双方都遭受严重的人员伤亡,不过这些战役的成果是日本的缓慢撤退。随着越来越多的资深飞行员丧身战场,日本开始实行由[[神风敢死队]]直接冲击重要军事目标,试图减缓美国部队的进攻速度。但同时,[[东京]]和其他城市还是遭到了美军的严厉轰炸。1945年[[2月3日]],苏联同意介入太平洋战事。投机的[[斯大林]]选择在[[8月8日]]对日宣战,并由百万大军进入[[满洲]]地区。而同月美国在日本的[[广岛]]([[8月6日]])和[[长崎]]([[8月9日]])投下了两颗[[原子弹]]。
197
+
198
+ 面对[[核武器]]的威胁与满洲地区的丧失,日本[[裕仁天皇]]与内阁开始重新考虑投降。日本帝国在[[8月15日]]正式宣布投降。最终的投降书是于1945年[[9月2日]]在美国战舰[[密苏里号]]上签署的,此后[[麦克阿瑟]]将军开始负责日本的重建。这段时期在日本被看作是美军的占领期。美国总统[[杜鲁门]]于1946年[[12月31日]]正式宣布,美日两国已经不处于敌对状态。
199
+
200
+ == 影响 ==
201
+
202
+ 或许是从[[第一次世界大战]]中学到的惨痛教训,西方国家在二战后并没有向战败国要求索赔。相反,美国国务卿[[乔治&#183;马歇尔]](George Marshall)的“经济复苏计划”(即“[[马歇尔计划]]”)要求[[美国国会]]拨款上百亿美元,用于欧洲的重建。
203
+
204
+ 但是被苏联控制的欧洲部分并无法享受“马歇尔计划”的援助。在《[[巴黎和约]]》中,苏联的敌人[[匈牙利]]、[[芬兰]]和[[罗马尼亚]]必须向苏联及其卫星国支付3亿美元(根据[[1938年]]的价值)的赔偿,而[[意大利]]则必须赔偿3.6亿美元。意大利的赔款主要在苏联、[[希腊]]和[[南斯拉夫]]三个国家之间分享。
205
+
206
+ 苏联是这么解释赔款要求的:苏联遭到了战争的最大蹂躏。俄国在冷战前的150年中三次遭到侵略:[[拿破仑战争]]、第一次世界大战、第二次世界大战。在这些战争中上千万俄罗斯人丧生。苏联也依此为接口占领[[东欧]],以创造一个防止西欧进犯的“缓冲区”。
207
+
208
+ 与此同时,美国和苏联加强了两国在欧洲的军事力量,以防备可能的侵略。用[[丘吉尔]]的话来说,铁幕已经在欧洲降下,苏联与民主国家之间的一场新冲突、即[[冷战]],已经开始。
209
+
210
+ 在美国的[[曼哈顿计划]]中为迅速制造[[原子弹]]而组织动员的大量研究工作引起了科学界的震动,美国各地在战后纷纷建立了多个由国家出资的实验室。许多参加曼哈顿计划或对原子弹的发明有贡献的科学家都开始致力于无核化的努力。
211
+
212
+ 从军事上来说,二战开启了空战的时代,[[军舰]]也开始成为重要的武器。在这场永远不会结束的军备竞赛中,[[空军]]已经成为无法缺席的一份子。
213
+
214
+ 战争也动员了空前绝后的大规模部队。虽然此后还是爆发了几次大规模部队的肉搏战(如5年后的[[朝鲜战争]]以及几次[[非洲]]国家的战争),大国开始更注重军事上的科技含量与精良的作战部队。
215
+
216
+ 战争后的[[纽伦堡审判]]判处了多名纳粹高级将领死刑,罪名是[[战争罪]]与[[种族大屠杀]]。同样的,在[[东京审判]]中,多名日本的高级官员也因类似的罪名被执行死刑。在其他一些国家,特别是[[芬兰]],盟军要求将政治上的领导人以“战争责任”的罪名处决。
217
+
218
+ 日本同时与48个国家签定了多边的《[[旧金山和约]]》,另与中华民国签定《[[台北和约]]》,作为战争的终点。[[日本]]的战败以及之后美国对其的占领导致了日本的现代化,而这可以说是二战最大的影响。日本现在拥有一个十分类似西方民主的政治体制,并且开始非常倚赖美国,无论是政治上还是经济上。今天的日本创造了一个经济奇迹,成为世界第二大经济体。
219
+
220
+ == 参考文献 ==
221
+ *威廉森&#183;默里及阿伦&#183;R&#183;米利特著,邵文松、王爱松译:赢者之师——第二次世界大战始末,北京:昆仑出版社,2001年8月
222
+ *.
223
+
224
+ ==相关内容==
225
+ *[[战争]]
226
+ *[[世界大战]]
227
+ *[[第一次世界大战]]
228
+ *[[抗日战争]]
@@ -0,0 +1,78 @@
1
+ # -*- coding: utf-8 -*-
2
+ require 'test/unit'
3
+ require File.dirname(__FILE__) + '/../lib/language_detector'
4
+
5
+ class LanguageDetector::ProfileTest < Test::Unit::TestCase
6
+ def test_is_punctuation
7
+ p = LanguageDetector::Profile.new(:name => "test")
8
+ assert p.is_punctuation?(',')
9
+ assert p.is_punctuation?('.')
10
+ assert !p.is_punctuation?('A')
11
+ assert !p.is_punctuation?('a')
12
+ end
13
+
14
+ def test_tokenize
15
+ p = LanguageDetector::Profile.new(:name => "test")
16
+ assert_equal ["this", "is", "A", "test"], p.tokenize("this is ,+_ A \t 123 test")
17
+ end
18
+
19
+ def test_count_ngram
20
+ p = LanguageDetector::Profile.new(:name => "test")
21
+ assert_equal({"w"=>1, "o"=>1, "r"=>1, "d"=>1, "s"=>1}, p.count_ngram('words', 1, {}))
22
+ assert_equal({"wo"=>1, "or"=>1, "rd"=>1, "ds"=>1, "_w" => 1, "s_" => 1}, p.count_ngram('words', 2, {}))
23
+ assert_equal({"wor"=>1, "ord"=>1, "rds"=>1, "_wo" => 1, "ds_" => 1, "s__" => 1}, p.count_ngram('words', 3, {}))
24
+ assert_equal({"word"=>1, "ords"=>1, "_wor" => 1, "rds_" => 1, "ds__" => 1, "s___" => 1}, p.count_ngram('words', 4, {}))
25
+ assert_equal({"words"=>1, "_word" => 1, "ords_" => 1, "rds__" => 1, "ds___" => 1, "s____" => 1}, p.count_ngram('words', 5, {}))
26
+ assert_equal({}, p.count_ngram('words', 6, {}))
27
+ end
28
+
29
+ def test_init_with_string
30
+ # ruby 1.8 / 1.9 sort has slightly different semantics, hence test the presence of each ngram instead
31
+ p = LanguageDetector::Profile.new(:text => "this is ,+_ A \t 123 test")
32
+ [
33
+ ["t_", 30], ["st__", 29], ["st", 16], ["hi", 8], ["_tes", 7], ["is__", 6], ["s___", 5], ["s_", 3], ["his_", 11],
34
+ ["tes", 10], ["t___", 9], ["es", 12], ["_te", 14], ["est_", 13], ["est", 15], ["te", 4], ["his", 17], ["_th", 20],
35
+ ["s__", 19], ["st_", 18], ["th", 24], ["_thi", 23], ["t__", 22], ["test", 21], ["thi", 28], ["is_", 27], ["this", 26],
36
+ ["_i", 25], ["is", 2], ["_t", 1]
37
+ ].each do |ngram|
38
+ assert p.ngrams.has_key?(ngram.first)
39
+ end
40
+ end
41
+
42
+ def test_init_with_file
43
+ p = LanguageDetector::Profile.new(:file => "bg-utf8.txt")
44
+ assert !p.ngrams.empty?
45
+ end
46
+
47
+ def test_compute_distance
48
+ p1 = LanguageDetector::Profile.new(:name => "test", :text => "this is ,+_ A \t 123 test")
49
+ p2 = LanguageDetector::Profile.new(:name => "test", :text => "this is ,+_ A \t 123 test")
50
+ assert_equal 0, p1.compute_distance(p2)
51
+
52
+ p3 = LanguageDetector::Profile.new(:name => "test", :text => "xxxx")
53
+ assert_equal 18000, p1.compute_distance(p3)
54
+ end
55
+ end
56
+
57
+ class LanguageDetectorTest < Test::Unit::TestCase
58
+ def test_detect
59
+ d = LanguageDetector.new('fm')
60
+
61
+ assert_equal "spanish", d.detect("para poner este importante proyecto en práctica")
62
+ assert_equal "english", d.detect("this is a test of the Emergency text categorizing system.")
63
+ assert_equal "french", d.detect("serait désigné peu après PDG d'Antenne 2 et de FR 3. Pas même lui ! Le")
64
+ assert_equal "italian", d.detect("studio dell'uomo interiore? La scienza del cuore umano, che")
65
+ assert_equal "romanian", d.detect("taiate pe din doua, in care vezi stralucind brun sau violet cristalele interioare")
66
+ assert_equal "polish", d.detect("na porozumieniu, na ³±czeniu si³ i ¶rodków. Dlatego szukam ludzi, którzy")
67
+ assert_equal "german", d.detect("sagt Hühsam das war bei Über eine Annonce in einem Frankfurter der Töpfer ein. Anhand von gefundenen gut kennt, hatte ihm die wahren Tatsachen Sechzehn Adorno-Schüler erinnern und daß ein Weiterdenken der Theorie für ihre Festlegung sind drei Jahre Erschütterung Einblick in die Abhängigkeit der Bauarbeiten sei")
68
+ assert_equal "hungarian", d.detect("esôzéseket egy kissé túlméretezte, ebbôl kifolyólag a Földet egy hatalmas árvíz mosta el")
69
+ assert_equal "finnish", d.detect("koulun arkistoihin pölyttymään, vaan nuoret saavat itse vaikuttaa ajatustensa eteenpäinviemiseen esimerkiksi")
70
+ assert_equal "dutch", d.detect("tegen de kabinetsplannen. Een speciaal in het leven geroepen Landelijk")
71
+ assert_equal "danish", d.detect("viksomhed, 58 pct. har et arbejde eller er under uddannelse, 76 pct. forsørges ikke længere af Kolding")
72
+ assert_equal "czech", d.detect("datují rokem 1862. Naprosto zakázán byl v pocitech smutku, beznadìje èi jiné")
73
+ assert_equal "norwegian", d.detect("hovedstaden Nanjings fall i desember ble byens innbyggere utsatt for et seks")
74
+ assert_equal "portuguese",d.detect("popular. Segundo o seu biógrafo, a Maria Adelaide auxiliava muita gente")
75
+ assert_equal "english", d.detect("TaffyDB finders looking nice so far! Testing this long sentence.")
76
+ assert_equal "japanese", d.detect("ブッシュ前大統領、「再登板」の厚顔無恥")
77
+ end
78
+ end
metadata ADDED
@@ -0,0 +1,232 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: language_detector
3
+ version: !ruby/object:Gem::Version
4
+ prerelease: false
5
+ segments:
6
+ - 0
7
+ - 1
8
+ - 0
9
+ version: 0.1.0
10
+ platform: ruby
11
+ authors:
12
+ - Ilya Grigorik
13
+ autorequire:
14
+ bindir: bin
15
+ cert_chain: []
16
+
17
+ date: 2010-03-14 00:00:00 -05:00
18
+ default_executable:
19
+ dependencies: []
20
+
21
+ description: Ruby language detection library using n-gram model
22
+ email: ilya@igvita.com
23
+ executables: []
24
+
25
+ extensions: []
26
+
27
+ extra_rdoc_files:
28
+ - README.rdoc
29
+ files:
30
+ - README.rdoc
31
+ - Rakefile
32
+ - VERSION
33
+ - lib/language_detector.rb
34
+ - lib/model-fm.yml
35
+ - lib/model-tc.yml
36
+ - lib/textcat_ngrams/afrikaans.lm
37
+ - lib/textcat_ngrams/albanian.lm
38
+ - lib/textcat_ngrams/amharic-utf.lm
39
+ - lib/textcat_ngrams/arabic-iso8859_6.lm
40
+ - lib/textcat_ngrams/arabic-windows1256.lm
41
+ - lib/textcat_ngrams/armenian.lm
42
+ - lib/textcat_ngrams/basque.lm
43
+ - lib/textcat_ngrams/belarus-windows1251.lm
44
+ - lib/textcat_ngrams/bosnian.lm
45
+ - lib/textcat_ngrams/breton.lm
46
+ - lib/textcat_ngrams/bulgarian-iso8859_5.lm
47
+ - lib/textcat_ngrams/catalan.lm
48
+ - lib/textcat_ngrams/chinese-big5.lm
49
+ - lib/textcat_ngrams/chinese-gb2312.lm
50
+ - lib/textcat_ngrams/croatian-ascii.lm
51
+ - lib/textcat_ngrams/czech-iso8859_2.lm
52
+ - lib/textcat_ngrams/danish.lm
53
+ - lib/textcat_ngrams/dutch.lm
54
+ - lib/textcat_ngrams/english.lm
55
+ - lib/textcat_ngrams/esperanto.lm
56
+ - lib/textcat_ngrams/estonian.lm
57
+ - lib/textcat_ngrams/finnish.lm
58
+ - lib/textcat_ngrams/french.lm
59
+ - lib/textcat_ngrams/frisian.lm
60
+ - lib/textcat_ngrams/georgian.lm
61
+ - lib/textcat_ngrams/german.lm
62
+ - lib/textcat_ngrams/greek-iso8859-7.lm
63
+ - lib/textcat_ngrams/hebrew-iso8859_8.lm
64
+ - lib/textcat_ngrams/hindi.lm
65
+ - lib/textcat_ngrams/hungarian.lm
66
+ - lib/textcat_ngrams/icelandic.lm
67
+ - lib/textcat_ngrams/indonesian.lm
68
+ - lib/textcat_ngrams/irish.lm
69
+ - lib/textcat_ngrams/italian.lm
70
+ - lib/textcat_ngrams/japanese-euc_jp.lm
71
+ - lib/textcat_ngrams/japanese-shift_jis.lm
72
+ - lib/textcat_ngrams/korean.lm
73
+ - lib/textcat_ngrams/latin.lm
74
+ - lib/textcat_ngrams/latvian.lm
75
+ - lib/textcat_ngrams/lithuanian.lm
76
+ - lib/textcat_ngrams/malay.lm
77
+ - lib/textcat_ngrams/manx.lm
78
+ - lib/textcat_ngrams/marathi.lm
79
+ - lib/textcat_ngrams/mingo.lm
80
+ - lib/textcat_ngrams/nepali.lm
81
+ - lib/textcat_ngrams/norwegian.lm
82
+ - lib/textcat_ngrams/persian.lm
83
+ - lib/textcat_ngrams/polish.lm
84
+ - lib/textcat_ngrams/portuguese.lm
85
+ - lib/textcat_ngrams/quechua.lm
86
+ - lib/textcat_ngrams/romanian.lm
87
+ - lib/textcat_ngrams/rumantsch.lm
88
+ - lib/textcat_ngrams/russian-iso8859_5.lm
89
+ - lib/textcat_ngrams/russian-koi8_r.lm
90
+ - lib/textcat_ngrams/russian-windows1251.lm
91
+ - lib/textcat_ngrams/sanskrit.lm
92
+ - lib/textcat_ngrams/scots.lm
93
+ - lib/textcat_ngrams/scots_gaelic.lm
94
+ - lib/textcat_ngrams/serbian-ascii.lm
95
+ - lib/textcat_ngrams/slovak-ascii.lm
96
+ - lib/textcat_ngrams/slovak-windows1250.lm
97
+ - lib/textcat_ngrams/slovenian-ascii.lm
98
+ - lib/textcat_ngrams/slovenian-iso8859_2.lm
99
+ - lib/textcat_ngrams/spanish.lm
100
+ - lib/textcat_ngrams/swahili.lm
101
+ - lib/textcat_ngrams/swedish.lm
102
+ - lib/textcat_ngrams/tagalog.lm
103
+ - lib/textcat_ngrams/tamil.lm
104
+ - lib/textcat_ngrams/thai.lm
105
+ - lib/textcat_ngrams/turkish.lm
106
+ - lib/textcat_ngrams/ukrainian-koi8_u.lm
107
+ - lib/textcat_ngrams/vietnamese.lm
108
+ - lib/textcat_ngrams/welsh.lm
109
+ - lib/textcat_ngrams/yiddish-utf.lm
110
+ - lib/training_data/ar-utf8.txt
111
+ - lib/training_data/bg-utf8.txt
112
+ - lib/training_data/cs-utf8.txt
113
+ - lib/training_data/da-utf8.txt
114
+ - lib/training_data/de-utf8.txt
115
+ - lib/training_data/el-utf8.txt
116
+ - lib/training_data/en-utf8.txt
117
+ - lib/training_data/es-utf8.txt
118
+ - lib/training_data/et-utf8.txt
119
+ - lib/training_data/fa-utf8.txt
120
+ - lib/training_data/fi-utf8.txt
121
+ - lib/training_data/fr-utf8.txt
122
+ - lib/training_data/fy-utf8.txt
123
+ - lib/training_data/ga-utf8.txt
124
+ - lib/training_data/he-utf8.txt
125
+ - lib/training_data/hi-utf8.txt
126
+ - lib/training_data/hr-utf8.txt
127
+ - lib/training_data/hu-utf8.txt
128
+ - lib/training_data/io-utf8.txt
129
+ - lib/training_data/is-utf8.txt
130
+ - lib/training_data/it-utf8.txt
131
+ - lib/training_data/ja-utf8.txt
132
+ - lib/training_data/ko-utf8.txt
133
+ - lib/training_data/nl-utf8.txt
134
+ - lib/training_data/no-utf8.txt
135
+ - lib/training_data/pl-utf8.txt
136
+ - lib/training_data/pt-utf8.txt
137
+ - lib/training_data/ro-utf8.txt
138
+ - lib/training_data/ru-utf8.txt
139
+ - lib/training_data/sl-utf8.txt
140
+ - lib/training_data/sv-utf8.txt
141
+ - lib/training_data/th-utf8.txt
142
+ - lib/training_data/tk-utf8.txt
143
+ - lib/training_data/todo/af.txt
144
+ - lib/training_data/todo/amharic-utf.txt
145
+ - lib/training_data/todo/arabic-windows1256.txt
146
+ - lib/training_data/todo/armenian.txt
147
+ - lib/training_data/todo/basque.txt
148
+ - lib/training_data/todo/belarus-windows1251.txt
149
+ - lib/training_data/todo/bosnian.txt
150
+ - lib/training_data/todo/breton.txt
151
+ - lib/training_data/todo/bulgarian-iso8859_5.txt
152
+ - lib/training_data/todo/catalan.txt
153
+ - lib/training_data/todo/croatian-ascii.txt
154
+ - lib/training_data/todo/esperanto.txt
155
+ - lib/training_data/todo/estonian.txt
156
+ - lib/training_data/todo/frisian.txt
157
+ - lib/training_data/todo/georgian.txt
158
+ - lib/training_data/todo/greek-iso8859-7.txt
159
+ - lib/training_data/todo/hawaian.txt
160
+ - lib/training_data/todo/hebrew-iso8859_8.txt
161
+ - lib/training_data/todo/hindi.txt
162
+ - lib/training_data/todo/hungarian.txt
163
+ - lib/training_data/todo/icelandic.txt
164
+ - lib/training_data/todo/indonesian.txt
165
+ - lib/training_data/todo/irish.txt
166
+ - lib/training_data/todo/latin.txt
167
+ - lib/training_data/todo/latvian.txt
168
+ - lib/training_data/todo/lithuanian.txt
169
+ - lib/training_data/todo/malay.txt
170
+ - lib/training_data/todo/manx.txt
171
+ - lib/training_data/todo/marathi.txt
172
+ - lib/training_data/todo/mf.txt
173
+ - lib/training_data/todo/middle_frisian.txt
174
+ - lib/training_data/todo/mingo.txt
175
+ - lib/training_data/todo/nepali.txt
176
+ - lib/training_data/todo/persian.txt
177
+ - lib/training_data/todo/quechua.txt
178
+ - lib/training_data/todo/romanian.txt
179
+ - lib/training_data/todo/rumantsch.txt
180
+ - lib/training_data/todo/sanskrit.txt
181
+ - lib/training_data/todo/scots.txt
182
+ - lib/training_data/todo/scots_gaelic.txt
183
+ - lib/training_data/todo/serbian-ascii.txt
184
+ - lib/training_data/todo/slovak-ascii.txt
185
+ - lib/training_data/todo/slovak-windows1250.txt
186
+ - lib/training_data/todo/slovenian-ascii.txt
187
+ - lib/training_data/todo/slovenian-iso8859_2.txt
188
+ - lib/training_data/todo/sq.txt
189
+ - lib/training_data/todo/swahili.txt
190
+ - lib/training_data/todo/tagalog.txt
191
+ - lib/training_data/todo/tamil.txt
192
+ - lib/training_data/todo/turkish.txt
193
+ - lib/training_data/todo/ukrainian-koi8_r.txt
194
+ - lib/training_data/todo/vietnamese.txt
195
+ - lib/training_data/todo/welsh.txt
196
+ - lib/training_data/todo/yiddish-utf.txt
197
+ - lib/training_data/uk-utf8.txt
198
+ - lib/training_data/vi-utf8.txt
199
+ - lib/training_data/zh-utf8.txt
200
+ - test/language_detector_test.rb
201
+ has_rdoc: true
202
+ homepage: http://github.com/igrigorik/language_detector
203
+ licenses: []
204
+
205
+ post_install_message:
206
+ rdoc_options:
207
+ - --charset=UTF-8
208
+ require_paths:
209
+ - lib
210
+ required_ruby_version: !ruby/object:Gem::Requirement
211
+ requirements:
212
+ - - ">="
213
+ - !ruby/object:Gem::Version
214
+ segments:
215
+ - 0
216
+ version: "0"
217
+ required_rubygems_version: !ruby/object:Gem::Requirement
218
+ requirements:
219
+ - - ">="
220
+ - !ruby/object:Gem::Version
221
+ segments:
222
+ - 0
223
+ version: "0"
224
+ requirements: []
225
+
226
+ rubyforge_project: language_detector
227
+ rubygems_version: 1.3.6
228
+ signing_key:
229
+ specification_version: 3
230
+ summary: Ruby language detection library using n-gram model
231
+ test_files:
232
+ - test/language_detector_test.rb