🎄teratailクリスマスプレゼントキャンペーン2024🎄』開催中!

\teratail特別グッズやAmazonギフトカード最大2,000円分が当たる!/

詳細はこちら
Windows 10

Windows 10は、マイクロソフト社がリリースしたOSです。Modern UIを標準画面にした8.1から、10では再びデスクトップ主体に戻され、UIも変更されています。PCやスマホ、タブレットなど様々なデバイスに幅広く対応していることが特徴です。

Mecab

Mecabは、オープンソースの形態素解析エンジンです。 言語、辞書、コーパスに依存しない汎用的な設計を基本方針としています。 Mecabの由来は、開発者の好物である和布蕪(めかぶ)から名づけられました。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

データマイニング

データマイニングは、購買履歴やクレジットカードの利用履歴、電話の通話履歴など企業にある大量のデータを解析して、その中に隠れたパターンやルールを探し出す技術です。DMと略されることもあります。

自然言語処理

自然言語処理は、日常的に使用される自然言語をコンピューターに処理させる技術やソフトウェアの総称です。

Q&A

1回答

2022閲覧

Mecab:エラーの対処方法

fukubaka

総合スコア11

Windows 10

Windows 10は、マイクロソフト社がリリースしたOSです。Modern UIを標準画面にした8.1から、10では再びデスクトップ主体に戻され、UIも変更されています。PCやスマホ、タブレットなど様々なデバイスに幅広く対応していることが特徴です。

Mecab

Mecabは、オープンソースの形態素解析エンジンです。 言語、辞書、コーパスに依存しない汎用的な設計を基本方針としています。 Mecabの由来は、開発者の好物である和布蕪(めかぶ)から名づけられました。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

データマイニング

データマイニングは、購買履歴やクレジットカードの利用履歴、電話の通話履歴など企業にある大量のデータを解析して、その中に隠れたパターンやルールを探し出す技術です。DMと略されることもあります。

自然言語処理

自然言語処理は、日常的に使用される自然言語をコンピューターに処理させる技術やソフトウェアの総称です。

0グッド

0クリップ

投稿2021/02/08 11:59

編集2021/02/08 22:53

実行したいこと

こちらの記事を参考にして
テキストデータtitle2.csv(1列19000行)に対して
単語の頻出度のカウント、特定の品詞の単語の抽出、辞書リストを取り出し降順に並び替え、そしてcsvファイルとして出力をしたいです。
実行するとエラーが出てしまいました。

初心者すぎてどのように修正したらいいかわかりません。どうかお力添え願います。

エラー内容

TypeError Traceback (most recent call last) <ipython-input-29-f5f0d62ae92a> in <module> 18 mecab = MeCab.Tagger() 19 mecab.parse('') ---> 20 node = mecab.parseToNode(text) 21 22 while node: TypeError: in method 'Tagger_parseToNode', argument 2 of type 'char const *'

該当コード

python

1import MeCab 2import csv 3 4wordFreq_dic = {} 5wordcount_output = [] 6text = "" 7 8#解析テキスト 9with open("title2.csv", "r", newline='' , encoding = "utf-8") as rf: 10 readaer = csv.reader(rf) 11 12#単語頻出度カウント 13def WordFrequencyCount(word): 14 if word in wordFreq_dic: 15 wordFreq_dic[word] +=1 16 17 else: 18 wordFreq_dic.setdefault(word, 1) 19 return wordFreq_dic 20 21#特定の品詞の単語を抽出 22mecab = MeCab.Tagger() 23mecab.parse('') 24node = mecab.parseToNode(text) 25 26while node: 27 if node.feature.split(",")[0] == "名詞": 28 word = node.surface 29 WordFrequencyCount(word) 30 elif node.feature.split(",")[0] =="動詞": 31 word = node.surface 32 WordFrequencyCount(word) 33 elif node.feature.split(",")[0] == "形容詞": 34 word = node.surface 35 WordFrequencyCount(word) 36 elif node.feature.split(",")[0] == "形容動詞": 37 word = node.surface 38 WordFrequencyCount(word) 39 else:pass 40 node = node.next 41 42#辞書リストを取り出し、降順に並び替え 43for item in wordFreq_dic.items(): 44 wordcount_output.append(item) 45wordcount_output = sorted(wordcount_output, key = lambda x:x[1], reverse=True) 46 47#CSV出力 48with open("wordcount_dic.csv", "w", encoding="utf-8") as f: 49 writer = csv.writer(f, lineterminator="\n") 50 writer.writerows(wordcount_output)

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

etherbeg

2021/02/08 14:00 編集

これがコードのすべてですか?import文がないようですが…またmecab.parseToNode()に渡すtextを抽出する部分も見当たらないようですが…単に質問を書き込む際の転記漏れなら修正してください
fukubaka

2021/02/08 19:47

import文など文章訂正しましたので、確認お願い致します。
etherbeg

2021/02/08 22:43

「テキストデータinput.csv(1列19000行)に対して」と書かれていますが、コード中にinput.csvが出てきません
fukubaka

2021/02/08 22:51

申し訳ありません。title2.csvの間違いでした。
jbpb0

2021/02/09 05:16 編集

text = "" の後に何もしてないので、textの中身はからっぽなのに、 mecab.parseToNode(text) をやってます readaer = csv.reader(rf) でcsvファイルを読んだデータから、何かしてtextの中身を作るのではないのでしょうか?
guest

回答1

0

下記の情報によると、ソースコードの入ったファイルがUTF-8で保存されていない場合に同じエラーメッセージが出ています。

[Python] [1] タスク指向型の天気情報案内対話システム (状態遷移ベースの環境準備:MeCab, SCXML)

保存するときの文字コードをUTF-8にしてみてください。

投稿2021/02/08 15:30

ppaul

総合スコア24670

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

fukubaka

2021/02/08 19:57

input.csvとwordcount_dic.csvともにUTF-8で保存してはいるのですが、どこか不備はございますでしょうか?
fukubaka

2021/02/08 22:54

input.csv → title2.csv
ppaul

2021/02/08 23:22

title2.csvとwordcount_dic.csvはこのプログラムが使うデータですね。 そうではなくて、 import MeCab import csv wordFreq_dic = {} が入っているファイルは、UTF-8で保存してしますか?
fukubaka

2021/02/09 00:45

このファイル自体であるinput.ipynbのことですね。確認方法があまりわからないのですが、メモ帳でこのファイルを開くとUTF-8で保存されていました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.36%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問