OSDN Git Service

mecab dictionary. nvdajp ti32140
[nvdajp/nvdajpmiscdep.git] / include / jtalk / eng_dic_maker.py
1 # eng_dic_maker.py for nvdajp_jtalk\r
2 # -*- coding: utf-8 -*-\r
3 # since 2010-12-05 by Takuya Nishimoto\r
4 # bep-eng.dic is available at:\r
5 # http://cpansearch.perl.org/src/MASH/Lingua-JA-Yomi-0.01/lib/Lingua/JA/bep-eng.dic\r
6 from __future__ import unicode_literals\r
7 \r
8 IN_FILE_DEFAULT = 'c:/work/nvda/bep-eng.dic'\r
9 OUT_FILE = 'nvdajp-eng-dic.csv'\r
10 DEFAULT_COST = 1600\r
11 \r
12 import os\r
13 from os import path\r
14 from alpha2mb import alpha2mb\r
15 \r
16 def make_dic(IN_FILE, CODE, THISDIR):\r
17         import re\r
18         d = [\r
19                 ['alt',         'オルト'],\r
20                 ['acrobat', 'アクロバット'],\r
21                 ['adobe',       'アドビー', "1/4", 1000],\r
22                 ['about',       'アバウト', '2/4'],\r
23                 ['ass',         'アス', "1/2", 10000],\r
24                 ['azure',       'アジュール', None, 100],\r
25                 ['api',     'エーピーアイ', None, 500],\r
26                 ['blank',       'ブランク'],\r
27                 ['biz',         'ビズ'],\r
28                 ['bazaar',      'バザール'],\r
29                 ['cam',         'キャム'],\r
30                 ['ctrl',        'コントロール'],\r
31                 ['console', 'コンソール'],\r
32                 ['caps',        'キャプス'],\r
33                 ['cygwin',      'シグウィン'],\r
34                 ['choose',  'チュウズ', None, 1000],\r
35                 ['delete',      'デリート'],\r
36                 ['del',         'デリート'],\r
37                 ['doxygen', 'ドキシゲン'],\r
38                 ['explorer', 'エクスプローラ'],\r
39                 ['esc',         'エスケープ'],\r
40                 ['enter',       'エンター'],\r
41                 ['editions', 'エディションズ'],\r
42                 ['essentials', 'エセンシャルズ'],\r
43                 ['extentions', 'エクステンションズ'],\r
44                 ['firefox', 'ファイアフォックス'],\r
45                 ['for',         'フォー'],\r
46                 ['foryou',      'フォーユー'],\r
47                 ['folders', 'フォルダーズ'],\r
48                 ['favo', 'ファボ'],\r
49                 ['failed', 'フェイルド'],\r
50                 ['guide',       'ガイド', None, 1000],\r
51                 ['google',      'グーグル'],\r
52                 ['gnu',         'グニュー'],\r
53                 ['home',        'ホーム'],\r
54                 ['hub',         'ハブ'],\r
55                 ['href',        'エイチレフ'],\r
56                 ['internet', 'インターネット'],\r
57                 ['insert',      'インサート'],\r
58                 ['iis',         'アイアイエス'],\r
59                 ['impaired', 'インペアド'],\r
60                 ['java',        'ジャバ'],\r
61                 ['jaxa',    'ジャクサ'],\r
62                 ['konica',      'コニカ'],\r
63                 ['kinect',      'キネクト'],\r
64                 ['kddi',        'ケーディーディーアイ'],\r
65                 ['manage',  'マネイジ', None, 1000],\r
66                 ['micro',       'マイクロ'],\r
67                 ['mozilla', 'モジラ'],\r
68                 ['media',   'メディア', "1/3", 1000],\r
69                 ['mixi',        'ミクシー'],\r
70                 ['open',        'オープン'],\r
71                 ['office',      'オフィス'],\r
72                 ['operation',   'オペレーション', None, 1000],\r
73                 ['python',      'パイソン'],\r
74                 ['pro',         'プロ'],\r
75                 ['radio',       'ラジオ', "1/3", 800],\r
76                 ['shift',       'シフト'],\r
77                 ['skype',       'スカイプ', "2/4"],\r
78                 ['soft',        'ソフト'],\r
79                 ['setup',       'セットアップ'],\r
80                 ['systems', 'システムズ'],\r
81                 ['shared',  'シェアード'],\r
82                 ['think',       'シンク'],\r
83                 ['talk',        'トーク'],\r
84                 ['tab',         'タブ'],\r
85                 ['tunes',       'チューンズ', '1/4', 10],\r
86                 ['tools',       'ツールズ', '1/4'],\r
87                 ['togetter',    'トゥギャッター'],\r
88                 ['tube',        'チューブ', '1/3', 600],\r
89                 ['update',      'アップデート'],\r
90                 ['ui',  'ユーアイ'],\r
91                 ['uac',         'ユーエーシー'],\r
92                 ['version', 'バージョン'],\r
93                 ['vantage', 'バンテージ'],\r
94                 ['wave',        'ウェーブ'],\r
95                 ['welcome', 'ウェルカム'],\r
96                 ['windows', 'ウィンドウズ'],\r
97                 ['xna',     'エクスエヌエー'],\r
98                 ['you',         'ユー', None, 660],\r
99                 ['zune',        'ズーン'],\r
100                 \r
101                 ['dev',                 'デブ'],\r
102                 ['jis',                 'ジス',                       "1/2", 1000],\r
103                 ['audio',               'オーディオ',              "1/4", 610],\r
104                 ['suite',               'スイート',                 "2/4", 1000],\r
105                 ['opensource',  'オープンソース', None, 1000],\r
106                 ['notepad',     'ノートパッド', None, 1000],\r
107                 ['guidebook',   'ガイドブック', None, 1000],\r
108                 ['blog',                'ブログ', None, 1000],\r
109                 ['matlab',              'マトラブ', None, 1000],\r
110                 ['keyboard',    'キーボード', None, 1000],\r
111                 ['plugins',     'プラグインズ', None, 1000],\r
112                 ['facebook',    'フェイスブック', None, 1000],\r
113                 ['desktop',     'デスクトップ', None, 1000],\r
114                 ['output',              'アウトプット', None, 1000],\r
115                 ['nullsoft',    'ヌルソフト', None, 1000],\r
116                 ['cygdrive',    'シグドライブ', None, 1000],\r
117                 ['ustream',     'ユーストリーム', None, 1000],\r
118                 ['ubuntu',              'ウブンツー', None, 1000],\r
119                 ['ware',                'ウェアー', None, 1000],\r
120                 \r
121                 ['time',                'タイム', None, 1000],\r
122                 ['home',                'ホーム', None, 1000],\r
123                 ['wikipedia',   'ウイキペディーア',     "0/8", 1000],\r
124                 ['tepco',               'テプコ',                    "1/3", 1000],\r
125                 ['yahoo',               'ヤフー',                    "2/3", 1000],\r
126                 ['japan',               'ジャパン',         "2/3", 1000],\r
127                 ['japanese',    'ジャパニーズ',   "3/5", 900],\r
128                 ['favorites',   'フェイバリッツ', "1/6"],\r
129                 ['documents',   'ドキュメンツ', "1/5"],\r
130                 ['settings',    'セッティングズ', "1/6"],\r
131                 ['redistributable', 'リディストリビュータブル', "6/10"],\r
132                 ['app',         'アップ'],\r
133                 ['types',       'タイプス'],\r
134                 ['mouse',       'マウス', "1/3", 500],\r
135                 \r
136                 ['pref',                'プリフ',                    "1/3", 1000],\r
137                 ['anpi',                'アンピ',                    "1/3", 1000],\r
138                 ['asian',               'アジアン',         "1/4", 1000],\r
139                 ['asahi',               'アサヒ',                    "1/3", 1000],\r
140                 ['edu',                 'エデュー',         "1/3", 1000],\r
141                 ['gamba',               'ガンバ',                    "1/3", 1000],\r
142                 ['genpatsu',    'ゲンパツ',         "1/4", 1000],\r
143                 ['hinan',               'ヒナン',                    "1/3", 1000],\r
144                 ['horijun',             'ホリジュン',              "1/4", 1000],\r
145                 ['inosenaoki',  'イノセナオキ',   "1/7", 1000],\r
146                 ['kahoku',              'カホク',                    "1/3", 1000],\r
147                 ['kurogen',             'クロゲン',         "1/4", 1000],\r
148                 ['medic',               'メディック',              "1/4", 1000],\r
149                 ['mizu',                        'ミズ',                       "2/2", 1000],\r
150                 ['minpo',               'ミンポー',         "1/4", 1000],\r
151                 ['seikatsu',    'セーカツ',         "1/4", 1000],\r
152                 ['sagasu',              'サガス',                    "1/3", 1000],\r
153                 ['shimpo',              'シンポー',                 "1/4", 1000],\r
154                 ['shimbun',     'シンブン',         "1/4", 1000],\r
155                 ['teiden',              'テーデン',         "1/4", 1000],\r
156                 ['tokuho',              'トクホー',         "1/4", 1000],\r
157                 ['takeyama',    'タケヤマ',         "1/4", 1000],\r
158                 ['takeshi',             'タケシ',                    "1/3", 1000],\r
159 \r
160                 ['hokkaido',    'ホッカイドー',   None, 1000],\r
161                 ['yamagata',    'ヤマガタ', None, 1000],\r
162                 ['akita',               'アキタ', None, 1000],\r
163                 ['aomori',              'アオモリ', None, 1000],\r
164                 ['iwate',               'イワテ', None, 1000],\r
165                 ['tsukuba',     'ツクバ', None, 1000],\r
166                 ['oshu',                'オーシュー', None, 1000],\r
167                 ['hachinohe',   'ハチノヘ', None, 1000],\r
168                 ['kesennuma',   'ケセンヌマ', None, 1000],\r
169                 ['kantei',              'カンテー', None, 1000],\r
170                 ['saigai',              'サイガイ', None, 1000],\r
171                 ['tochigi',     'トチギ', None, 1000],\r
172                 ['kashima',     'カシマ', None, 1000],\r
173                 ['morioka',     'モリオカ',                 "2/4", 1000],\r
174                 ['miyagi',              'ミヤギ',                    "1/3", 1000],\r
175                 ['fukushima',   'フクシマ',                 "2/4", 1000],\r
176                 ['niigata',     'ニーガタ',                 "0/4", 1000],\r
177                 ['asshuku',             'アッシュク',              "0/4",  ],\r
178                 ['mei',                 'メイ',                       "1/2", 100],\r
179                 \r
180                 ['akb',                 'エーケービー',           "1/6", 1000],\r
181                 ['npo',                 'エヌピーオー',           "2/6", 1000],\r
182                 ['nec',                 'エヌイーシー',           "1/6",  ],\r
183                 ['nvda',                'エヌブイディーエー',  "1/8", 1000],\r
184                 ['nico',                'ニコ',                               "1/2", 1000],\r
185                 ['jp',                  'ジェーピー',                      "1/4", 1000],\r
186                 ['co',                  'シーオー',                         "1/4", 1000],\r
187                 ['usb',                 'ユーエスビー',           "1/6", 1000],\r
188                 ['faq',                 'エフエーキュー',                "1/6", 1000],\r
189                 ['iaea',                'アイエーイーエー',     "7/8", 1000],\r
190                 ['sjis',                'エスジス',                         "0/4", 1000],\r
191                 ['euc',                 'イーユーシー',           "1/6", 1000],\r
192                 ['au',                  'エーユー',                         "1/4", 600],\r
193                 ['id',                  'アイディー',                      "3/4", 1000],\r
194                 ['it',                  'アイティー',                      "3/4", 1000],\r
195                 ['adsl',                'エーディーエスエル'   "1/8",  ],\r
196                 ['ime',                 'アイエムイー',           "0/6", 600],\r
197                 ['files',               'ファイルズ',                      "1/4", 600],\r
198                 ['docs',                'ドックス',                         "1/4", 600],\r
199                 ['page',                'ページ',                    "1/3", 600],\r
200                 ['everyone', 'エブリワン', "1/5"],\r
201                 ['users', 'ユーザーズ', "1/5"],\r
202                 ['allowed', 'アラウド', "2/4"],\r
203                 ['designed', 'デザインド', "2/5"],\r
204                 ['database', 'データベース', "1/5"],\r
205                 ['butt', 'バットゥ', "1/4", 10000],\r
206                 ['opened', 'オープンド', "1/5"],\r
207                 ['closed', 'クローズド', "2/5"],\r
208                 ['layered', 'レイヤード', '1/5'],\r
209                 ['required', 'リクワイアード', '3/7'],\r
210                 ['iconified', 'アイコニファイド', '1/8'],\r
211                 ['focusable', 'フォウカサブル', '1/6'],\r
212                 ['editable', 'エディタブル', '1/5'],\r
213                 ['draggable', 'ドゥラッガブル', '2/6'],\r
214                 ['contains', 'コンテインズ', '3/6'],\r
215                 ['errors', 'エラーズ'],\r
216                 ['previously', 'プリビアスリ'],\r
217                 ['entered', 'エンタード'],\r
218                 ['turns', 'ターンズ'],\r
219                 ['toggles', 'トグルズ'],\r
220                 ['clicks', 'クリックス'],\r
221                 ['unlocks', 'アンロックス'],\r
222                 ['locks', 'ロックス'],\r
223                 ['controls', 'コントゥロウルズ'],\r
224                 ['currently', 'カレントリ'],\r
225                 ['synth', 'シンセ'],\r
226                 ['moves', 'ムーブズ'],\r
227                 ['characters', 'キャラクターズ'],\r
228                 ['keys', 'キーズ'],\r
229                 ['cycles', 'サイクルズ'],\r
230                 ['levels', 'レベルズ'],\r
231                 ['speaks', 'スピークス'],\r
232                 ['untitled', 'アンタイトルド'],\r
233                 ['flanger', 'フランジャー'],\r
234                 ['resample', 'リサンプル'],\r
235                 ['epub', 'イーパブ'],\r
236                 ['libre', 'リブレ'],\r
237                 ['gpu', 'ジーピーユー'],\r
238                 ['unicode', 'ユニコウドゥ'],\r
239                 ['drivers', 'ドゥライバーズ'],\r
240                 ['unicode', 'ユニコウドゥ'],\r
241                 ['visum', 'ビズム'],\r
242         ]\r
243         k = {}\r
244         for i in d:\r
245                 k[i[0]] = True\r
246         for line in open(IN_FILE):\r
247                 if line[0] == '#': continue\r
248                 a1, a2 = line.rstrip().decode('UTF-8').split(' ')\r
249                 a1 = re.sub("'", "\\'", a1)\r
250                 a1 = a1.lower()\r
251                 if not k.has_key(a1):\r
252                         d.append([a1, a2])\r
253                         k[a1] = True\r
254         d.sort()\r
255         with open(path.join(THISDIR, OUT_FILE), "w") as file:\r
256                 for i in d:\r
257                         k = i[0]\r
258                         alpha_count = len(k)\r
259                         k1 = alpha2mb(k.lower())\r
260                         y = i[1]\r
261                         # default pros\r
262                         mora_count = len(y)\r
263                         pros = "1/%d" % mora_count\r
264                         # default cost\r
265                         cost = DEFAULT_COST\r
266                         if alpha_count <= 2: cost = cost * 5\r
267                         # override by entry\r
268                         if len(i) >= 3:\r
269                                 if i[2] != None: pros = i[2]\r
270                         if len(i) >= 4: cost = i[3]\r
271                         # 表層形,左文脈ID,右文脈ID,コスト,品詞,品詞細分類1,品詞細分類2,品詞細分類3,活用形,活用型,原形,読み,発音\r
272                         s = "%s,,,%d,名詞,一般,*,*,*,*,%s,%s,%s,%s,C0\n" % (k1,cost,k1,y,y,pros)\r
273                         file.write(s.encode(CODE))\r
274 \r
275 if __name__ == '__main__':\r
276         make_dic(IN_FILE_DEFAULT)\r