前提・実現したいこと
Pythonで形態素解析をするにあたって、
文章データの前処理が上手くいかず。
以下のようなエラーメッセージが発生しました。
一度Pandasに取り込んで、
○○行目~○○行目の文章だけ抽出して、
形態素解析をしたいと思っています。
発生している問題・エラーメッセージ
--------------------------------------------------------------------------- TypeError Traceback (most recent call last) <ipython-input-83-8d3ca674f518> in <module>() 10 text_original = dataset1[0:12] 11 ---> 12 text = re.sub("《[^》]+》", "", text) # ルビの削除 13 text = re.sub("[[^]]+]", "", text) # 読みの注意の削除 14 text = re.sub("[| ]", "", text) # | と全角半角スペースの削除 /usr/lib/python3.6/re.py in sub(pattern, repl, string, count, flags) 189 a callable, it's passed the match object and must return 190 a replacement string to be used.""" --> 191 return _compile(pattern, flags).sub(repl, string, count) 192 193 def subn(pattern, repl, string, count=0, flags=0): TypeError: expected string or bytes-like object
該当のソースコード
Python
1import re 2import csv 3import unicodedata 4import pandas as pd 5 6dataset1 = pd.read_csv("Book2.csv", encoding="Shift-JIS") 7dataset1 = dataset1.drop("Unnamed: 1", axis=1) 8 9#B.自己紹介[0:12] 10text_original = dataset1[0:12] 11 12text = re.sub("《[^》]+》", "", text) # ルビの削除 13text = re.sub("[[^]]+]", "", text) # 読みの注意の削除 14text = re.sub("[| ]", "", text) # | と全角半角スペースの削除 15text = text.replace('\n','') # 改行の削除 16text = text.replace('"','') # ダブルクオーテーションの削除 17text = text.replace(',','') # カンマの削除 18text = unicodedata.normalize('NFKC', text)# テキストの正規化 19 20print("文字数", len(text)) # len() で文字列の文字数も取得可能 21print(text[:]) 22 23document = text 24document 25
試したこと
Pandasを通さずに、CSVからから直接読み込む分には上手くいくようでした。
ただそれだと特定の文章を抽出する際に、
行指定ができず文字数での指定となってしまうようです。
補足情報(FW/ツールのバージョンなど)
使用環境はGoogle Collab上で動かしているので、
Linux系のOSだと思います。
分かる方、どうぞよろしくおねがいします。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。