回答編集履歴

3

追記

2018/05/20 04:32

投稿

umyu
umyu

スコア5846

test CHANGED
@@ -35,3 +35,57 @@
35
35
 
36
36
 
37
37
  site-packages\sysdic\entries_compact0.pyの2行目で無効なトークンのエラー。
38
+
39
+
40
+
41
+ ---
42
+
43
+
44
+
45
+ [(very experimental) NEologd 辞書を内包した janome をビルドする方法](https://github.com/mocobeta/janome/wiki/%28very-experimental%29-NEologd-%E8%BE%9E%E6%9B%B8%E3%82%92%E5%86%85%E5%8C%85%E3%81%97%E3%81%9F-janome-%E3%82%92%E3%83%93%E3%83%AB%E3%83%89%E3%81%99%E3%82%8B%E6%96%B9%E6%B3%95#tokenizer-%E5%88%9D%E6%9C%9F%E5%8C%96)
46
+
47
+
48
+
49
+ > Tokenizer 初期化
50
+
51
+ Tokenizer 初期化時,mmap=True オプションが必須です。このオプションをつけないと, LoadingDictionaryError が発生します。
52
+
53
+
54
+
55
+ よって、問題は
56
+
57
+ > a = Analyzer(token_filters)
58
+
59
+
60
+
61
+ で`self.tokenizer = Tokenizer()`が引数無し呼び出されているのが問題なため、
62
+
63
+ `Tokenizer`を生成し`Analyzer`の引数として渡せばよいのでは。
64
+
65
+
66
+
67
+ ```Python
68
+
69
+ # -*- coding: utf-8 -*-
70
+
71
+ from janome.tokenizer import Tokenizer
72
+
73
+ from janome.analyzer import Analyzer
74
+
75
+ from janome.tokenfilter import *
76
+
77
+ text = u'すもももももももものうち'
78
+
79
+ tokenizer = Tokenizer(mmap=True)
80
+
81
+ token_filters = [POSKeepFilter('名詞'), TokenCountFilter(att='base_form')]
82
+
83
+ a = Analyzer(tokenizer=tokenizer, token_filters = token_filters)
84
+
85
+ for k, v in a.analyze(text):
86
+
87
+ print('%s: %d' % (k, v))
88
+
89
+
90
+
91
+ ```

2

追記

2018/05/20 04:32

投稿

umyu
umyu

スコア5846

test CHANGED
@@ -28,7 +28,7 @@
28
28
 
29
29
 
30
30
 
31
- 具体的なエラーと言われても、エラーメッセージ通だと思いすが
31
+ 具体的なエラーと言われても、こちらの環境では問題を再現できないので、現状質問文で提示されている情報以上の事はわかりません
32
32
 
33
33
  > SyntaxError: invalid token (entries_compact0.py, line 2)
34
34
 

1

追記

2018/05/20 04:01

投稿

umyu
umyu

スコア5846

test CHANGED
@@ -11,3 +11,27 @@
11
11
 
12
12
 
13
13
  エラーメッセージを見る限りでは、辞書ファイルを読もうとしてライブラリ内部でエラーが発生しているように見受けられます。
14
+
15
+
16
+
17
+ ---
18
+
19
+
20
+
21
+ >James1201さんへ
22
+
23
+ > 辞書はデフォルトのではなく新規語に対応できるようにアップデートした
24
+
25
+
26
+
27
+ そういう重要な事項はどういう手順で辞書のアップデートを行ったのかも含めて質問文に追記してくださいな。。。
28
+
29
+
30
+
31
+ 具体的なエラーと言われても、エラーメッセージ通りだと思いますが。
32
+
33
+ > SyntaxError: invalid token (entries_compact0.py, line 2)
34
+
35
+
36
+
37
+ site-packages\sysdic\entries_compact0.pyの2行目で無効なトークンのエラー。