Python 如何扩展首字母缩略词(例如“is”=信息专家),同时不扩展同一单词的不同上下文(例如“is”)?

Python 如何扩展首字母缩略词(例如“is”=信息专家),同时不扩展同一单词的不同上下文(例如“is”)?,python,text,Python,Text,我正在从事一个项目,在这个项目中,我必须扩展我们特定领域的首字母缩略词,例如“IS”(信息专家)。然而,我目前的剧本也扩展了常用词,如“是”(例如,他很有趣)。我如何区分这个词是否是首字母缩略词 目前,我正在使用一个字典,其中键作为首字母缩略词,值作为首字母缩略词的扩展版本 编辑:我应该说明我更关心缩写词不大写且字母之间没有句点的边缘情况。您需要确保所做的任何事情都区分大小写。您还应该检查字符之间是否有 我会对字符串中的每个单词进行拆分,查找那些都是大写的单词,并只对这些单词应用字典。或者,您可

我正在从事一个项目,在这个项目中,我必须扩展我们特定领域的首字母缩略词,例如“IS”(信息专家)。然而,我目前的剧本也扩展了常用词,如“是”(例如,他很有趣)。我如何区分这个词是否是首字母缩略词

目前,我正在使用一个字典,其中键作为首字母缩略词,值作为首字母缩略词的扩展版本


编辑:我应该说明我更关心缩写词不大写且字母之间没有句点的边缘情况。

您需要确保所做的任何事情都区分大小写。您还应该检查字符之间是否有


我会对字符串中的每个单词进行拆分,查找那些都是大写的单词,并只对这些单词应用字典。或者,您可以使用全局正则表达式find/replace执行类似操作,它可以同时查找“IS”和“I.S.”

您可以在列表中分隔单词,然后检查是否有任何单词在所有大写字母中,然后将其与词典进行比较

假设首字母缩略词都大写,您只需进行简单的拆分和比较即可

def expand(string, dict):
    tokens = string.split(" ")
    for token in tokens:
        if token in dict:
            yield dict[token]
        else:
            yield token

d = {"IS":"Informatoin Specialist","SO":"Stack Overflow"}
s = "John is an IS at SO"

print(*[t for t in expand(s,d)])

#John is an Information Specialist at Stack Overflow

缩略语通常是大写的,所以你可以用字母的大小写来区分它们。@martineau I更关心的是字母之间没有大写且没有句点的边缘情况。我建议你尽可能使用一个定义良好的模式,可能有少量的变化(比如允许句号是可选的)。这是一个很好的问题,不知道为什么会出现否决票。在现实中,当人们懒得大写首字母缩写或只是数据问题时,这种情况经常发生。你可以查看上下文。在简单的情况下,如果“是”看起来像上下文中的动词,不要展开。否则,展开。在更复杂的情况下,您可能需要文本分析。