将单词转换为保留原始格式的其他单词

时间:2017-11-11 05:23:34

标签: python python-3.x

def translate(字符串,翻译):

<?php
exec("ipconfig.exe",$output_array,$return_val);
echo "Returned $return_val <br><pre>";
foreach ($output_array as $o)
{
echo "$o <br>";
}
echo "</pre>";
?>


<?php
echo exec('ipconfig');
$info = system('ipconfig /all');
echo $info;
?>

我有这样的输入。我用 translations.get(string)来得到他和妹妹,它运作良好。但问题是我无法将字符串转换为'她'或'sHe'(原始格式)。 如何用Python做到这一点?

2 个答案:

答案 0 :(得分:1)

您需要拥有更大的字典,区分大小写,或者您的翻译功能必须修改为:

  1. 检测原始字词或词组的大小写,全部低位,全部为高级,句子或标题。
  2. 查找翻译不区分大小写的
  3. 重新翻译已翻译的文本以匹配原文。
  4. 但是对于某些语言,您仍会遇到一些问题,例如:在某些语言中,所有大写字母有时会包含一些小写字母或大写第二个字母而不是第一个,例如d'作为前缀总是小写或具有不同的大写规则,以SI单位表示英国资本化规则表明,如果单位以一个人命名,则应始终大写,但其他国家则以不同方式执行此操作。 / em>的

答案 1 :(得分:1)

正如您拥有翻译的数据结构一样,我们可以创建案例测试和更正的数据结构:

def iscapitalized(s):
    return s and s[0].isupper() and s[1:].islower()

def translate(string, translations):
    translation = translations.get(string.lower(), string)

    for test, correction in corrections.items():
            if test(string):
                translation = correction(translation)
                break

    return translation

translations = {'he': 'she', 'brother': 'sister'}

corrections = {str.isupper: str.upper, str.islower: str.lower, iscapitalized: str.capitalize}

print(translate('he', translations))
print(translate('HE', translations))
print(translate('He', translations))
print(translate('brother', translations))
print(translate('my', translations))

<强>输出

> python3 test.py
she
SHE
She
sister
my
>