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

如何读取txt文件中单词并逐一输出同义词,解决现有代码运行异常问题

同义词查询代码修复方案

问题根因

  • 原代码仅调用1次f.readline(),只能读取文件第一行内容,无法处理后续的hot、cool两个单词
  • readline()方法读取的行内容默认末尾携带换行符\n,当word.txt存在多行内容时,第一行读取结果为good\n,wordnet无法匹配到带特殊字符的单词,因此返回空集合set();仅保留good单个单词且文件末尾无换行时,读取内容无多余字符,所以可以正常运行
  • 原代码中打开的文件名为filename,和实际存储单词的word.txt不匹配,也会导致读取失败

修复后代码

import nltk
from nltk.corpus import wordnet

# 首次运行缺wordnet资源时,取消注释下行执行一次即可
# nltk.download('wordnet')

# 用with上下文管理器自动管理文件句柄,避免资源泄漏
with open('word.txt', 'r', encoding='utf-8') as f:
    # 遍历文件所有行
    for line in f:
        # 去除行首尾空白字符(换行符、空格、制表符等)
        word = line.strip()
        # 跳过空行
        if not word:
            continue
        synonyms = []
        for syn in wordnet.synsets(word):
            for l in syn.lemmas():
                synonyms.append(l.name())
        # 单独输出每个单词对应的同义词
        print(f"单词 {word} 的同义词:", set(synonyms))

运行说明

  • 代码会自动读取word.txt中全部3个单词,分别查询同义词后独立输出,不会出现内容混淆
  • 自动过滤空行和多余空白字符,无需手动调整word.txt的格式

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 11:36:01