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

使用tenseflow的change_tense方法时引号内动词时态保持问题

解决方案

核心思路是先临时替换双引号内的内容,避免被时态转换工具修改,完成转换后再恢复原内容。具体实现步骤如下:

  1. 用正则表达式提取所有双引号内的文本片段并保存
  2. 将原句中的双引号内容替换为带索引的唯一占位符
  3. 对替换后的文本执行时态转换
  4. 将转换结果中的占位符替换回对应的原双引号内容

修改后的代码:

import tenseflow
import re
from django.http import Response  # 根据实际使用的框架调整导入

def get(self, request):
    response = {}
    sentence = request.data.get("sentence")  # 修正拼写错误:sentance → sentence
    if sentence:
        # 提取所有双引号内的内容
        quoted_parts = re.findall(r'"([^"]*)"', sentence)
        # 替换双引号内容为占位符,避免被时态转换修改
        temp_sentence = sentence
        for idx, part in enumerate(quoted_parts):
            placeholder = f"__QUOTE_{idx}__"
            temp_sentence = temp_sentence.replace(f'"{part}"', placeholder)
        
        # 执行时态转换
        result = tenseflow.change_tense(temp_sentence, "past")
        
        # 恢复双引号内的原内容
        if result:
            for idx, part in enumerate(quoted_parts):
                placeholder = f"__QUOTE_{idx}__"
                result = result.replace(placeholder, f'"{part}"')
        
        # 构建响应
        response["status_code"] = 200
        response["past_tense"] = result
        return Response(response)
    # 处理空输入的情况
    response["status_code"] = 400
    response["message"] = "Sentence is required"
    return Response(response)

补充说明

  • 正则表达式r'"([^"]*)"'精准匹配双引号内的非引号字符,确保完整提取引号内容
  • 带索引的占位符避免了重复内容替换时的冲突问题
  • 修正了原代码中的拼写错误,同时增加了空输入的错误处理,提升接口健壮性

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.09 14:05:23