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

如何在Python中使用word2number库保留字符串其余内容

解决word2number转换时丢失非数字文本的问题

我太懂你这个痛点了——用word2number的word_to_num方法直接转换整串文本时,它只会识别并返回数字部分,非数字内容(比如你这里的"house")直接就被丢弃了。不过咱们换个思路,就能轻松保留所有内容,同时把数字单词转成字面量。

核心思路

把字符串拆成单个单词,逐个判断处理:

  • 如果是数字单词(比如"one"、"three"),就用word2number转换成数字;
  • 如果不是数字单词,直接原封不动保留;
  • 最后把处理后的所有单词重新拼接成完整字符串。

具体实现代码

首先确保你已经安装了word2number(没装的话先跑这个命令):

pip install word2number

然后用这个自定义函数处理文本:

from word2number import w2n

def convert_num_words_preserve_text(input_string):
    # 把字符串拆成单词列表
    word_list = input_string.split()
    processed_words = []
    
    for word in word_list:
        try:
            # 尝试将单词转换为数字
            converted_num = w2n.word_to_num(word)
            processed_words.append(str(converted_num))
        except ValueError:
            # 转换失败,说明不是数字单词,直接保留原单词
            processed_words.append(word)
    
    # 把处理后的单词拼接回字符串
    return ' '.join(processed_words)

测试示例

比如你的输入是"one house",测试一下:

original_text = "one house"
result_text = convert_num_words_preserve_text(original_text)
print(result_text)  # 输出: 1 house

这个方法还能处理更复杂的场景,比如输入"five red houses and two blue cars",会输出"5 red houses and 2 blue cars",完美保留所有非数字内容~

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.19 10:35:19