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

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

新規登録して質問してみよう
ただいま回答率
85.50%
Mecab

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

Python

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

Q&A

解決済

1回答

594閲覧

[Python]mecabの形態素解析で悩んでいます

kaki.k

総合スコア19

Mecab

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

Python

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

0グッド

0クリップ

投稿2018/12/08 06:57

前提・実現したいこと

PythonでMecabを使い収集したツイートの形態素解析を行いたいのですが、
実装中に以下のエラーメッセージが発生しました。

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

Traceback (most recent call last): File "mecab_tweet_kemonare_tag.py", line 15, in <module> for row in keyword.split("\n"): AttributeError: 'NoneType' object has no attribute 'split'

該当のソースコード

Python

1# -*- coding: utf-8 -*- 2import MeCab 3 4fi = open("kemonaretag.txt",'r').read() 5 6m = MeCab.Tagger('-d /usr/lib/mecab/dic/mecab-ipadic-neologd') 7keyword = m.parse(fi) 8 9words = [] 10for row in keyword.split("\n"): 11 12 word = row.split("\t")[0] 13 if word == "onetweet": 14 words.append("\n") 15 16 word = row.split("\t")[0] 17 if word == "EOS": 18 break 19 else: 20 pos = row.split("\t")[1].split(",")[0] 21 if pos == "名詞": 22 words.append(word) 23 else: 24 pos = row.split("\t")[1].split(",")[0] 25 if pos == "形容詞": 26 words.append(word) 27 #else: 28 #pos = row.split("\t")[1].split(",")[0] 29 #if pos == "動詞": 30 #words.append(word) 31 32w =' '. join(words) 33w1 = w.replace(" onetweet ", "") 34 35with open('kemonare_mecab_tag.txt',"w",encoding="utf-8") as f: 36 f.writelines(w1)

kemonaretag.txtの中身は以下のようにしています。

txt

1夜通し飲んで寝落ちしちゃって、そんで起きて外出て店入るってガッキーだから出来ることだよね。もーテッカテカのボッソボソですから。ええ。 2 #獣になれない私たち 3onetweet 4#獣になれない私たち 見た後に #あさが来た の再放送が入ると 山内圭哉さんがいつぶちギレるかと恐い(笑) 5onetweet 6晶が社長に必要ないって言われた時に黙ってるその他大勢。その他こそ実社会で一番多く普通とされている人達。サラリーマンには一番必要なスキルなのかもしれない。時には獣より冷酷にもなれる。#けもなれ #獣になれない私たち 7onetweet 8けもなれ9話今観た。 9なんか、泣きそうになった。そして、ガッキーがひたすら可愛い♡ 10#けもなれ #獣になれない私たち 11onetweet 12 13(以下略)

試したこと

プログラミング初心者で、よくエラーがわかっていません。
前に一度これを実行したときはうまく行ったのですが、なぜか2回目はできなくなっていました。
よろしければ、お願いします。

参考にさせて頂いたサイト
https://www.pc-koubou.jp/magazine/2646

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

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

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

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

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

can110

2018/12/08 13:25 編集

エラーを再現できません。正常に動作します。OSやmecab(mecab-ipadic-neologd含む)の導入手順など詳細を追記すると回答得られやすくなると思います。
kaki.k

2018/12/11 03:59

了解しました。追記してみます。
t_obara

2018/12/11 07:12

実行した場所が以前と違うとか、kemonaretag.txtを以前と異なる場所に置いたとかの可能性もあるかと。まずはステップ実行するなり、エラー処理をこまめにすることで、何が意図通りに動いていないのかをご確認されるとよろしいのではないでしょうか。
kaki.k

2018/12/11 19:35

一度白紙に戻し、もう一度最初から同じ手順でやったとこる、うまく処理できました。エラーが何だったのかは解決できませんでしたが、おそらくどこかの手順を誤っていたようです。お騒がせしてすみませんでした。コメントしていただきありがとうございました。
guest

回答1

0

自己解決

一度白紙に戻し、もう一度最初から同じ手順でやったとこる、うまく処理できました。
どこかの手順を誤っていたようです。

投稿2018/12/11 19:37

kaki.k

総合スコア19

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問