Python
1review_df = pd.read_table('reviews.txt', encoding='utf-8', engine='python', sep=' __SEP__ ', header=None, names=['num','text']) 2 3# テキストを形態素解析して「動詞」、「名詞」、「形容詞」のリストを返す 4def get_wordlist(text): 5 parsed = m.parse(text) # 形態素解析結果(改行を含む文字列として得られる) 6 lines = parsed.split('\n') # 解析結果を1行(1語)ごとに分けてリストにする 7 lines = lines[0:-2] # 後ろ2行は不要なので削除 8 diclist = [] 9 word_list = [] 10 for word in lines: 11 l = re.split('\t|,',word) # 各行はタブとカンマで区切られてるので 12 d = {'Surface':l[0], 'POS1':l[1], 'POS2':l[2], 'BaseForm':l[7]} 13 diclist.append(d) 14 for dic in diclist: 15 if (dic['POS1'] == u'名詞' or dic['POS1'] == u'動詞' or dic['POS1'] == u'形容詞'): 16 word_list.append(dic['Surface']) 17 return(word_list) 18 19m = MeCab.Tagger('') 20 21wordlist = [] 22 23for i in range(review_df.shape[0]): 24 ret = get_wordlist(review_df.loc[i, 'text']) 25 wordlist.append(ret)
reviews.txtから文章をPandasで読み込み、形態素解析で名詞と動詞と形容詞をとり出し、リストを作成したいです。
for i in range(review_df.shape[0]): ret = get_wordlist(review_df.loc[i, 'text']) wordlist.append(ret)
ここの部分で、for文で回すと
Traceback (most recent call last): File "dic.py", line 36, in <module> ret = get_wordlist(review_df.loc[i, 'text']) File "dic.py", line 18, in get_wordlist lines = parsed.split('\n') # 解析結果を1行(1語)ごとに分けてリストにする AttributeError: 'bool' object has no attribute 'split'
以上のようなエラーが出てしまいます。
データフレームの中にエラーをだす単語があると考えられるのですが、このような場合例外処理みたいなことを行えばエラーを回避できるのでしょうか。
解決策を教えていただきたいです。
よろしくお願い致します。
以下はreviews.txtの一部です。
5 __SEP__ 職場の義理チョコです。 パッケージが落ち着いた感じなので 年配の方にもいいと思います。 5 __SEP__ パッケージも包装も申し分無いです。ありがとうございましたか 5 __SEP__ さすがに帝国ホテル。美味しかった。バレンタイン用に主人に買いました。 5 __SEP__ 二人に贈ったのですがどちらも大変喜んでもらえました。一人はその場で写真を撮ったそうです。さすが帝国ホテル。大人っぽい雰囲気だったので選びました。 5 __SEP__ 主人用に購入したのですが、わけてもらって食べたらとてもおいしかったです。また購入したいです。 5 __SEP__ 人にプレゼントしてみました。あげた人はどうなのかわかりませんが、大人な雰囲気とリッチな感じがいいなと思いました。 5 __SEP__ バレンタインようにこのくらいの金額の商品で高級そうなものを探していました。プレートのものとこちらをお願いしました。 プレートと同じく包装紙やおリボンは高級感がありますが、裏のシールと個別のビニールの袋が残念です。 ソムリエギフトの商品はすぐに売り切れてしまうので、そこも欲しい時に悩んでいるのなくなり残念ですがショップのスタッフは丁寧です、 また、海外のお土産や、日本だけの習慣のホワイトディーようにこうにゅ痛いと思っています。 5 __SEP__ さすが 帝国ホテルさんです。とても美味しかったです。 バレンタインは これに決まり。 5 __SEP__ 主人が会社の後輩の女の子からバレンタインでもらってきたので、お返しに注文しました。 渡すのが後輩とのことで、帝国ホテルのネームバリューで選びました。 喜んでいただいたとのことです? 5 __SEP__ ホワイトデーのお返しに使用し、差し上げた方から高級で美味しく 有り難かったとのお礼を頂くほど喜ばれ、リピーターになりました。 5 __SEP__ 感謝を込めて贈りました。シンプルなビターチョコレートが良いと思い選びました。帝国ホテルのラベルもシンプルですが高級感が漂い良かったと思います。 5 __SEP__ 家族に送って好評だったので、自分用にも購入しました! ラッピングも高級感があり、チョコも美味しかったです。 5 __SEP__ 兄へのプレゼントで購入しました。 お手ごろ価格で購入できたので、良かったです。 4 __SEP__ バレンタインに50代の父に渡しました。パッケージからとても喜んでくれました。味も美味しいと喜んでくれました。ただ近くのスーパーに売っていたので★-1です。

回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/07/12 05:50