| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061 |
- import os
- def analyze_corpus(ch_path, en_path):
- """
- 分析双语语料库文件的详细信息
- Args:
- ch_path: 中文文件路径
- en_path: 英文文件路径
- """
- # 检查文件是否存在
- if not os.path.exists(ch_path):
- print(f"中文文件不存在: {ch_path}")
- return
- if not os.path.exists(en_path):
- print(f"英文文件不存在: {en_path}")
- return
- # 获取文件大小
- ch_size = os.path.getsize(ch_path)
- en_size = os.path.getsize(en_path)
- # 读取文件内容并统计行数
- with open(ch_path, 'r', encoding='utf-8') as f:
- ch_lines = f.readlines()
- with open(en_path, 'r', encoding='utf-8') as f:
- en_lines = f.readlines()
- # 计算字符数(不包括换行符)
- ch_chars = sum(len(line.strip()) for line in ch_lines)
- en_chars = sum(len(line.strip()) for line in en_lines)
- # 打印统计信息
- print("=" * 50)
- print("语料库统计信息")
- print("=" * 50)
- print(f"\n中文文件 ({ch_path}):")
- print(f" 文件大小: {ch_size / 1024 / 1024:.2f} MB")
- print(f" 总行数: {len(ch_lines):,}")
- print(f" 总字符数: {ch_chars:,}")
- print(f" 平均每行字符数: {ch_chars / len(ch_lines):.1f}")
- print(f"\n英文文件 ({en_path}):")
- print(f" 文件大小: {en_size / 1024 / 1024:.2f} MB")
- print(f" 总行数: {len(en_lines):,}")
- print(f" 总字符数: {en_chars:,}")
- print(f" 平均每行字符数: {en_chars / len(en_lines):.1f}")
- # 验证中英文行数是否匹配
- if len(ch_lines) == len(en_lines):
- print("\n✓ 中英文文件行数匹配")
- else:
- print("\n✗ 警告:中英文文件行数不匹配!")
- print("=" * 50)
- if __name__ == "__main__":
- ch_path = 'corpus.ch'
- en_path = 'corpus.en'
- analyze_corpus(ch_path, en_path)
|