文字起こしのテキストを整える|言いよどみをPythonで除いて文ごとに分ける

話した内容を文字起こしすると、「えーと」「あのー」のような言いよどみがそのまま文字になり、1文が長くつながったテキストになります。記事の下書きにするには、まず機械的に直せるところを直してから、人が文章を整えるのが効率的です。この記事では、言いよどみを除いて文ごとに改行するPythonのコードと、実行した結果、機械では直らない部分を紹介します。

(確認:筆者のPC(Python 3.13)で、2026年10月21日に実行。例の文字起こしは、筆者が話し言葉を真似て作った架空の文章で、内容は事実の説明ではありません)

コード

# 文字起こしのテキストを、記事の下書き向けに整える(言いよどみの除去・文ごとの改行・文字数の確認)
import re

# 例:話した内容を文字起こししたテキスト(筆者が作った架空の文章)
raw = ("えーと、今日はですね、MT5のEAを、あのー、VPSで動かす時の話をします。"
       "えー、まず最初に、まあ、メモリの量を確かめます。2GBだと、えっと、MT5を2つ動かすと足りなくなることがあって、"
       "あの、なので4GBを選びました。それから、ええと、再起動の後にEAが自動で動くかを確かめます。")

FILLERS = ["えーと", "ええと", "えっと", "あのー", "あの、", "えー、", "まあ、"]   # 長いものから並べる

def clean(text):
    for f in FILLERS:
        text = text.replace(f, "")
    text = text.replace("ですね、", "、")             # 話し言葉の「ですね」を外す
    text = re.sub(r"、{2,}", "、", text)              # 除いた後に残った「、、」を1つに
    text = re.sub(r"(^|。)、", r"\1", text)           # 文頭に残った「、」を消す
    return text

cleaned = clean(raw)
sentences = [s + "。" for s in cleaned.split("。") if s]
print("元の文字数:", len(raw), " 整えた後:", len(cleaned), f"({1 - len(cleaned) / len(raw):.0%} 減)")
print("残った言いよどみの候補:", [f for f in ["えー", "あの", "まあ", "えっと"] if f in cleaned] or "なし")
for s in sentences:
    print("・", s)

言いよどみの一覧(FILLERS)は、長いものから順に並べています。「えー」を先に消すと、「えーと」の「と」だけが残ってしまうためです。「あの」は、「あの人」のような普通の言葉にも出てくるので、読点が付いた「あの、」の形だけを消すようにしています。

実行の結果

元の文字数: 142  整えた後: 114 (20% 減)
残った言いよどみの候補: なし
・ 今日は、MT5のEAを、VPSで動かす時の話をします。
・ まず最初に、メモリの量を確かめます。
・ 2GBだと、MT5を2つ動かすと足りなくなることがあって、なので4GBを選びました。
・ それから、再起動の後にEAが自動で動くかを確かめます。
  • 142字のテキストが114字になり、2割ほど短くなった
  • 一覧に入れた言いよどみは、すべて消えた(「残った言いよどみの候補:なし」)
  • 文ごとに分かれ、どこで文が終わっているかが見やすくなった

機械では直らないところ

整えた後の文 人が直すところ
まず最初に、メモリの量を確かめます。 「まず」と「最初に」が重なっている → 「まず、メモリの量を確かめます。」
2GBだと、MT5を2つ動かすと足りなくなることがあって、なので4GBを選びました。 話し言葉のつなぎ(「あって、なので」)→ 2つの文に分ける
今日は、MT5のEAを、VPSで動かす時の話をします。 記事の冒頭として、読者に向けた書き方に変える

さらに、話した内容が事実として正しいか(例の文の「2GBだと足りなくなる」などは、確かめずに書いてはいけない内容です)を、公開前に確認します。AIを使った記事のチェックの項目はAI生成記事の公開前チェックリストにまとめています。

言いよどみの一覧を自分用に育てる

  1. 自分の文字起こしを何本か読み、よく出る言いよどみ(「なんか」「やっぱり」など)を書き出す
  2. FILLERS に足す。ただし、「やっぱり」のように意味のある言葉にもなるものは、消さずに「残った候補」として表示するだけにする
  3. 消しすぎていないかを、元の文と並べて確かめる

文字起こしの精度そのもの(文字の誤り)を測る方法は文字起こしの精度を自分で測る方法に、長い録音を分ける方法は長い録音を3分ずつに分ける方法に、録音から下書きまでの流れは音声メモから記事の下書きを作る流れにまとめています。

この記事で確かめていないこと

  • 実際の文字起こしサービスの出力での効果(サービスによって、言いよどみを自動で消す機能がある場合もあるが、確かめていません)
  • 長いテキスト(数万字)での処理の時間

まとめ

  • 文字起こしのテキストは、言いよどみの除去と文ごとの改行までを、Pythonで機械的に直せる
  • 例では、142字が114字になり、文の切れ目が見やすくなった。言いよどみの一覧は長いものから並べる
  • 重なった言い方や、話し言葉のつなぎ、内容の正しさは、人が直して確かめる

本記事は、筆者のPCで確かめたコードの紹介です。