*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」がついた変換済みファイルが保存される
https://sugiura-ken.org/wiki/