質問をすることでしか得られない、回答やアドバイスがある。

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

新規登録して質問してみよう
ただいま回答率
85.48%
Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

機械学習

機械学習は、データからパターンを自動的に発見し、そこから知能的な判断を下すためのコンピューターアルゴリズムを指します。人工知能における課題のひとつです。

Q&A

解決済

1回答

1477閲覧

2列のcsvを2変数のdefに入れられない

TarouKotani

総合スコア42

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

機械学習

機械学習は、データからパターンを自動的に発見し、そこから知能的な判断を下すためのコンピューターアルゴリズムを指します。人工知能における課題のひとつです。

0グッド

0クリップ

投稿2017/12/11 00:44

下記のbayes_test.pyを実行すると、以下のようなエラーが出ており、
必要な引数は2つに対し、csvを2列で取り込んでいるのでうまくいくはずのところを、
「カテゴリーという変数が足りない」と表示されます。

csvの取り込みのプロセスで、基礎的なミスがあるのでしょうか?
ご返答いただけましたら幸いです。
よろしくお願いいたします。

Traceback (most recent call last):
File "bayes_test.py", line 11, in <module>
bf.fit(line)
TypeError: fit() missing 1 required positional argument: 'category'

python

1**bayes_test.py** 2from bayes import BayesianFilter 3import csv 4 5bf = BayesianFilter() 6# テキストを学習 7data = [] 8with open('format.csv', 'r', encoding='utf-8') as fp: 9 lines = csv.reader(fp) 10 for line in lines: 11 data.append(line) 12 bf.fit(line) 13pre, scorelist = bf.predict("点検") 14print("結果=", pre) 15print(scorelist) 16 17**bayes.py** 18# テキストを学習する --- (※3) 19 def fit(self, text, category): 20 """ テキストの学習 """ 21 word_list = self.split(text) 22 for word in word_list: 23 self.inc_word(word, category) 24 self.inc_category(category)

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

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

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

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

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

guest

回答1

0

ベストアンサー

エラーメッセージが示す通り、fit関数の引数はtextcategoryの2つであるのにlineというリスト変数を1つしか渡していないのが原因です。
lineがリストとして2つのデータが格納されていれば、bf.fit(line[0],line[1])と呼び出せばよいです。

投稿2017/12/11 00:54

can110

総合スコア38266

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

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

TarouKotani

2017/12/11 01:04

bf.fit(line[0],line[1])に書き換えると下記のエラーになりました csvが2列であることは確認できているのですが、どのような問題がありそうでしょうか Traceback (most recent call last): File "bayes_test.py", line 11, in <module> bf.fit(line[0],line[1]) IndexError: list index out of range
can110

2017/12/11 01:07

まずエラー「IndexError: list index out of range」の意味はご理解できていますか?
TarouKotani

2017/12/11 01:22

解決しました!ありがとうございます。
TarouKotani

2017/12/11 01:23

下記の通りに直しました。その後に別のエラーが出ましたが、この質問は解決しています。 lines = csv.reader(fp) for line in lines: data.append(line) print(len(line)) bf.fit(line[0],line[1])
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問