teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

5

些細

2021/09/10 09:48

投稿

quickquip
quickquip

スコア11314

answer CHANGED
@@ -18,7 +18,7 @@
18
18
 
19
19
  ----
20
20
  (追記)
21
- macab-python-windows と mecab-python3 は同名のファイルを含んでいます。この順にインストールしたとすると、今、Pythonのパッケージ
21
+ macab-python-windows と mecab-python3 は同名のファイルを含んでいます。この順にインストールしたとすると、今、Pythonのパッケージは
22
22
 
23
23
  MeCab/ mecab-python3由来
24
24
  MeCab.py macab-python-windows 由来
@@ -28,7 +28,7 @@
28
28
  になっていると想像します。(確認はしてません)
29
29
 
30
30
  空白が取り扱えるような拡張は mecab-python3 が libmecab.dll に独自に施したものです。
31
- しかし libmecab.dll が上書きされているせいで、Pythonでは mecab-python3 を使っているように見えるが空白が使えない、という事態に説明が付きます。
31
+ しかし libmecab.dll が上書きされているなら、Pythonでは mecab-python3 を使っているように見えるが空白が使えない、という事態に説明が付きます。
32
32
 
33
33
  両方アンインストールして mecab-python3 だけを入れ直してください。
34
34
  `-r`オプションは明に指定してください。

4

追記

2021/09/10 09:48

投稿

quickquip
quickquip

スコア11314

answer CHANGED
@@ -13,4 +13,22 @@
13
13
  ```
14
14
 
15
15
  じゃないでしょうか?
16
- ("mecab-python3付属のlibmecab.dll" じゃなくて "mecabの中のlibmecab.dll" が呼ばれているのでは? という推測からです)
16
+ ("mecab-python3付属のlibmecab.dll" じゃなくて "mecabの中のlibmecab.dll" が呼ばれているのでは? という推測からです)
17
+
18
+
19
+ ----
20
+ (追記)
21
+ macab-python-windows と mecab-python3 は同名のファイルを含んでいます。この順にインストールしたとすると、今、Pythonのパッケージには
22
+
23
+ MeCab/ mecab-python3由来
24
+ MeCab.py macab-python-windows 由来
25
+ libmecab.dll macab-python-windows 由来
26
+ _MeCab.〜〜.pyd macab-python-windows 由来
27
+
28
+ になっていると想像します。(確認はしてません)
29
+
30
+ 空白が取り扱えるような拡張は mecab-python3 が libmecab.dll に独自に施したものです。
31
+ しかし libmecab.dll が上書きされているせいで、Pythonでは mecab-python3 を使っているように見えるが空白が使えない、という事態に説明が付きます。
32
+
33
+ 両方アンインストールして mecab-python3 だけを入れ直してください。
34
+ `-r`オプションは明に指定してください。

3

追記

2021/09/10 09:46

投稿

quickquip
quickquip

スコア11314

answer CHANGED
@@ -12,4 +12,5 @@
12
12
  mecab = MeCab.Tagger(r'-r "C:\Program Files\MeCab\etc\mecabrc" -u "C:\Program Files\MeCab\dic\NEologd\NEologd.20200910-u.dic"')
13
13
  ```
14
14
 
15
- じゃないでしょうか?
15
+ じゃないでしょうか?
16
+ ("mecab-python3付属のlibmecab.dll" じゃなくて "mecabの中のlibmecab.dll" が呼ばれているのでは? という推測からです)

2

追記

2021/09/10 09:00

投稿

quickquip
quickquip

スコア11314

answer CHANGED
@@ -2,4 +2,14 @@
2
2
  パス区切りの`\`を、**データ上で**2個にしてください。
3
3
  ```python
4
4
  mecab = MeCab.Tagger(r'-u "C:\Program Files\MeCab\dic\NEologd\NEologd.20200910-u.dic"')
5
- ```
5
+ ```
6
+ ----
7
+ (追記)
8
+
9
+ Pathから`C:\Program Files\MeCab\bin`を外した状態で、
10
+
11
+ ```python
12
+ mecab = MeCab.Tagger(r'-r "C:\Program Files\MeCab\etc\mecabrc" -u "C:\Program Files\MeCab\dic\NEologd\NEologd.20200910-u.dic"')
13
+ ```
14
+
15
+ じゃないでしょうか?

1

修正

2021/09/10 08:43

投稿

quickquip
quickquip

スコア11314

answer CHANGED
@@ -1,5 +1,5 @@
1
1
  mecab-python3は、本家のバインディングに対して独自仕様が入っていて空白付きのディレクトリが扱えるようになってますが、逆に`"`が必須になっています。
2
- `\`を区切りに使いたい時は**データ上で**2個にしてください。
2
+ パス区切りの`\`を**データ上で**2個にしてください。
3
3
  ```python
4
4
  mecab = MeCab.Tagger(r'-u "C:\Program Files\MeCab\dic\NEologd\NEologd.20200910-u.dic"')
5
5
  ```