python 两个中文word文件正文内容和表格内容对比查重复率并将重复内容保存到文档的代码
以下是一个Python代码示例,用于比较两个中文Word文件的正文内容和表格内容,并计算重复率,并将重复内容保存到文档中:
import docx
from difflib import SequenceMatcher
def compare_word_documents(doc1_path, doc2_path, output_path):
# 打开两个Word文档
doc1 = docx.Document(doc1_path)
doc2 = docx.Document(doc2_path)
# 获取doc1中的正文内容
doc1_text = ""
for paragraph in doc1.paragraphs:
doc1_text += paragraph.text
# 获取doc1中的表格内容
doc1_tables = []
for table in doc1.tables:
for row in table.rows:
for cell in row.cells:
doc1_tables.append(cell.text)
# 获取doc2中的正文内容
doc2_text = ""
for paragraph in doc2.paragraphs:
doc2_text += paragraph.text
# 获取doc2中的表格内容
doc2_tables = []
for table in doc2.tables:
for row in table.rows:
for cell in row.cells:
doc2_tables.append(cell.text)
# 计算正文内容的相似度
text_similarity = SequenceMatcher(None, doc1_text, doc2_text).ratio()
# 计算表格内容的相似度
table_similarity = SequenceMatcher(None, " ".join(doc1_tables), " ".join(doc2_tables)).ratio()
# 将重复内容保存到文档中
output_doc = docx.Document()
output_doc.add_paragraph(f"正文内容相似度:{text_similarity}")
output_doc.add_paragraph(f"表格内容相似度:{table_similarity}")
output_doc.add_paragraph("重复的正文内容:")
for paragraph in doc1.paragraphs:
if paragraph.text in doc2_text:
output_doc.add_paragraph(paragraph.text)
output_doc.add_paragraph("重复的表格内容:")
for cell_text in doc1_tables:
if cell_text in doc2_tables:
output_doc.add_paragraph(cell_text)
# 保存输出文档
output_doc.save(output_path)
# 示例用法
compare_word_documents("doc1.docx", "doc2.docx", "output.docx")
请注意,此代码使用了Python的python-docx库来处理Word文档,并使用difflib库中的SequenceMatcher类来计算相似度。在运行代码之前,需要先安装这两个库,可以使用以下命令进行安装:
pip install python-docx
pip install difflib
代码中的示例用法假设有两个Word文档,分别为"doc1.docx"和"doc2.docx",并将比较的结果保存到"output.docx"中。你可以根据实际情况修改这些文件的路径和名称。
原文地址: http://www.cveoy.top/t/topic/hVNk 著作权归作者所有。请勿转载和采集!