You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

求支持英法德荷的词元屈折变化工具(生成复数、形容词等)

多语言词元屈折/派生生成工具推荐

以下是几款支持英语、荷兰语、德语和法语的词元屈折(含派生)生成工具,针对你提到的需求给出具体说明:

1. FreeLing

  • 支持语言:完全覆盖英语、荷兰语、德语、法语
  • 核心能力:开源NLP工具包,内置形态分析与生成模块,可从词元生成复数、形容词、副词等多种屈折/派生形式,规则覆盖全面
  • Python用法示例:
    import freeling
    
    # 初始化工具(以英语为例,其他语言替换lang参数为"nl"/"de"/"fr")
    freeling.util_init_locale("default")
    lang = "en"
    data_path = "/path/to/freeling/data"  # 替换为你的FreeLing数据路径
    analyzer = freeling.analyzer(data_path, lang)
    
    # 生成词元'science'的目标形式
    plural_form = analyzer.generate("science", "NN", "PL")  # 复数名词
    adj_form = analyzer.generate("science", "NN", "JJ")      # 形容词形式
    adv_form = analyzer.generate("scientific", "JJ", "RB")   # 副词形式
    print(plural_form, adj_form, adv_form)
    
  • 注意:需提前下载对应语言的FreeLing模型文件,官方提供预训练资源。

2. MorphoDiTa

  • 支持语言:提供英语、荷兰语、德语、法语的预训练形态模型
  • 核心能力:专注于形态学处理,可精准生成词元的所有合规屈折形式,部分派生规则也能覆盖(如名词转形容词)
  • Python用法示例:
    import pymorphodita
    
    # 加载英语模型(其他语言替换模型路径)
    model = pymorphodita.Tagger.load("/path/to/en-morphodita.tagger")
    generator = model.get_generator()
    
    # 生成目标形式
    # 复数名词:指定词元、词性标签和形态特征
    plural = generator.generate("science", "NN", {"Number": "Plur"})
    # 形容词形式:部分模型支持派生规则,需指定目标词性
    adjective = generator.generate("science", "NN", {"Pos": "ADJ"})
    print(plural, adjective)
    

3. spaCy(优化用法)

你提到已尝试spaCy,但可能未用到合适的扩展或模型配置:

  • 支持语言:各语言有独立预训练模型(如en_core_web_sm、nl_core_news_sm等)
  • 核心能力:结合规则扩展可实现屈折/派生生成,默认模型的morph属性支持屈折形式生成,派生形式可通过自定义规则补充
  • 用法示例:
    import spacy
    
    nlp = spacy.load("en_core_web_sm")
    doc = nlp("science")
    token = doc[0]
    
    # 生成复数名词
    plural_token = token._.inflect("NNS")
    # 自定义派生规则(名词转形容词/副词)
    adj_form = token.text + "ic"
    adv_form = adj_form + "ally"
    print(plural_token, adj_form, adv_form)
    
  • 扩展推荐:可搭配spacy-morphology扩展增强形态生成能力,覆盖更多派生场景。

4. Hunspell

  • 支持语言:四种语言均有官方/社区维护的词典文件
  • 核心能力:虽主打拼写检查,但词典内置屈折规则,可生成复数、动词变位等形式,部分派生形式也能匹配
  • Python用法示例:
    import hunspell
    
    # 加载英语词典(其他语言替换词典路径)
    hobj = hunspell.HunSpell("/path/to/en_US.dic", "/path/to/en_US.aff")
    # 生成词元变体
    variants = hobj.generate("science")
    print([v for v in variants if v in ["sciences", "scientific"]])
    

内容的提问来源于stack exchange,提问作者dderom

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.30 05:03:14