前提
Pythonで学ぶテキストマイニング入門(2022; シーアンドアール研究所)で載っているcodeでMecabを使えるように練習している者です。
Mecabでストップワードを作成したいと考えており、Slothlibを使わせていただいています。
エラーが発生し、対処できなくなったためご指導いただきたいです。
実現したいこと
NameError: name 'stopwords_lists' is not defined
以上のエラーの改善
発生している問題・エラーメッセージ
--------------------------------------------------------------------------- --------------------------------------------------------------------------- TypeError Traceback (most recent call last) ~\AppData\Local\Temp\ipykernel_6896\659627611.py in <module> 1 import my_mecab as mm ----> 2 out = mm.tokens("分析目的に合わせて自分で作るのがベストだが、人の作ったもの(SlothLib)を使うのもあり。", stopwords_lists= stopwords) 3 print(out) TypeError: tokens() got an unexpected keyword argument 'stopwords_lists'
該当のソースコード
こちらが、.pyファイルの中身です。
import MeCab #path = '-d C:\mecab-ipadic-neologd -u /home/ishida/ishida.dic" path="" tagger=MeCab.Tagger(path) def tokens(text,pos =["名詞","形容詞","動詞"], stopwords_lists=[]): text= "".join(text.split()) node=tagger.parseToNode(text) word_list=[] while node: if node.surface != "":#BOSとEOSが空のfeatureなので、!= notイコールでそれ以外だけを繰り返させる。 elem= node.feature.split(",") term= elem[6] if elem[6] !='*' else node.surface if term not in stopwords_lists: if len(pos)<1 or elem[0] in pos: word_list.append(term) node=node.next return word_list if __name__ == "__main__": out=tokens("ランチを食べました。") print(out)
こちらがノートブックで実施したコードです。
import my_mecab as mm out = mm.tokens("分析目的に合わせて自分で作るのがベストだが、人の作ったもの(SlothLib)を使うのもあり。", stopwords_lists= stopwords) print(out)
試したこと
コードを書籍のものと照らし合わせて、何度も確認しましたが、解決できませんでした。
補足情報(FW/ツールのバージョンなど)
Windows10
Mecab 64bit
Python (jupyter notebook(anaconda))
です。
回答2件