将文本语言转换为英语的python函数?

将文本语言转换为英语的python函数?,python,dictionary,Python,Dictionary,我在创建一个函数时遇到了问题,该函数使用了一个文本缩写词典,并且使用该词典编写了翻译成英语和从英语翻译过来的函数。例如:“YRUL8?”翻译成“你为什么迟到?” 到目前为止,我已经做到了:(我不需要每一个短信短语) 感谢您的帮助 您可以拆分文本字符串,如果它的部分在textDict中,并且如果它们被替换为字典的内容: def translate(text_string, text_dict): for word in text_string.split(): if word

我在创建一个函数时遇到了问题,该函数使用了一个文本缩写词典,并且使用该词典编写了翻译成英语和从英语翻译过来的函数。例如:“YRUL8?”翻译成“你为什么迟到?” 到目前为止,我已经做到了:(我不需要每一个短信短语)


感谢您的帮助

您可以拆分文本字符串,如果它的部分在textDict中,并且如果它们被替换为字典的内容:

def translate(text_string, text_dict):
   for word in text_string.split():
       if word in text_dict:
           text_string = text_string.replace(word, text_dict[word]
  return text_string

您可以拆分文本字符串,如果它的部分在textDict中,如果它们是,则用字典的内容替换它们:

def translate(text_string, text_dict):
   for word in text_string.split():
       if word in text_dict:
           text_string = text_string.replace(word, text_dict[word]
  return text_string
  • 字符串需要拆分为单词
  • 然后循环遍历每个单词,如果找到,用字典中的单词替换
  • 然后,根据单词重新构造一个新字符串并返回它
  • str.split()拆分为一个数组,array.join()将其重新合并

    如果句子中有标点符号,这就行不通了。您必须检测到这一点,并使用不带标点符号的单词作为键

  • 字符串需要拆分为单词
  • 然后循环遍历每个单词,如果找到,用字典中的单词替换
  • 然后,根据单词重新构造一个新字符串并返回它
  • str.split()拆分为一个数组,array.join()将其重新合并


    如果句子中有标点符号,这就行不通了。您必须检测到这一点,并使用不带标点符号的单词作为关键字

    如果您有替换词典,您可以执行以下操作:

    replacements = {
      'lol': 'laugh out loud',
      'y': 'why',
      'l8': 'late',
      'u': 'you',
      'r': 'are'
    }
    
    s1 = 'y r u l8'
    
    s2 = ' '.join([replacements.get(w, w) for w in s1.split()])
    

    如果您有替换词典,您可以执行以下操作:

    replacements = {
      'lol': 'laugh out loud',
      'y': 'why',
      'l8': 'late',
      'u': 'you',
      'r': 'are'
    }
    
    s1 = 'y r u l8'
    
    s2 = ' '.join([replacements.get(w, w) for w in s1.split()])
    

    想要更精致一点的,试试看。我是为类似的情况做的。只需将您的“拇指文”放入yaml文件并调用它。它被设计成一个web服务,但您可能会修改它以满足您的需要。

    要获得更详细的信息,请尝试。我是为类似的情况做的。只需将您的“拇指文”放入yaml文件并调用它。它被设计成一个web服务,但您可能会修改它以满足您的需要。

    这将在单词中找到单词。例如“toy”将变成“towhy”,没有考虑到这一点,我的不好。这将在单词中找到单词。例如,“toy”将变成“towhy”没有考虑到这一点,我的错。@g.d.d.c的代码比我的好——看看这个。@g.d.d.c的代码比我的好——看看这个。thnks!我发现了一些相似的东西,但是,答案没有任何间隔。我如何给返回的答案加上空格?@snwflke00-你能解释一下你所说的空格是什么意思吗?您指的是换行符/额外的空白吗?如果是这样,将
    s1.split()
    更改为
    s1.split(“”)
    将导致它只在空格上拆分,而不影响任何其他空格(新行等)。否则,请提供输入文本的较大示例。:)@snwflke00:“答案没有空格”:也许你需要
    ''。加入(..)
    而不是
    ''。加入(..)
    sry!我的意思是,当给出答案时,它会说“whyareyoulate”,而不是“why you late”@snwflke00-听起来你好像错过了
    ”.join()中的空格
    。您必须指出应该使用什么字符串来连接返回列表的成员。在本例中,是空格。thnks!我发现了一些类似的东西,但是答案没有任何空格。我如何在返回的答案中添加空格?@snwflke00-您能解释一下空格的含义吗?您指的是brea行吗ks/额外的空白?如果是这样,将
    s1.split()
    更改为
    s1.split(“”)
    将导致它只在空格上分割,而不影响任何其他空白(新行等)。否则,请提供输入文本的更大示例。@snwflke00:“答案出来时没有任何空格”:可能您需要
    “”。加入(..)
    而不是
    “”。join(..)
    sry!我的意思是,当给出答案时,它说的是“whyareyoulate”,而不是“why you late”@snwflke00-听起来好像你错过了
    “”。join()
    。你必须指出应该使用什么字符串来连接返回列表的成员。在这种情况下,是一个空格。