回答編集履歴

11

些細

2024/08/01 02:23

投稿

quickquip
quickquip

スコア11169

test CHANGED
@@ -1,4 +1,4 @@
1
- `MeCab.Tagger`の引数の文字列の中で、`-`で始まるオプション指定の次にディレクトリやファイルを指定するものに対して、空白が入っているディレクトリを`"`で括って指定できるのは**mecab-python3 パッケージが独自に入れた拡張要素**です。MeCabの公式Pythonバインディングや、mecabパッケージでは、空白を含むディレクトリやファイルは取り扱えません(というか`"`で括ると`"`をファイル名の一部認識しますから)
1
+ `MeCab.Tagger`の引数の文字列の中で、`-`で始まるオプション指定の次にディレクトリやファイルを指定するものに対して、空白が入っているディレクトリを`"`で括って指定できるのは**mecab-python3 パッケージが独自に入れた拡張要素**です。MeCabの公式Pythonバインディングや、mecabパッケージでは、空白を含むディレクトリやファイルは取り扱えません(というか`"`は引数の一部認識されるだけですから)
2
2
  辞書を空白が入ってないディレクトリにコピーして使うのが手っ取り早いでしょう。
3
3
 
4
4
  ----

10

追記

2024/08/01 01:37

投稿

quickquip
quickquip

スコア11169

test CHANGED
@@ -1,2 +1,15 @@
1
- `MeCab.Tagger`の引数の文字列の中で、`-`で始まるオプション指定の次にディレクトリやファイルを指定するものに対して、空白が入っているディレクトリを`"`で括って指定できるのは**mecab-python3 パッケージが独自に入れた拡張要素**です。MeCabの公式Pythonバインディングや、mecabパッケージでは、空白を含むディレクトリやファイルは取り扱えません。
1
+ `MeCab.Tagger`の引数の文字列の中で、`-`で始まるオプション指定の次にディレクトリやファイルを指定するものに対して、空白が入っているディレクトリを`"`で括って指定できるのは**mecab-python3 パッケージが独自に入れた拡張要素**です。MeCabの公式Pythonバインディングや、mecabパッケージでは、空白を含むディレクトリやファイルは取り扱えません(というか`"`で括ると`"`をファイル名の一部と認識しますから)
2
2
  辞書を空白が入ってないディレクトリにコピーして使うのが手っ取り早いでしょう。
3
+
4
+ ----
5
+
6
+ ```
7
+ mecab = MeCab.Tagger('hoge')
8
+ ```
9
+ のように意味を持たない(=そもそもオプションではない)引数を指定しても特にエラーになりませんでした。
10
+ したがって
11
+ ```
12
+ mecab = MeCab.Tagger(r'C:\Program Files\MeCab\dic\NEologd\NEologd.20200910-u.dic')
13
+ ```
14
+ は`C:\Program` と `Files\MeCab\dic\NEologd\NEologd.20200910-u.dic` という意味がないオプションが2つ渡され、ただ無視されているだけと推測します。
15
+ (mecabコマンドだと解析対象ファイルの指定にあたるものですから、Taggerのコンストラクタでは意味がないものとして無視するという挙動は特に不思議ではない気はします。C++のコードの中でどこの部分が無視する挙動を生んでいるのかは推量できませんでした)

9

些細

2024/08/01 00:33

投稿

quickquip
quickquip

スコア11169

test CHANGED
@@ -1,2 +1,2 @@
1
- `MeCab.Tagger`の引数の文字列の中で、`-`で始まるオプション指定の次にディレクトリやファイルを指定するオプションに対して、空白が入っているディレクトリを`"`で括って指定できるのは**mecab-python3 パッケージが独自に入れた拡張要素**です。MeCabの公式Pythonバインディングや、mecabパッケージでは、空白を含むディレクトリ/ファイルは取り扱えません。
1
+ `MeCab.Tagger`の引数の文字列の中で、`-`で始まるオプション指定の次にディレクトリやファイルを指定するものに対して、空白が入っているディレクトリを`"`で括って指定できるのは**mecab-python3 パッケージが独自に入れた拡張要素**です。MeCabの公式Pythonバインディングや、mecabパッケージでは、空白を含むディレクトリファイルは取り扱えません。
2
2
  辞書を空白が入ってないディレクトリにコピーして使うのが手っ取り早いでしょう。

