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

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

新規登録して質問してみよう
ただいま回答率
85.48%
Windows 10

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

Python 3.x

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

Mecab

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

Q&A

1回答

5131閲覧

python mecab typeerrorになる

kzy2

総合スコア7

Windows 10

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

Python 3.x

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

Mecab

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

0グッド

0クリップ

投稿2020/04/26 04:54

編集2020/04/26 06:53

前提・実現したいこと

pythonでtweetをmecabで形態素解析して文章生成をしようとしているのですが、TypeError: in method 'Tagger_parse', argument 2 of type 'char const *'というerrorが出て困っております。
調べてみたところstr型からbyte型にすればよいのかと思ったのですが、どこを変えればよいかわかないため質問させていただきました

発生している問題・エラーメッセージ

Traceback (most recent call last): File "test03.py", line 102, in <module> MeCab_file() File "test03.py", line 58, in MeCab_file wordlist = mt.parse(data) TypeError: in method 'Tagger_parse', argument 2 of type 'char const *'

該当のソースコード

python3

1 timeline = json.loads(req.text) 2 for tweet in timeline: 3 f = open("tweet.txt" , "a") 4 f = open("tweet.txt" , "w") 5 lists = (tweet["text"]) 6 str_lists = "https://api.twitter.com/1.1/statuses/home_timeline.json" 7 if "http" in lists: 8 lists = lists.split("http", 1)[0] 9 lists = lists.split("@")[0] 10 lists = lists.split("RT")[0] 11 12 f.write(lists) 13 f.flush() 14 f.close() 15 def MeCab_file(): 16 f = open("tweet.txt","rb") 17 data = f.read() 18 f.close() 19 mt = MeCab.Tagger("-Owakati") 20 wordlist = mt.parse(data) 21 wordlist = wordlist.rstrip(" \n").split(" ") 22 23

試したこと

補足情報(FW/ツールのバージョンなど)

python3.7 windows10 mecab64bit

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

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

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

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

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

quickquip

2020/04/26 06:06

str型しか受け付けないと思いますよ。 > 調べてみたところstr型からbyte型にすればよいのかと その情報源を提示した方がいいでしょう。
quickquip

2020/04/26 08:05

Python2でいうバイト文字列とはstrのことです。"unicode型では駄目でstrを渡す必要がある"はPython2では正しいですね。 質問に上がっているソースは、"str型からbyte型にすればよいのかと思ったからbyteを渡すようにした"ソースじゃないんですか?
kzy2

2020/04/26 13:29

python2というところも見落としていました。 大変お恥ずかしい話このソースはhttps://www.jiriki.co.jp/blog/python/python-twitter-bot このサイトからのコピーです。なので完璧に理解できているわけではなくエラーが出るたび調べていき学んでいるというやり方をとっております。 ということなので、自分はstr型だと思い込んでおりbyte型にすればよいのだろうという考えを持ってしまっていたのです。 初歩的なことなのかもしれませんが自分の理解が及ばず大変申し訳ございません。
hayataka2049

2020/04/26 15:17

古そうだし品質もそこまで高くない記事なので、参考にするにしても他のものの方が無難です。5年前のpython2では・・・今日的にはなんの参考にもならない屑情報です。
guest

回答1

0

python

1 def MeCab_file(): 2 f = open("tweet.txt","r") # 変更箇所 3 data = f.read() 4 f.close() 5 mt = MeCab.Tagger("-Owakati") 6 wordlist = mt.parse(data) 7 wordlist = wordlist.rstrip(" \n").split(" ")

ということでしょうか。エンコーディングなどは適切に設定してください。

投稿2020/04/26 10:19

hayataka2049

総合スコア30933

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

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

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

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問