###DataFrameの文字列からStopWordを除きたいです
前回に引き続きtf-idfを作成するにあたって、解析に必要のない単語を除くために、除きたい単語をstopwordとし、関数を定義しました。
Python
1# リストを文字列に変換する関数 2def join_list_str(list): 3 return ' '.join(list) 4 5# ストップワード除外関数 6def exclude_stopword(text): 7 changed_text = [token for token in text.lower().split(" ") if token != "" if token not in stopwords] 8 # 上記のままだとリスト形式になってしまうため、空白区切の文字列に変換 9 changed_text = join_list_str(changed_text) 10 return changed_text 11 12exclude_stopword(review_df['lsbw'])
(参考)TF-IDFで見る評価の高いラーメン屋の口コミ傾向(自然言語処理, TF-IDF, Mecab, wordcloud, 形態素解析、分かち書き)
ただ、定義した関数に文字列のDataFrameを入れるとSeriesに関するエラーが出てしまいました。
詳しいエラー内容は
AttributeError Traceback (most recent call last) <ipython-input-25-50b619c3f3f8> in <module> ----> 1 exclude_stopword(review_df['lsbw']) <ipython-input-22-761e575fdb0b> in exclude_stopword(text) 5 # ストップワード除外関数 6 def exclude_stopword(text): ----> 7 changed_text = [token for token in text.lower().split(" ") if token != "" if token not in stopwords] 8 # 上記のままだとリスト形式になってしまうため、空白区切の文字列に変換 9 changed_text = join_list_str(changed_text) ~/opt/anaconda3/lib/python3.8/site-packages/pandas/core/generic.py in __getattr__(self, name) 5137 if self._info_axis._can_hold_identifiers_and_holds_name(name): 5138 return self[name] -> 5139 return object.__getattribute__(self, name) 5140 5141 def __setattr__(self, name: str, value) -> None: AttributeError: 'Series' object has no attribute 'lower'
文字列は形態素解析を行ったものが入っております。
恐らくこの質問も超基本だと思いますが、何卒宜しくお願い申し上げます。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/05/22 14:26
2021/05/22 14:41
2021/05/22 15:42