8

修正

2024/07/31 23:20

投稿

quickquip
quickquip

スコア11169

test CHANGED
@@ -1,3 +1,2 @@
1
- 空白が入っているディレクトリを`"`で括って指定できるのはmecab-python3 パッケージが独自に入れた拡張要素です。
1
+ `MeCab.Tagger`の引数の文字列の中で、`-`で始まるオプション指定の次にディレクトリやファイルを指定するオプションに対して、空白が入っているディレクトリを`"`で括って指定できるのは**mecab-python3 パッケージが独自に入れた拡張要素**です。MeCabの公式Pythonバインディングや、mecabパッケージでは、空白を含むディレクトリ/ファイルは取り扱えません。
2
-
3
- mecabパッケージだと空白も"も使えないので、辞書を空白が入ってないディレクトリにコピーしてにかするしかないで
2
+ 辞書を空白が入ってないディレクトリにコピーして使のが手っ取り早いでしょう

7

削除

2024/07/31 09:50

投稿

quickquip
quickquip

スコア11169

test CHANGED
@@ -1,41 +1,3 @@
1
- エラーのこの部分
2
- ```
3
- File "C:\Users\○○\anaconda3\envs\python3716\lib\site-packages\MeCab.py", line 355, in __init__
4
- ```
5
- site-packages\MeCab.py 呼ばれているならあなた mecab-python3 パッケージを使っていません
1
+ 空白入っているディレクトリを`"`で括って指定できるのはmecab-python3 パッケージが独自に入れた拡張要素です。
6
2
 
