【发布时间】:2013-03-17 01:33:38
【问题描述】:
我正在构建一个词典,它可以帮助我根据语音和拼写法查找英语单词。这本词典将帮助我找到我需要教孩子们的英语单词的具体例子。
为此,我制作了一个包含大约 200k 单词键的大型 Python 字典,其中的值是它们的语音。
要查找单词,例如,带有最终 -aK*e 字形的单词,其中 K* 可以是任意数量的辅音,我可以使用正则表达式解析所有键。
但是,我认为将单词实际映射成网格会更聪明一些。所以我可以“书签”所有最后一个字母是 -e 的单词等等。因此,当我查找单词时,我可以简单地调用这些书签并确保获得成功,并且每次都减少要解析的单词数量,因为我像上面的示例一样通过多个条件搜索。
我的策略真的有意义吗?还是使用正则表达式来解决它?
我没有多少时间来编程,在我花宝贵的时间打字之前,我需要一些专家的建议。谢谢。
【问题讨论】:
-
您所描述的内容听起来有点像后缀树(或 trie),这是一种非常标准的方法,可以从大量文本中进行快速查找,只需部分查找值.我想一个正则表达式(至少以你描述的方式)会很慢。
标签: python regex string dictionary