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

回答編集履歴

2

改善

2018/09/04 12:42

投稿

hayataka2049
hayataka2049

スコア30939

answer CHANGED
@@ -1,4 +1,4 @@
1
- エラーの原因
1
+ #### エラーの原因
2
2
  python2系のMeCabバインディングは、パース系のメソッドの引数がstr(python3のbytesに該当)ですが、python3系のMeCabバインディングではstr(python2のunicodeに該当)です。
3
3
 
4
4
  こう直せばとりあえず動くかと。他にエラーが出ないかどうかは確認していませんが。
@@ -8,11 +8,47 @@
8
8
 
9
9
  ---
10
10
 
11
- そのフォーマットの商品名をMeCabでちゃんと形態素解析でき疑問というか無理そう。むしろ何もしなくてもスペース適当に区切られているのでから、空白区切りで済ませられませんかね
11
+ そのフォーマットの商品名をMeCabで形態素解析は、困難です。
12
12
 
13
+ かなりグチャグチャになります(辞書にもよるとは思いますが……)。
14
+
15
+ ```
16
+ $ mecab
17
+ コカ・コーラ 綾鷹 お茶 ペットボトル (2L×6本)×2箱
18
+ コカ・コーラ 名詞,固有名詞,一般,*,*,*,コカ・コーラ,コカコーラ,コカコーラ
19
+ 綾 名詞,一般,*,*,*,*,綾,アヤ,アヤ
20
+ 鷹 名詞,一般,*,*,*,*,鷹,タカ,タカ
21
+ お茶 名詞,一般,*,*,*,*,お茶,オチャ,オチャ
22
+ ペットボトル 名詞,一般,*,*,*,*,ペットボトル,ペットボトル,ペットボトル
23
+ ( 名詞,サ変接続,*,*,*,*,*
24
+ 2 名詞,数,*,*,*,*,*
25
+ L× 名詞,一般,*,*,*,*,*
26
+ 6 名詞,数,*,*,*,*,*
27
+ 本 名詞,接尾,助数詞,*,*,*,本,ホン,ホン
28
+ ) 名詞,サ変接続,*,*,*,*,*
29
+ × 記号,一般,*,*,*,*,×,カケル,カケル
30
+ 2 名詞,数,*,*,*,*,*
31
+ 箱 名詞,接尾,助数詞,*,*,*,箱,ハコ,ハコ
32
+ EOS
33
+ Clover カットワークはさみ 115 サック付き 36-666
34
+ Clover 名詞,固有名詞,組織,*,*,*,*
35
+ カット 名詞,サ変接続,*,*,*,*,カット,カット,カット
36
+ ワーク 名詞,一般,*,*,*,*,ワーク,ワーク,ワーク
37
+ はさみ 名詞,一般,*,*,*,*,はさみ,ハサミ,ハサミ
38
+ 115 名詞,数,*,*,*,*,*
39
+ サック 名詞,一般,*,*,*,*,サック,サック,サック
40
+ 付き 名詞,接尾,一般,*,*,*,付き,ツキ,ツキ
41
+ 36 名詞,数,*,*,*,*,*
42
+ - 名詞,サ変接続,*,*,*,*,*
43
+ 666 名詞,数,*,*,*,*,*
44
+ EOS
45
+ ```
46
+
47
+ むしろ何もしなくてもスペースで適当に区切られているのですから、空白区切りで済ませられませんかね。
48
+
13
49
  ---
14
50
 
15
- 自分で書くのは辛いので、ライブラリを使いましょう。
51
+ TF-IDFの計算を自分で書くのは辛いので、ライブラリを使いましょう。
16
52
 
17
53
  メジャーな選択肢としては、
18
54
  - sklearnの実装
@@ -21,7 +57,7 @@
21
57
  くらいしかないと思います。gensimの方は使い方が少し面倒くさいので、sklearnを勧めます。
22
58
  (gensimをけなしている訳ではなく、gensimには自由度が高かったり、パフォーマンスやコードの再利用性などが高まるように色々配慮してくれているという利点があります。ただ、それを使いこなすために手間が増えるのは事実です)
23
59
 
24
- 参考リンク
60
+ #### 参考リンク
25
61
  [sklearn.feature_extraction.text.TfidfVectorizer — scikit-learn 0.19.2 documentation](http://scikit-learn.org/stable/modules/generated/sklearn.feature_extraction.text.TfidfVectorizer.html)
26
62
  [scikit-learnでtf-idfを計算する](https://qiita.com/katryo/items/f86971afcb65ce1e7d40)
27
63
  [TF-IDF で文書をベクトル化。python の TfidfVectorizer を使ってみる | コード7区](http://ailaby.com/tfidf/)

1

リンク追加。あと説明追加

2018/09/04 12:42

投稿

hayataka2049
hayataka2049

スコア30939

answer CHANGED
@@ -19,7 +19,10 @@
19
19
  - gensimの実装
20
20
 
21
21
  くらいしかないと思います。gensimの方は使い方が少し面倒くさいので、sklearnを勧めます。
22
+ (gensimをけなしている訳ではなく、gensimには自由度が高かったり、パフォーマンスやコードの再利用性などが高まるように色々配慮してくれているという利点があります。ただ、それを使いこなすために手間が増えるのは事実です)
22
23
 
23
24
  参考リンク
25
+ [sklearn.feature_extraction.text.TfidfVectorizer — scikit-learn 0.19.2 documentation](http://scikit-learn.org/stable/modules/generated/sklearn.feature_extraction.text.TfidfVectorizer.html)
26
+ [scikit-learnでtf-idfを計算する](https://qiita.com/katryo/items/f86971afcb65ce1e7d40)
24
27
  [TF-IDF で文書をベクトル化。python の TfidfVectorizer を使ってみる | コード7区](http://ailaby.com/tfidf/)
25
28
  [【python】TF-IDFで重要語を抽出してみる - 静かなる名辞](https://hayataka2049.hatenablog.jp/entry/2018/07/09/190819)(私のブログです。以前似たようなものを書いたので紹介します)