我正在用 python 构建一个词形还原器。由于我需要它实时运行/处理相当大量的数据,因此处理速度至关重要。数据:我有所有可能的后缀,这些后缀链接到它们可以组合的所有单词类型。此外,我还有与它们的 wordtype(s) 和 lemma(s) 相关联的引理形式。该程序将一个单词作为输入并输出其引理。word = lemmafrom + suffix
例如(注意:虽然示例是用英语给出的,但我并没有为英语构建词形还原器):
词语: 禁止
引理形式:禁止
后缀:ing
引理:禁止
我的解决方案:
我已将数据转换为(嵌套)字典:
suffixdict : {suffix1:[type1,type2, ... , type(n)], suffix2:[type1,type2, ... ,
type(n)]}
lemmaformdict : {lemmaform:{type1:lemma}}
1) 找到所有可能的后缀和它们所链接的单词类型。如果最长可能的后缀是 3 个字符,程序会尝试将 'ing'、'ng'、'n' 匹配到 suffixdict 中的键。如果键存在,则返回一个值(一组单词类型)。
2)对于每个匹配的后缀,从字典中搜索引理形式。如果 lemmaform 存在,则返回 wordtypes。
3) 最后,程序尝试与步骤 1) 和 2) 中产生的词型相交,如果相交成功,则返回该词的引理。
我的问题:从速度的角度来看,我的问题是否有更好的解决方案?(忽略在字典中保留常用词和引理的选项)帮助很大。