トップ 履歴 一覧 Farm ソース 検索 ヘルプ PDF RSS ログイン

cocaClean

*disclaimer
1196873

[Python]

cocaClean


 開発の意図

  • COCA samplesのファイルには、以下の「ゴミ」が含まれていて、単語の処理をする際に「ゴミ」となる
    • テキストID
    • 匿名記号
    • 段落記号
    • htmlタグ
    • @long, @longurl

 開発方法

  • Copilotに指示を出してスクリプトの原案を作ってもらい修正する

指示のプロンプト


Python言語で、フォルダー内の複数のテキストファイル(拡張子".txt")を対象に、以下の文字列を削除するスクリプトを書いてください。

削除した結果のファイル名は、それぞれ元のファイル名の後ろに".cln"という拡張子を付けて保存して下さい。

そして、そのスクリプトをwindows 上で実行できるexeファイルにコンパイルする方法を教えてください。


  • その後の試行錯誤
    • 削除文字列を正規表現で表記できるように修正

出力されたスクリプト

import os
import re

# 指定するフォルダーと削除対象の正規表現パターン
folder_path = "path/to/your/folder"
remove_patterns = [r"\b削除する単語\b", r"\d{4}-\d{2}-\d{2}"]  # ここに削除したい正規表現パターンを追加

# フォルダー内の全テキストファイルを処理
for filename in os.listdir(folder_path):
    if filename.endswith(".txt"):
        file_path = os.path.join(folder_path, filename)

        # ファイルを読み込んで正規表現で削除
        with open(file_path, "r", encoding="utf-8") as file:
            content = file.read()
            for pattern in remove_patterns:
                content = re.sub(pattern, "", content)

        # 結果を新しいファイルに保存
        new_filename = filename.replace(".txt", ".cln")
        new_file_path = os.path.join(folder_path, new_filename)

        with open(new_file_path, "w", encoding="utf-8") as new_file:
            new_file.write(content)

print("処理が完了しました。")

修正箇所

  • 指定するフォルダーをカレントディレクトリーに
folder_path = "."
  • 削除する文字列を正規表現で ごみの処理
remove_patterns = [r"(@ )+", r"\<\/*[Pph]\>", r"@@\d{7}", r"&\w+;", r"@long(url)*"]
    • まだゴミがあった。修正版 cocaClean4
remove_patterns = [r"(@ )+", r"\<\/*\s*[Pph]\s*\>", r"@@\d{7}", r"&\w+;", r"@long(url)*"]

  • 保存するファイル名の拡張子を修正
new_filename = filename.replace(".txt", ".cln.txt")
  • 終了を日本語でなく英語"Done"に

修正後のスクリプト

cocaClean4.py(98)

 実行ファイルにコンパイル

pip install pyinstaller
pyinstaller --onefile cocaClean.py


cocaClean4.exe(99)

 使い方

  • 処理したいフォルダーにテキストファイルを入れておく
  • cocaClean.exeをダウンロードして、そのフォルダーに入れる
  • ダブルクリックして実行
  • 拡張子「.cln.txt」がついた変換済みファイルが保存される