KeywordGacha icon indicating copy to clipboard operation
KeywordGacha copied to clipboard

[Feature Request]制作术语表时去除简单的汉字替换

Open Earendil-WBG opened this issue 7 months ago • 1 comments

许多轻小说中都有大量的纯汉字人名/地名,比如

    {
        "src": "日本",
        "dst": "日本",
        "info": "地点"
    },
...
    {
        "src": "東雲",
        "dst": "东云",
        "info": "名字"
    },

这些术语存在与否几乎不会影响翻译质量,但是每次翻译时都会因之额外消费很多input token。同时,判断一个词是否为纯汉字替换词相对简单,比如使用opencc库:

from opencc import OpenCC

# 判断是否为纯汉字的函数
def is_pure_kanji(text):
    # 检查字符串是否只包含汉字(包括日文汉字),不包含平假名、片假名、拉丁字母等
    pattern = re.compile(r'^[\u4E00-\u9FFF]+$')
    return bool(pattern.match(text))

# 判断是否为简单汉字转换的函数
def is_simple_conversion(src, dst):
    # 首先检查源字符串是否为纯汉字
    if not is_pure_kanji(src):
        return False
    
    coverter1 = OpenCC('jp2t')
    coverter2 = OpenCC('t2s')

    # 将源字符串转换为简体中文
    simplified_src = coverter2.convert(coverter1.convert(src))
    
    return simplified_src == dst

我会在生成术语表后,用这段代码简单去掉中的纯汉字替换词,或许可以考虑添加这一功能?此外,是否有可能在例句翻译前就识别这种单纯的汉字替换词,以进一步节省token呢?

Earendil-WBG avatar May 17 '25 07:05 Earendil-WBG

很早期的版本是直接剔除纯汉字词的 因为那个时候模型都挺弱智的,术语表基本上只起到一个固定译名的作用 但现在模型的能力要强多了,除了固定译名以外,术语表还起到提供辅助信息辅助翻译的作用 比如最典型的场景:提供性别信息来协助模型确定人称代词 在这种情况下,即使是纯汉字词保留在术语表中也是有意义的,这是目前的思路

neavo avatar May 17 '25 08:05 neavo