質問編集履歴

2

タイトルの時期と方法について記載変更しました。

2020/11/15 22:22

投稿

dendenmushi
dendenmushi

スコア98

test CHANGED
@@ -1 +1 @@
1
- mecabの単語辞書追加をしベクトル表現を利用したい。(2020/11
1
+ mecabの単語辞書追加をしベクトル表現を利用したい。(2020年Google Colab版
test CHANGED
File without changes

1

すみません。質問文が重複していましたので整理しました。

2020/11/15 22:22

投稿

dendenmushi
dendenmushi

スコア98

test CHANGED
File without changes
test CHANGED
@@ -20,7 +20,15 @@
20
20
 
21
21
 
22
22
 
23
+
24
+
23
- ### 前提状態 ###
25
+ ### 前提状態
26
+
27
+
28
+
29
+ **~①追加辞書の用意~**
30
+
31
+
24
32
 
25
33
  Google Colab
26
34
 
@@ -84,7 +92,9 @@
84
92
 
85
93
  ```
86
94
 
87
- このpythonコードによって辞書別に結果が違うことを確認。
95
+ このpythonコードによって辞書別に結果が違うことを確認しました
96
+
97
+
88
98
 
89
99
  例)
90
100
 
@@ -92,6 +102,20 @@
92
102
 
93
103
  Neologd辞書⇒パウエル国務長官
94
104
 
105
+ ![イメージ説明](22c11367c8089ff99c584d99b542684e.jpeg)
106
+
107
+ つまり、追加辞書側Neologdにはパウエル国務長官というワードがあるため全体ワードとして認識している。
108
+
109
+
110
+
111
+
112
+
113
+
114
+
115
+
116
+
117
+ **~②Gensimのword2vecモデルの準備~**
118
+
95
119
 
96
120
 
97
121
  [word2vec データ参考サイト
@@ -120,12 +144,8 @@
120
144
 
121
145
  !git submodule init
122
146
 
123
-
124
-
125
147
  !git submodule update
126
148
 
127
-
128
-
129
149
  cd content/
130
150
 
131
151
  ```
@@ -148,17 +168,59 @@
148
168
 
149
169
  ```
150
170
 
171
+ ### 現状
172
+
173
+ ![イメージ説明](1b164f073d7bb3c76affb7d844fddfed.jpeg)
174
+
175
+
176
+
151
177
 
152
178
 
153
179
  ### 理想
154
180
 
155
181
  Neologd辞書でお花見大好き人間が「お花見 大好き 人間」
156
182
 
157
- 単語登録をすると「お花見大好き人間」になって欲しい
183
+ 単語登録をすると「お花見大好き人間」として表示になって欲しい
184
+
158
-
185
+ 結果的にはそれを単語ベクトルとして使用していきたい。
159
-
160
-
186
+
187
+
188
+
189
+
190
+
161
- 新しい単語
191
+ ### 新しい単語の登録方法
192
+
193
+
194
+
195
+ ①CSVの作成
196
+
197
+ ![イメージ説明](2306e850f4876d3604c4a23c3a188c3e.jpeg)
198
+
199
+ utf-8で保存
200
+
201
+
202
+
203
+ ②Google ColabにDrag&Drop
204
+
205
+ ![イメージ説明](ab36538550674ec6c20e785ea251a6a4.jpeg)
206
+
207
+
208
+
209
+
210
+
211
+ ③CSVのコンパイル
212
+
213
+ 参考サイトは以下。
214
+
215
+ [方法1:Mecabの辞書をカスタマイズする](http://www.mwsoft.jp/programming/nlp/mecab_dictionary_customize.html)
216
+
217
+
218
+
219
+ ![イメージ説明](7acc0d4d5bf699d8dad293241e0dcd98.jpeg)
220
+
221
+
222
+
223
+
162
224
 
163
225
  ### 発生している問題・エラーメッセージ
164
226
 
@@ -166,314 +228,52 @@
166
228
 
167
229
  ```
168
230
 
169
- エラーメッセージ
231
+ no job control
170
-
232
+
171
- ```
233
+ ```
234
+
235
+
236
+
172
-
237
+ 他に試した方法として、そもそも初めのコンパイル時にCSVの中に入れてしまう方法を行ってみようと思いました。
238
+
239
+
240
+
173
-
241
+ 方法2:
242
+
174
-
243
+ mecab-ipadic-neologdのbinの中にinstall-mecab-ipadic-neologdがあり、そのファイルにreadコマンドで実行中にエンターキーを促し一定期間実行が止まるようにし(下画像の赤数字1と赤数字2)、buidフォルダ配下のに追加ワードを書いたCSVを配置(下の画像の赤数字3)
244
+
245
+ ![イメージ説明](3ade49732c3a9a3f78075cf2a3d70f5d.jpeg)
246
+
247
+
248
+
249
+ Drag&Drop後のcsvの様子。(下の画像)
250
+
251
+ ![イメージ説明](b35bf6b88942316a662cdcbcbe4d46af.jpeg)
252
+
253
+
254
+
255
+ 結果、
256
+
257
+ ![イメージ説明](8a68e9df5a778c03a5c2bbc450e6386a.jpeg)
258
+
259
+
260
+
175
- ### 該当のソースコード
261
+ 登録されていませんでした。
176
-
177
-
178
-
262
+
179
- ```言語名入力
263
+ CSVをbuild配下のmecab-ipadic-2.7.0-20070801-neologd-20200910に置くとで、一緒コンパイル処理してくれるとサイトで記載ありまして実行してみましたが。以下の通りでした。
180
-
181
- ソースコード
264
+
182
-
183
- ```
184
-
185
-
186
-
187
- ### 試したこと
188
-
189
-
190
-
191
- ここに問題に対して試したことを記載してください。
265
+ ![イメージ説明](8c15a047a50109c2f0537dc4943a9139.jpeg)
266
+
267
+
268
+
269
+
270
+
271
+ 個別に追加する方法や、コンパイル時にCSVファイルを混入させる方法などいくつか試しましたが、どれもうまくいきませんでした。知見ある方どなたかアドバイス頂けないでしょうか。よろしくお願い致します。
192
272
 
193
273
 
194
274
 
195
275
  ### 補足情報(FW/ツールのバージョンなど)
196
276
 
197
-
198
-
199
- ここにより詳細な情報を記載してください。
200
-
201
-
202
-
203
- ### 前提・実現したいこと
204
-
205
-
206
-
207
- mecabをGoogle Colabにて使用しています。
208
-
209
- 通常辞書に加えてNeologd辞書を追加中です。
210
-
211
- 新しい単語を追加し単語ベクトルとして利用したいです。
212
-
213
-
214
-
215
- ### 参考サイト
216
-
217
- [Google Colab Mecab](https://qiita.com/pytry3g/items/897ae738b8fbd3ae7893)
218
-
219
-
220
-
221
- [辞書導入](https://qiita.com/Sak1361/items/47e9ec464ccc770cd65c)
222
-
223
-
224
-
225
- ### 前提状態
226
-
227
-
228
-
229
- **~①追加辞書の用意~**
230
-
231
-
232
-
233
- Google Colab
234
-
235
-
236
-
237
- ```linux
238
-
239
- !apt install aptitude
240
-
241
-
242
-
243
- !aptitude install mecab libmecab-dev mecab-ipadic-utf8 git make curl xz-utils file -y
244
-
245
-
246
-
247
- !pip install mecab-python3==0.7
248
-
249
-
250
-
251
- !git clone --depth 1 https://github.com/neologd/mecab-ipadic-neologd.git
252
-
253
-
254
-
255
- cd mecab-ipadic-neologd/
256
-
257
-
258
-
259
- !sudo ./bin/install-mecab-ipadic-neologd -n -a
260
-
261
-
262
-
263
- # 追加辞書の場所
264
-
265
- !echo `mecab-config --dicdir`"/mecab-ipadic-neologd"
266
-
267
-
268
-
269
- ```
270
-
271
-
272
-
273
- ```python
274
-
275
- import MeCab
276
-
277
- wakati = MeCab.Tagger('-Owakati') #分かち書き
278
-
279
- neo_wakati = MeCab.Tagger('-Owakati -d /usr/lib/x86_64-linux-gnu/mecab/dic/mecab-ipadic-neologd') #追加辞書を適用
280
-
281
- word = input("分かち書き:")
282
-
283
- wakati = wakati.parse(word).strip()
284
-
285
- neo_wakati = neo_wakati.parse(word).strip()
286
-
287
-
288
-
289
- print('通常辞書:' + wakati)
290
-
291
- print('追加辞書:' + neo_wakati)
292
-
293
- ```
294
-
295
- このpythonコードによって辞書別に結果が違うことを確認しました。
296
-
297
-
298
-
299
- 例)
300
-
301
- 通常辞書⇒パウエル 国務長官
302
-
303
- Neologd辞書⇒パウエル国務長官
304
-
305
- ![イメージ説明](22c11367c8089ff99c584d99b542684e.jpeg)
306
-
307
- つまり、追加辞書側Neologdにはパウエル国務長官というワードがあるため全体ワードとして認識している。
308
-
309
-
310
-
311
-
312
-
313
-
314
-
315
-
316
-
317
- **~②Gensimのword2vecモデルの準備~**
318
-
319
-
320
-
321
- [word2vec データ参考サイト
322
-
323
- ](https://aial.shiroyagi.co.jp/2017/02/japanese-word2vec-model-builder/)
324
-
325
-
326
-
327
- [Gensimのモデルを取得](http://public.shiroyagi.s3.amazonaws.com/latest-ja-wyord2vec-gensim-model.zip)
328
-
329
- ここから一度開発PCのwindowsにダウンロードしzip解凍してから以下をGoogle ColabにDrag&Drop
330
-
331
-
332
-
333
- word2vec.gensim.model
334
-
335
- word2vec.gensim.model.syn1neg.npy
336
-
337
- word2vec.gensim.model.wv.syn0.npy
338
-
339
-
340
-
341
-
342
-
343
- ```linux
344
-
345
- !git submodule init
346
-
347
- !git submodule update
348
-
349
- cd content/
350
-
351
- ```
352
-
353
-
354
-
355
- ```python
356
-
357
- from gensim.models.word2vec import Word2Vec
358
-
359
-
360
-
361
- model_path = 'word2vec.gensim.model'
362
-
363
- model = Word2Vec.load(model_path)
364
-
365
-
366
-
367
- model.wv['お花見大好き人間']
368
-
369
- ```
370
-
371
- ### 現状
372
-
373
- ![イメージ説明](1b164f073d7bb3c76affb7d844fddfed.jpeg)
374
-
375
-
376
-
377
-
378
-
379
- ### 理想
380
-
381
- Neologd辞書でお花見大好き人間が「お花見 大好き 人間」
382
-
383
- 単語登録をすると「お花見大好き人間」として表示になって欲しい。
384
-
385
- 結果的にはそれを単語ベクトルとして使用していきたい。
386
-
387
-
388
-
389
-
390
-
391
- ### 新しい単語の登録方法
392
-
393
-
394
-
395
- ①CSVの作成
396
-
397
- ![イメージ説明](2306e850f4876d3604c4a23c3a188c3e.jpeg)
398
-
399
- utf-8で保存
400
-
401
-
402
-
403
- ②Google ColabにDrag&Drop
404
-
405
- ![イメージ説明](ab36538550674ec6c20e785ea251a6a4.jpeg)
406
-
407
-
408
-
409
-
410
-
411
- ③CSVのコンパイル
412
-
413
- 参考サイトは以下。
414
-
415
- [方法1:Mecabの辞書をカスタマイズする](http://www.mwsoft.jp/programming/nlp/mecab_dictionary_customize.html)
416
-
417
-
418
-
419
- ![イメージ説明](7acc0d4d5bf699d8dad293241e0dcd98.jpeg)
420
-
421
-
422
-
423
-
424
-
425
- ### 発生している問題・エラーメッセージ
426
-
427
-
428
-
429
- ```
430
-
431
- no job control
432
-
433
- ```
434
-
435
-
436
-
437
- 他に試した方法として、そもそも初めのコンパイル時にCSVの中に入れてしまう方法を行ってみようと思いました。
438
-
439
-
440
-
441
- 方法2:
442
-
443
- mecab-ipadic-neologdのbinの中にinstall-mecab-ipadic-neologdがあり、そのファイルにreadコマンドで実行中にエンターキーを促し一定期間実行が止まるようにし(下画像の赤数字1と赤数字2)、buidフォルダ配下のに追加ワードを書いたCSVを配置(下の画像の赤数字3)
444
-
445
- ![イメージ説明](3ade49732c3a9a3f78075cf2a3d70f5d.jpeg)
446
-
447
-
448
-
449
- Drag&Drop後のcsvの様子。(下の画像)
450
-
451
- ![イメージ説明](b35bf6b88942316a662cdcbcbe4d46af.jpeg)
452
-
453
-
454
-
455
- 結果、
456
-
457
- ![イメージ説明](8a68e9df5a778c03a5c2bbc450e6386a.jpeg)
458
-
459
-
460
-
461
- 登録されていませんでした。
462
-
463
- CSVをbuild配下のmecab-ipadic-2.7.0-20070801-neologd-20200910に置くことで、一緒にコンパイル処理をしてくれるとサイトで記載ありまして実行してみましたが。以下の通りでした。
464
-
465
- ![イメージ説明](8c15a047a50109c2f0537dc4943a9139.jpeg)
466
-
467
-
468
-
469
-
470
-
471
- 個別に追加する方法や、コンパイル時にCSVファイルを混入させる方法などいくつか試しましたが、どれもうまくいきませんでした。知見ある方どなたかアドバイス頂けないでしょうか。よろしくお願い致します。
472
-
473
-
474
-
475
- ### 補足情報(FW/ツールのバージョンなど)
476
-
477
277
  開発PCはwinodws10
478
278
 
479
279
  Google colabはLinux.