`

python 之 求英语单词复数的 一种实现方式

阅读更多
#!/usr/bin/evn python

import re;

def GetMatchAndApplyFuncs(strPattern, strSearch, strReplace):
    def MatchRule(strWord):
        return re.search(strPattern, strWord);
    
    def ApplyRule(strWord):
        return re.sub(strSearch, strReplace, strWord);
    
    return (MatchRule, ApplyRule);

g_tlPattern = (
    ('[sxz]$',           '$',  'es'),
    ('[^aeioudgkprt]h$', '$',  'es'),
    ('(qu|[^aeiou])y$',  'y$', 'ies'),
    ('$',                '$',  's')  
);

g_lsRules = [GetMatchAndApplyFuncs(strPattern, strSearch, strReplace) for (strPattern, strSearch, strReplace) in g_tlPattern];

def GetPlural(strWord):
    if not strWord:
        return "";
    
    for fnMatch, fnApply in g_lsRules:
        if fnMatch(strWord):
            return fnApply(strWord);
        
if "__main__" == __name__:
    strVal = "exhs";
    strPlural = GetPlural(strVal);
    print("%s plural ==> %s" %(strVal, strPlural));
 
分享到:
评论

相关推荐

    txt格式 只有英文词库 包含一些复数 过去式 做单词检查还不错

    在信息技术领域,文本处理是一种常见的任务,尤其是在语言学习和自然语言处理中。这里我们关注的是一款基于txt格式的英文词库,它包含了丰富的词汇,包括复数形式和过去式,非常适合用于单词检查和学习。这种词库的...

    Python 快速入门 (英文)

    - **Python简介**:Python是一种解释型、面向对象、动态数据类型的高级程序设计语言。由Guido van Rossum于1991年首次发布,旨在提高代码的可读性和效率。 - **特点**: - 易学性:Python的语法简洁明了,使得学习...

    2023NOC软件创意编程赛项真题-python小高复赛

    编写程序处理英语单词的复数形式转换。 **代码解析**: ```python word = input() # 输入单词 # 处理单词变复数的逻辑 if word.endswith(('s', 'sh', 'ch', 'x')): word += 'es' elif word.endswith('y') and ...

    以YF结尾可数名词变复数共8页.pdf-文档整理可打印.z

    以“YF”结尾的英语单词并不常见,但如果是以“f”或“fe”结尾的词,变复数时通常需要改变末尾字母。例如,“knife”变为“knives”,“leaf”变为“leaves”。在编程中,这可能与字符串操作或自然语言处理有关,...

    文本分类之词频统计(分词、词干提取、去停用词、计算词频,有界面)

    在英语中,Porter Stemmer是一种常见的词干提取工具,而在中文中,我们可能需要进行词语标准化,如将“跑”、“跑步”、“跑着”都归一化为“跑”。 接下来是**去停用词**。停用词是指在文本中频繁出现但对理解文本...

    拼写检查器 Hunspell

    词典文件包含了一系列正确拼写的单词,而 affix 文件则包含了如何通过添加或移除词缀来变形单词的规则。这些规则使得Hunspell能够识别和处理各种复杂的词汇形态变化,如复数形式、动词时态、形容词比较级等。 在...

    莎士比亚翻译应用程序:此应用程序以英语输入用户的信息并将其翻译成莎士比亚英语

    后端部分可能由一种服务器端编程语言如Python或Node.js实现,用于处理来自前端的请求,执行翻译算法,以及存储和管理应用程序的数据。如果使用了基于云的服务,如Google Cloud Translate API或自定义训练的机器学习...

    cython_hunspell:Cython包装器在Hunspell词典上

    Cython是一种静态类型的语言,它是Python的一个超集,允许开发者用类似Python的语法编写代码,然后将其编译成C或C++,以获得接近原生速度的执行效率。Cython_hunspell项目正是利用了这一特性,降低了Python调用...

    wordmark:一个单词的不同形式划为原型的对照表

    总之,wordmark是一个关注于单词形态分析的工具,对于进行自然语言处理的程序员和语言学家来说,它提供了一种高效的方式来处理和理解词汇的多变形态,从而提升他们的应用程序在理解文本时的准确性和效率。...

    sentiment-analysis:在此项目中,以土耳其语和英语进行情感分析

    例如,土耳其语是一种 agglutinative 语言,单词形态变化丰富,而英语则需要考虑动词时态、名词单复数和介词短语等复杂结构。 2. **数据集准备**:进行情感分析前,需要收集并标注大量的双语语料库。这些语料库可能...

    Span-Gles-开源

    同时,Python和GTK的选用也体现了开发者的智慧,Python是一种广泛使用的高级编程语言,易于学习,拥有丰富的库支持;GTK则是一个跨平台的图形用户界面工具包,使得Span-Gles能够在多种Linux发行版上运行无阻。 在...

    NlpLibraries:NLP 相关事物的存储库

    在IT行业中,自然语言处理(Natural Language Processing, NLP)是一项关键的技术,它涉及计算机对人类语言的理解、分析和生成。NLP库是开发者用来处理文本数据的重要工具,可以简化许多复杂的任务,如文本分类、...

    使用Sphinx对索引进行搜索

    倒排索引是一种高效的数据结构,它存储了每个词项在哪些文档中出现,以及出现的位置。当查询词项与索引匹配时,Sphinx能够快速定位到包含这些词项的文档。 5、**相关性排序**:找到匹配的文档后,Sphinx会根据查询...

    intromorpho20.2:文件库,用于介绍词素语法

    这在处理各种语言时尤为重要,因为不同的语言有不同的词形变化规则,如英语的复数形式、过去式,或者德语的强变化和弱变化。 `intromorpho20.2` 文件库很可能包含了以下组件: 1. **源代码**:可能是用特定编程...

Global site tag (gtag.js) - Google Analytics