我在使用Python编写一个词形还原器。由于需要实现实时运行/处理大量数据,因此处理速度至关重要。
数据:我拥有所有可能的后缀,这些后缀与它们可以结合的所有词类相连。此外,我还有与它们的词类和词元形式相关联的词元表格。该程序以单词作为输入并输出其词元形式。
单词=词元表格+后缀
例如(注意:虽然例子是用英语给出的,但我不是在编写英语的词形还原器):
单词:forbidding
词元表格:forbidd
后缀:ing
词元:forbid
我的解决方案:
我已将数据转换为(嵌套)字典:
例如(注意:虽然例子是用英语给出的,但我不是在编写英语的词形还原器):
单词:forbidding
词元表格:forbidd
后缀:ing
词元:forbid
我的解决方案:
我已将数据转换为(嵌套)字典:
suffixdict : {suffix1:[type1,type2, ... , type(n)], suffix2:[type1,type2, ... ,
type(n)]}
lemmaformdict : {lemmaform:{type1:lemma}}
1) 找到所有可能的后缀以及它们连接到的单词类型。如果最长可能的后缀长度为 3 个字符,则程序会尝试将 'ing'、'ng' 和 'n' 与 suffixdict 中的键进行匹配。如果存在该键,则返回一个值(一组单词类型)。
2) 对于每个匹配的后缀,在字典中搜索 lemmaform。如果 lemmaform 存在,则返回单词类型。
3) 最后,程序尝试交集步骤 1 和步骤 2 生成的单词类型,如果交集成功,则返回单词的词源。
我的问题是:从速度的角度来看,是否有更好的解决方案?(不考虑在字典中保留常见的单词和词源选项)非常感谢您的帮助。