要实现 Python 中 100 个 txt 文本比较相似度,并将相似度达到80%以上的文件去掉一个,可以使用以下步骤:
- 首先读取所有的 txt 文件,并将它们存储在一个列表中。
- 遍历文件列表,对每对文件进行相似度比较,使用一种文本相似度计算方法(如余弦相似度)。
- 如果相似度高于阈值(例如 80%),则选择一个文件进行删除。您可以选择删除文件大小较小的文件或随机选择一个文件进行删除。
- 如果没有找到需要删除的文件,则重复步骤 2 和步骤 3,使用不同的文本相似度计算方法。
- 如果还是没有找到需要删除的文件,则输出一条消息表明没有找到需要删除的文件。
以下是实现这些步骤的示例代码:
import os
import itertools
import difflib
# Define the threshold for similarity
SIMILARITY_THRESHOLD = 0.8
def read_files(directory):
files = []
for filename in os.listdir(directory):
if filename.endswith(“.txt”):
file_path = os.path.join(directory, filename)
with open(file_path, ‘r’, encoding=’utf8′) as f:
content = f.read()
files.append((filename, content))
return files
def remove_similar_files(files):
for file1, file2 in itertools.combinations(files, 2):
similarity = difflib.SequenceMatcher(None, file1[1], file2[1]).ratio()
if similarity > SIMILARITY_THRESHOLD:
print(f”Files {file1[0]} and {file2[0]} are {similarity*100:.2f}% similar”)
if os.path.getsize(file1[0]) < os.path.getsize(file2[0]):
os.remove(file1[0])
print(f”Removed file {file1[0]}”)
暂无评论内容