教科書の中のテキストを読み込むコードなのですが、テキストファイルを教科書内のものではない別のものにすると読み込めなくなりました。
やはりテキストデータの違いによるものなのでしょうか・・・、
python
1from janome.tokenizer import Tokenizer 2import os, glob 3 4# Janomeを使って形態素解析を行う 5ja_tokenizer = Tokenizer() 6 7#日本語を分かち書き 8def ja_tokenize(text): 9 res = [] 10 lines = text.split("\n") 11 #lines = lines[2:] # 最初の2行はヘッダー情報なので捨てる 12 for line in lines: 13 malist = ja_tokenizer.tokenize(line) 14 for tok in malist: 15 ps = tok.part_of_speech.split(",")[0] 16 if not ps in['名詞', '動詞', '形容詞']: continue 17 w = tok.base_form 18 if w == "*" or w == "": w = tok.surface 19 if w == "" or w == "\n": continue 20 res.append(w) 21 res.append("\n") 22 return res 23 24# テストデータを読み込み 25root_dir = './Isojintext' 26for path in tqdm(glob.glob(root_dir+"**/*.txt", recursive=True)): 27 if path.find("LICENSE") > 0: continue 28 print(path) 29 path_wakati = path + ".wakati" 30 if os.path.exists(path_wakati): continue 31 text = open(path,"r").read() 32 words = ja_tokenize(text) 33 wt = " ".join(words) 34 open(path_wakati, "w", encoding="utf-8").write(wt)
混み込めていたテキスト一例
./newstext
読み込めなかったテキスト一例
./Isojintext
エラー内容
python
1 0%| | 0/23 [00:00<?, ?it/s] 2./Isojintext/eq_0312.txt 3 4--------------------------------------------------------------------------- 5OSError Traceback (most recent call last) 6<ipython-input- 788-171f9eae8e3f> in <module>() 8 6 path_wakati = path + ".wakati" 9 7 if os.path.exists(path_wakati): continue 10----> 8 text = open(path,"r").read() 11 9 words = ja_tokenize(text) 12 10 wt = " ".join(words) 13 14OSError: [Errno 22] Invalid argument
エラー内容2
python
10%| | 0/23 [00:00<?, ?it/s] 2./isojintext/eq_0312.txt 3 4--------------------------------------------------------------------------- 5OSError Traceback (most recent call last) 6<ipython-input-25-15e4194c1e08> in <module>() 7 7 if os.path.exists(path_wakati): continue 8 8 f = open(path, "r") 9----> 9 text = f.read() 10 10 words = ja_tokenize(text) 11 11 wt = " ".join(words) 12 13OSError: [Errno 22] Invalid argument
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/04/26 09:38