7
- どうやってインストールしたかしりませんが、[mecabパッケージ](https://pypi.org/project/mecab/)のmasterブランチを使っているみたいです。
8
- Tracebackはこれと一致しているように見えることからの推測です。
9
- https://github.com/ikegami-yukino/mecab/blob/a96d0b3d2ab5a8f6ba9fbac605245f0e441a0779/mecab/python/MeCab.py#L355
10
- (追記: github で tag がついていないけれど PyPI には [0.996.3](https://pypi.org/project/mecab/0.996.3/) が登録されていました。これでしょう)
11
-
12
- **あなたが参考にしたというそのページ**の前の説明 https://nekonogorogoro.com/mecab_setup/#toc8 では
13
- > 仮想環境に入ったら、次のコマンドでPython用のライブラリを導入します。
14
- > pip install mecab-python3
15
- と [mecab-python3 パッケージ](https://pypi.org/project/mecab-python3/) をインストールしましょうということになっています。
16
- **あなたはその通りにしませんでしたね?** (あるいはその後からmecabパッケージをインストールしてしまったのかも?)
17
-
18
- 空白が入っていディレクトリを`"`で括っ指定できのはmecab-python3 パッケージが独自に入れた拡張要素です。
3
+ mecabパッケージだと空白も"も使えないので、辞書を空白が入っていディレクトリにコピーしどうにかすしかないです。
19
- あなたが参考にしたというその人のやり方どおり、mecab-python3 パッケージを使いましょう。
20
-
21
- 私の想像どおりmecabパッケージをインストールしているのだったらアンインストールしてください。
22
-
23
- ----
24
-
25
- 別の可能性としてAnacondaを使用しているから、という理由もあるかもしれません。
26
- あなたが参考にしたページは(おそらくですが)Anacondaを前提にしていません。
27
-
28
- ----
29
- 追記
30
- mecab-python3、3.7 だとWIndows向けバイナリが提供されていないですね。諦めてmecabを使うしかないかもしれません。
31
-
32
- とにかく
33
- **使用するディレクトリに空白を入れない**
34
- **MeCab.Tagger('-d 辞書ディレクトリ -u ユーザ辞書') の 辞書ディレクトリ や ユーザ辞書 を `"` で括らない**
35
- の2点を満たすよう留意して作業すれば**動く可能性はあります**。
36
- **書いてあるとおりにやっているなら** MeCab本体の64bit私家版をインストールしているはずなのでチャンスはありそうです。
37
-
38
- 手持ちのメモだと、mecabパッケージは、先にインストールしてあるMeCab64bit私家版の mecabrc を参照するらしいので、そちらを書き換えるとどうにかなるかもしれません。(なお、このメモ自体の信憑性は高くないです。私はWindowsを使いませんので)
39
- 動くようになるためにどこにどう辞書を配置してどう書くか(ディレクトリに空白は許されるのか? など)はわかりません。
40
-
41
- (どうしても3.7でやりたいなら、形態素解析器のmecabコマンド本体から、C言語でビルドできるくらいのスキルが必要かもしれません)

6

脱字

2024/07/31 06:41

投稿

quickquip
quickquip

スコア11169

test CHANGED
@@ -15,7 +15,7 @@
15
15
  と [mecab-python3 パッケージ](https://pypi.org/project/mecab-python3/) をインストールしましょうということになっています。
16
16
  **あなたはその通りにしませんでしたね?** (あるいはその後からmecabパッケージをインストールしてしまったのかも?)
17
17
 
18
- 空白が入ってディレクトリを`"`で括って指定できるのはmecab-python3 パッケージが独自に入れた拡張要素です。
18
+ 空白が入っているディレクトリを`"`で括って指定できるのはmecab-python3 パッケージが独自に入れた拡張要素です。
19
19
  あなたが参考にしたというその人のやり方どおり、mecab-python3 パッケージを使いましょう。
20
20
 
21
21
  私の想像どおりmecabパッケージをインストールしているのだったらアンインストールしてください。

5

追記

2024/07/30 16:44

投稿

quickquip
quickquip

スコア11169

test CHANGED
@@ -35,4 +35,7 @@
35
35
  の2点を満たすよう留意して作業すれば**動く可能性はあります**。
36
36
  **書いてあるとおりにやっているなら** MeCab本体の64bit私家版をインストールしているはずなのでチャンスはありそうです。
37
37
 
38
+ 手持ちのメモだと、mecabパッケージは、先にインストールしてあるMeCab64bit私家版の mecabrc を参照するらしいので、そちらを書き換えるとどうにかなるかもしれません。(なお、このメモ自体の信憑性は高くないです。私はWindowsを使いませんので)
39
+ 動くようになるためにどこにどう辞書を配置してどう書くか(ディレクトリに空白は許されるのか? など)はわかりません。
40
+
38
41
  (どうしても3.7でやりたいなら、形態素解析器のmecabコマンド本体から、C言語でビルドできるくらいのスキルが必要かもしれません)

4

些細

2024/07/30 16:31

投稿

quickquip
quickquip

スコア11169

test CHANGED
@@ -31,8 +31,8 @@
31
31
 
32
32
  とにかく
33
33
  **使用するディレクトリに空白を入れない**
34
- **MeCab.Tagger('-d 辞書ディレクトリ -u ユーザ辞書') の 辞書ディレクトリ や ユーザ辞書 を `"` で括らないでください**
34
+ **MeCab.Tagger('-d 辞書ディレクトリ -u ユーザ辞書') の 辞書ディレクトリ や ユーザ辞書 を `"` で括らない**
35
- の2点に注意すれば**動く可能性はあります**。
35
+ の2点を満たすよう留して作業すれば**動く可能性はあります**。
36
36
  **書いてあるとおりにやっているなら** MeCab本体の64bit私家版をインストールしているはずなのでチャンスはありそうです。
37
37
 
38
38
  (どうしても3.7でやりたいなら、形態素解析器のmecabコマンド本体から、C言語でビルドできるくらいのスキルが必要かもしれません)

3

追記

2024/07/30 16:29

投稿

quickquip
quickquip

スコア11169

test CHANGED
@@ -24,3 +24,15 @@
24
24
 
25
25
  別の可能性としてAnacondaを使用しているから、という理由もあるかもしれません。
26
26
  あなたが参考にしたページは(おそらくですが)Anacondaを前提にしていません。
27
+
28
+ ----
29
+ 追記
30
+ mecab-python3、3.7 だとWIndows向けバイナリが提供されていないですね。諦めてmecabを使うしかないかもしれません。
31
+
32
+ とにかく
33
+ **使用するディレクトリに空白を入れない**
34
+ **MeCab.Tagger('-d 辞書ディレクトリ -u ユーザ辞書') の 辞書ディレクトリ や ユーザ辞書 を `"` で括らないでください**
35
+ の2点に注意すれば**動く可能性はあります**。
36
+ **書いてあるとおりにやっているなら** MeCab本体の64bit私家版をインストールしているはずなのでチャンスはありそうです。
37
+
38
+ (どうしても3.7でやりたいなら、形態素解析器のmecabコマンド本体から、C言語でビルドできるくらいのスキルが必要かもしれません)

2

追記

2024/07/30 16:18

投稿

quickquip
quickquip

スコア11169

test CHANGED
@@ -7,6 +7,7 @@
7
7
  どうやってインストールしたかしりませんが、[mecabパッケージ](https://pypi.org/project/mecab/)のmasterブランチを使っているみたいです。
8
8
  Tracebackはこれと一致しているように見えることからの推測です。
9
9
  https://github.com/ikegami-yukino/mecab/blob/a96d0b3d2ab5a8f6ba9fbac605245f0e441a0779/mecab/python/MeCab.py#L355
10
+ (追記: github で tag がついていないけれど PyPI には [0.996.3](https://pypi.org/project/mecab/0.996.3/) が登録されていました。これでしょう)
10
11
 
11
12
  **あなたが参考にしたというそのページ**の前の説明 https://nekonogorogoro.com/mecab_setup/#toc8 では
12
13
  > 仮想環境に入ったら、次のコマンドでPython用のライブラリを導入します。

1

些細

2024/07/30 16:10

投稿

quickquip
quickquip

スコア11169

test CHANGED
@@ -4,11 +4,11 @@
4
4
  ```
5
5
  site-packages\MeCab.py が呼ばれているならあなたは mecab-python3 パッケージを使っていません
6
6
 
7
- どうやってインストールしたしりませんが、[mecabパッケージ](https://pypi.org/project/mecab/)のmasterブランチを使っているみたいです。
7
+ どうやってインストールしたしりませんが、[mecabパッケージ](https://pypi.org/project/mecab/)のmasterブランチを使っているみたいです。
8
+ Tracebackはこれと一致しているように見えることからの推測です。
8
- Tracebackはこれと一致していそうです https://github.com/ikegami-yukino/mecab/blob/a96d0b3d2ab5a8f6ba9fbac605245f0e441a0779/mecab/python/MeCab.py#L355
9
+ https://github.com/ikegami-yukino/mecab/blob/a96d0b3d2ab5a8f6ba9fbac605245f0e441a0779/mecab/python/MeCab.py#L355
9
10
 
10
- **あなたが参考にしたというそのページ**の前の説明では
11
- https://nekonogorogoro.com/mecab_setup/#toc8
11
+ **あなたが参考にしたというそのページ**の前の説明 https://nekonogorogoro.com/mecab_setup/#toc8 では
12
12
  > 仮想環境に入ったら、次のコマンドでPython用のライブラリを導入します。
13
13
  > pip install mecab-python3
14
14
  と [mecab-python3 パッケージ](https://pypi.org/project/mecab-python3/) をインストールしましょうということになっています。