この記事およびコードは Gemini 1.5 Pro を使用して作成しています。
音声認識で議事録作成は楽になったけど、誤字の修正が面倒くさい… 特に、人名や専門用語など、毎回修正するのは本当に大変ですよね。
そこで今回は、Google Colaboratory (Colab) と Excel を使って、この面倒な作業を自動化する方法を紹介します。Google Colaboratory(Colab)は、ブラウザ上でコードを書いて実行できる、機械学習の学習やデータ分析に便利な無料のクラウドサービスです。環境構築が不要で、誰でも簡単にPythonを始められます。難しい設定は一切不要、ブラウザ上でコードを貼り付けるだけでOKです。
最初に
このタスクをこなしてくれるGPTを作成しました。無料版でもデータ分析が可能になったので、回数制限に気をつけながら使用できると思います。「何から始めたらいい?」から指示に従って進めてください。
https://chatgpt.com/g/g-oBq9SnKDY-replace-text
手順
- 修正ルールを Excel で作成: 誤認識しやすい単語と正しい表記を Excel ファイルにリストアップします。
- Colab でコードを実行: 以下のコードをコピー&ペーストして実行!
- ファイルをアップロード: Excelファイルと修正したいテキストファイルをアップロードします。
- 修正完了!: Colab が自動で修正、ダウンロードできます。
1. 誤字修正ルールをエクセルで作成
A列に修正して欲しい文字列、B列に正しい表記を Excel ファイルにリストアップします。.xlsxファイルとして、PCの任意の場所に保存して下さい。
修正ルールファイル (Excel) の例
A列 | B列 |
---|---|
難因性 | 内因性 |
神奇的 | 心気的 |
〜〜(修正して欲しい文字列) | 〜〜(正しい文字列) |
作成が完了したら任意の名前、任意の場所で、.xlsxで保存してください。
2. Colab でコードを実行
以下のGoogle Colabをご自身のDriveにコピーを保存後してください。
GoogleColabについてもっと知りたい方は、東京大学 数理・情報教育研究センターが公開している「Pythonプログラミング入門」[1]東京大学 数理・情報教育研究センター. Python プログラミング入門. https://utokyo-ipp.github.io/
https://colab.research.google.com/drive/1PHlm5I7RKGSgA07_FKkPMpXAqzSbAwog?usp=sharing
コピーが完了したら、左のボタンを押してコードを実行してください。
実行後まもなく下に①置換ルールのエクセルファイル、②置換したいテキストファイルをアップロードを行なうボタンがでてくるのでファイルをアップロードしてください。
ファイル形式が違うと、再アップロードするように説明がでてきます。
置換が完了したら自動的にダウンロードが始まります。
Colab で実行する .ipynb コード
import openpyxl
from google.colab import files
import shutil
import os
import glob
# --- フォルダ作成 ---
os.makedirs('input', exist_ok=True)
os.makedirs('output', exist_ok=True)
os.makedirs('replace_rule', exist_ok=True)
# ----------------------
# --- 置換ルールファイルのアップロード ---
while True:
print("置換ルールを書いたエクセルファイル(.xlsx)をアップロードしてください")
uploaded = files.upload()
for filename in uploaded.keys():
if not filename.endswith(".xlsx"):
print("ファイルの拡張子が違うようです。もう一度ファイルをアップロードしてください。")
break
else:
shutil.move(filename, f"/content/replace_rule/{filename}")
break
# ----------------------
# --- 置換対象ファイルのアップロード ---
while True:
print("置換したいテキストファイル(.txt, .srt)をアップロードしてください")
uploaded = files.upload()
for filename in uploaded.keys():
if not filename.endswith((".txt", ".srt")):
print("ファイルの拡張子が違うようです。もう一度ファイルをアップロードしてください。")
break
else:
shutil.move(filename, f"/content/input/{filename}")
break
# ----------------------
# --- 設定 ---
excel_path = glob.glob("replace_rule/*.xlsx")[0] # replace_rule ディレクトリ内のExcelファイルを指定
input_folder = 'input' # 修正したいファイルがあるフォルダ名
output_folder = 'output' # 修正後のファイルを保存するフォルダ名
# ----------------------
# Excelファイルを読み込み、置換ルールを辞書に格納
wb = openpyxl.load_workbook(excel_path)
sheet = wb.active
replace_dict = {}
for row in sheet.iter_rows(min_row=2, values_only=True):
if row[0] is not None and row[1] is not None: # セルの値がNoneでないことを確認
replace_dict[str(row[0])] = str(row[1])
# テキストファイルと字幕ファイルを一括処理
for file_path in glob.glob(os.path.join(input_folder, '*.txt')) + glob.glob(os.path.join(input_folder, '*.srt')):
with open(file_path, 'r', encoding='utf-8') as f:
text = f.read()
# 置換ルールに基づいてテキストを修正
for key, value in replace_dict.items():
text = text.replace(key, value)
# 修正後のテキストをファイルに保存
output_file_path = os.path.join(output_folder, os.path.basename(file_path))
with open(output_file_path, 'w', encoding='utf-8') as f:
f.write(text)
# --- ファイル個別ダウンロード ---
files.download(output_file_path)
# ----------------------
print("置換が完了しました!")
Code language: PHP (php)
自分のローカルPCでPythonで実行する場合
準備
1. Pythonをインストール
まだインストールしていない場合は、Python公式ウェブサイトからダウンロードしてインストールしてください。
コマンドプロンプト/ターミナルを開いて、
- Windows: Windowsキーを押して「cmd」と入力し、Enterキーを押します。
- Mac: Spotlight検索 (虫眼鏡アイコン) をクリックし、「ターミナル」と入力してEnterキーを押します。
python -V
と入力して、
Python 3.12.3
Code language: CSS (css)
などと表示されていればPythonは既にインストールされています。
2. 必要なライブラリをインストール
以下のコマンドを実行して、必要なライブラリをインストールします。
pip install openpyxl
- 同じディレクトリに置換ルールの.xlsxを格納する「replace_rule」フォルダと、置換したいテキストデータを格納する「input」フォルダを作成して、それぞれデータを格納してください
- 以下のフォルダ構成を作成します。
任意のフォルダ
├── replace_text.py
├── replace_rule
│ └── replace_rules.xlsx # 置換ルールを定義したExcelファイル(名前は任意)
├── input
│ └── (修正したい.txtファイルと.srtファイルを置く)
├── output (自動で生成)
│ └── (修正後の.txtファイルと.srtファイルが格納される)
└── done (自動で生成)
└── (元ファイルは処理後にこちらに移動)
Code language: CSS (css)
以下をコピーしてreplace_text.pyという名前で保存してください。
import openpyxl
import os
import glob
import shutil
# --- 設定 ---
excel_folder = 'replace_rule' # 置換ルールを定義したExcelファイルがあるフォルダ名
input_folder = 'input' # 修正したいファイルがあるフォルダ名
output_folder = 'output' # 修正後のファイルを保存するフォルダ名
done_folder = 'done' # 処理済みのファイルを移動するフォルダ名
# ----------------------
# Excelファイルのパスを取得
excel_files = glob.glob(os.path.join(excel_folder, '*.xlsx'))
if not excel_files:
print("エラー: replace_rule フォルダに .xlsx ファイルが見つかりません。")
exit()
excel_path = excel_files[0]
# Excelファイルを読み込み、置換ルールを辞書に格納
wb = openpyxl.load_workbook(excel_path)
sheet = wb.active
replace_dict = {}
for row in sheet.iter_rows(min_row=2, values_only=True):
if row[0] is not None and row[1] is not None:
replace_dict[str(row[0])] = str(row[1])
# 出力フォルダと処理済みフォルダが存在しない場合は作成
os.makedirs(output_folder, exist_ok=True)
os.makedirs(done_folder, exist_ok=True)
# テキストファイルと字幕ファイルを一括処理
for file_path in glob.glob(os.path.join(input_folder, '*.txt')) + glob.glob(os.path.join(input_folder, '*.srt')):
with open(file_path, 'r', encoding='utf-8') as f:
text = f.read()
# 置換ルールに基づいてテキストを修正
for key, value in replace_dict.items():
text = text.replace(key, value)
# 修正後のテキストをファイルに保存
output_file_path = os.path.join(output_folder, os.path.basename(file_path))
with open(output_file_path, 'w', encoding='utf-8') as f:
f.write(text)
# 処理後のファイルを done フォルダに移動
shutil.move(file_path, os.path.join(done_folder, os.path.basename(file_path)))
print("置換が完了しました!")
Code language: PHP (php)
実行手順
1. コマンドプロンプト/ターミナルを開く:
- Windows: Windowsキーを押して「cmd」と入力し、Enterキーを押します。
- Mac: Spotlight検索 (虫眼鏡アイコン) をクリックし、「ターミナル」と入力してEnterキーを押します。
2. スクリプトのあるディレクトリに移動
コマンドプロンプト/ターミナルで、cd コマンドを使ってreplace_text.pyファイルがあるディレクトリに移動します。
cd /path/to/your/directory
(例: cd /Users/Documents/任意のディレクトリ
)
Windowsは右クリック -> 情報でディレクトリの場所が表示されると思います。
Macも右クリックしてメニューを出した状態で「option」ボタンを押すと、「コピー」のところが「…のパス名をコピー」となりますので、これでパス名を取得することが可能です。
もしくはMacであれば、「任意のディレクトリ」を右クリック > サービス > フォルダに新規ターミナルで、パスを指定したうえでターミナルを開くことができます。この場合は上述の
cd /path/to/your/directory
は不要です。
3. スクリプトを実行: 以下のコマンドを実行します。
python replace_text.py
Code language: CSS (css)
処理が完了すると、 outputフォルダに修正後のファイルが作成されます。doneファイルが自動で生成され、元ファイルはこちらに移動されます。
まとめ
Colab と Excel を使えば、簡単に議事録や字幕ファイルの誤字修正を自動化できます。”議事ロガー”の皆さん、この方法を試して、議事録作成をもっと楽に、そして正確にしてみてください。
おまけ
2024年5月25日現在、個人的なAI利用頻度としてGemini 1.5 Pro/Flash > GPT-4o > Claude-3 という感じで使っています。Google AI Studio が無料枠があり、大量コンテクストが扱えるのがとても大きいです。長文要約タスクに関してはClaude-3 Opus が一つ飛び抜けている印象があります。コード生成については Gemini 1.5 Pro/Flash とGPT-4oを併用して使っています。
References
↑1 | 東京大学 数理・情報教育研究センター. Python プログラミング入門. https://utokyo-ipp.github.io/ |
---|