roo*_*oot 5 python optimization nlp lemmatization
我在python中构建一个lemmatizer.由于我需要它实时运行/处理相当大量的数据,处理速度至关重要.数据:我有所有可能的后缀链接到可以组合的所有单词类型.另外,我有一些与其wordtype(s)和lemma(s)相关联的词形.该程序将一个词作为输入并输出其引理.word = lemmafrom + suffix
例如(注意:虽然这个例子是用英语给出的,但我没有为英语构建一个lemmatizer):
字:禁止
引理:禁止
后缀:ing
引理:禁止
我的解决方案
我已将数据转换为(嵌套)dicts:
suffixdict : {suffix1:[type1,type2, ... , type(n)], suffix2:[type1,type2, ... ,
type(n)]}
lemmaformdict : {lemmaform:{type1:lemma}}
Run Code Online (Sandbox Code Playgroud)
1)找到它们链接到的所有可能的后缀和单词类型.如果最长的后缀长度为3个字符,程序会尝试将"ing","ng","n"与suffixdict中的键匹配.如果键存在,则返回一个值(一组单词类型).
2)对于每个匹配的后缀,搜索dict中的引理.如果存在lemmaform,则返回wordtype.
3)最后,程序尝试将步骤1)和2)中产生的单词类型相交,如果交集成功,则返回单词的引理.
我的问题:从速度的角度来看,我的问题能有更好的解决方案吗?(无视在字典中保留频繁的单词和词条的选项)帮助很多.