おかーさん→おかあさんのような長音の処理をするプログラムを作りたい

前提

機械学習をする前のデータの前処理を行なっています。
ひらがな化や[ ]の削除などの処理を行なっていますが、その中で(例)おかーさん→おかあさん、おとーさん→おとおさんなどの処理を追加した時にエラーが発生しました。

詳細
現在、日本語の方言から標準語への機械学習を行なっています。
その為にデータの前処理を行なっていますが、プログラミングが難しく戸惑っています。コーパスとしては国立国語研究所の「全国方言談話データベース ふるさと言葉集成」を用いています(csvファイル)。プログラムは標準語の列だけを抜き出して処理をしています。

実現したいこと

ここに実現したいことを箇条書きで書いてください。
●長音の処理が実行されるプログラムを作りたい
(例)おかーさん→おかあさん、おとーさん→おとおさん

該当のソースコード

python

#coding: UTF-8import re import pandas as pd from pathlib import Path import jaconv from pykakasi import kakasi hougen_train = [] hougen_val = [] hyouzyun_train = [] hyouzyun_val = [] count = 0table = str.maketrans({ '゜': '゛', }) #パスの指定p = Path('datasets/hougen_data')#*csvと言う名前のファイルを1つずつ読みとるfile_name = '01_b_099_utf8.csv'csv_files = p.glob(file_name) #csvファイルを1つずつ処理for file in csv_files: df = pd.read_csv(file) #9:1にデータを分割 count_hyozyun = 1 count_hougen = 1 rows = len(df.axes[0]) count += rows sample_num = rows*0.9 data_hyozyun = df["標準語テキスト"] #標準語テキストの処理 for i in data_hyozyun: #ここが質問の分からないところです(該当箇所) for j in i: if j == "ー": if prev in "かがさざただなはばぱまやら": j = "あ" if prev in "きぎしじちぢにひびみり": j = "い" if prev in "くぐすずつづぬふぶむるゆゅ": j = "う" if prev in "けげせぜてでねへべぺめれ": j = "え" if prev in "こごそぞとどのほぼぽもよろょ": j = "お" print(j, end="") prev = j data = prev print(data) #ひらがな化、[]、〔〕の削除 data = re.sub("[[あ-ゟ]]", "", str(i)) # data = re.sub("{笑}", "", data) data = re.sub("〔.+?〕", "", data) #漢字〜ひらがなに変換 # オブジェクトをインスタンス化 kakasi_1 = kakasi() # モードの設定:J(漢字) ~ H(ひらがな) kakasi_1.setMode('J', 'H') conv = kakasi_1.getConverter() # 変換して出力 if count_hyozyun < sample_num: hyouzyun_train.append( conv.do(data)) else: hyouzyun_val.append( conv.do(data)) count_hyozyun += 1 #標準語(train)の作成with open("datasets/fix_data/hyouzyun_train_2.txt", "w") as hyouzyun: for content in hyouzyun_train: hyouzyun.write(content + "\n") #標準語(test)の作成with open("datasets/fix_data/hyouzyun_val_2.txt", "w") as hyouzyun: for content in hyouzyun_val: hyouzyun.write(content + "\n")

試したこと

一応、その他のひらがな化や[ ]の削除などの処理はしっかりと出来ていますが、該当箇所を追加したところ上手く処理が出来ません。

補足情報(FW/ツールのバージョンなど)

●python3.8.2

コメントを投稿

0 コメント