You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python实现法语文本文件读取并存储为列表(用于TF-IDF计算)

读取法语文档并准备TF-IDF计算的完善方案

看起来你已经有了一个不错的开头!针对读取法语文档并存储为字符串列表的需求,我帮你完善代码并补充一些关键细节,方便后续的TF-IDF计算:

完整可运行代码

import os
import glob

# 定义你的语料库根路径
corpus_directory = "/Corpus"

# 获取语料库下的所有文件路径(可按需过滤文件类型,比如只取.txt)
file_paths = glob.glob(os.path.join(corpus_directory, "*"))
# 如果仅需处理文本文件,修改为:glob.glob(os.path.join(corpus_directory, "*.txt"))

# 初始化存储文档内容的列表
documents = []
# 可选:如果需要关联文件名和对应内容,用字典存储更方便
document_map = {}

for path in file_paths:
    # 跳过目录,只处理实际文件
    if not os.path.isfile(path):
        continue
    try:
        # 法语文档常用编码为utf-8或iso-8859-1(latin-1),根据你的文件实际情况调整
        with open(path, 'r', encoding='utf-8', errors='replace') as file:
            full_content = file.read()
            documents.append(full_content)
            # 存储文件名(不含路径)和内容的映射
            document_map[os.path.basename(path)] = full_content
    except Exception as e:
        print(f"读取文件 {path} 时发生错误: {str(e)}")

# 验证结果
print(f"成功读取 {len(documents)} 个法语文档")

关键细节说明

  • 编码处理:法语包含é、è、ç等特殊字符,必须指定正确编码才能避免乱码或读取失败。优先尝试utf-8,如果你的文档是旧格式,换成encoding='iso-8859-1'即可。errors='replace'参数会用占位符替换无法解码的字符,防止程序直接崩溃。
  • 过滤非文件:glob.glob可能会匹配到目录,所以加入os.path.isfile检查确保只处理实际文件。
  • 数据结构选择:如果后续需要追踪某个文档的来源,document_map字典比单独的列表更实用,能快速关联文件名和内容。

后续TF-IDF预处理提示

读取完原始文本后,你还需要做一些法语专属的文本清洗,才能让TF-IDF计算更准确:

  • 转小写:把所有文本转为小写,避免"Bonjour"和"bonjour"被当成不同词汇
  • 去除标点和特殊字符:可以用正则表达式re.sub(r'[^\w\s]', '', content)处理
  • 停用词过滤:法语有大量无意义的停用词(比如"le"、"la"、"de"),可以用nltk或spacy的法语停用词表过滤
  • 词形还原:使用法语NLP工具(如spacy的fr_core_news_sm模型)把词汇还原为原形,比如"manges"还原为"manger"

内容的提问来源于stack exchange,提问作者HelpASisterOut

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.25 03:45:45