質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
データ構造

データ構造とは、データの集まりをコンピュータの中で効果的に扱うために、一定の形式に系統立てて格納する形式を指します。(配列/連想配列/木構造など)

pandas

Pandasは、PythonでRにおけるデータフレームに似た型を持たせることができるライブラリです。 行列計算の負担が大幅に軽減されるため、Rで行っていた集計作業をPythonでも比較的簡単に行えます。 データ構造を変更したりデータ分析したりするときにも便利です。

自然言語処理

自然言語処理は、日常的に使用される自然言語をコンピューターに処理させる技術やソフトウェアの総称です。

Q&A

1回答

957閲覧

文章データの前処理加工で詰まっています

daifukuya

総合スコア4

データ構造

データ構造とは、データの集まりをコンピュータの中で効果的に扱うために、一定の形式に系統立てて格納する形式を指します。(配列/連想配列/木構造など)

pandas

Pandasは、PythonでRにおけるデータフレームに似た型を持たせることができるライブラリです。 行列計算の負担が大幅に軽減されるため、Rで行っていた集計作業をPythonでも比較的簡単に行えます。 データ構造を変更したりデータ分析したりするときにも便利です。

自然言語処理

自然言語処理は、日常的に使用される自然言語をコンピューターに処理させる技術やソフトウェアの総称です。

0グッド

0クリップ

投稿2020/02/09 06:54

前提・実現したいこと

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だと思います。

分かる方、どうぞよろしくおねがいします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

「text」が未定義の様に見えます。

投稿2020/02/09 07:09

meg_

総合スコア10760

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問