#stopwordsの指定 !wget http://svn.sourceforge.jp/svnroot/slothlib/CSharp/Version1/SlothLib/NLP/Filter/StopWord/word/Japanese.txt with open("/content/Japanese.txt","r") as f: stopwords = f.read().split("\n") #Neologdによるトーカナイザー(リストで返す関数・名詞のみ) def mecab_tokenizer(text): replaced_text = text.lower() replaced_text = re.sub(r'[【】]', ' ', replaced_text) # 【】の除去 replaced_text = re.sub(r'[()()]', ' ', replaced_text) # ()の除去 replaced_text = re.sub(r'[[]\[\]]', ' ', replaced_text) # []の除去 replaced_text = re.sub(r'[@@]\w+', '', replaced_text) # メンションの除去 replaced_text = re.sub(r'\d+\.*\d*', '', replaced_text) #数字を0にする path = "-d /usr/lib/x86_64-linux-gnu/mecab/dic/mecab-ipadic-neologd" mecab = MeCab.Tagger(path) parsed_lines = mecab.parse(replaced_text).split("\n")[:-2] # #表層形を取得 # surfaces = [l.split('\t')[0] for l in parsed_lines] #原形を取得 token_list = [l.split("\t")[1].split(",")[6] for l in parsed_lines] #品詞を取得 pos = [l.split('\t')[1].split(",")[0] for l in parsed_lines] # 名詞,動詞,形容詞のみに絞り込み target_pos = ["名詞"] token_list = [t for t, p in zip(token_list, pos) if p in target_pos] # stopwordsの除去 token_list = [t for t in token_list if t not in stopwords] # ひらがなのみの単語を除く kana_re = re.compile("^[ぁ-ゖ]+$") token_list = [t for t in token_list if not kana_re.match(t)] return token_list #df全体に対してmecab_tokenizerを適用し、形態素解析を行なったリストを返す関数 def make_docs(df,column_number): docs=[] for i in range(len(df)): text = df.iloc[i,column_number] docs.append(mecab_tokenizer(text)) return docs #形態素解析の実行 docs_keiei_2203_lda = make_docs(df,2) コード
上記のようなコードを記述すると
[Errno 2] No such file or directory: '/content/Japanese.txt'
のエラーが出ます。対処方法を教えていただきたいです。
回答2件
あなたの回答
tips
プレビュー