在Python中查找最相似的形状

1 投票
2 回答
507 浏览
提问于 2025-04-16 22:50

我正在开发一个虚拟键盘,类似于Swype(但支持的平台不同)。简单来说,这个键盘的工作方式是,你可以在键盘上滑动手指,而不需要每次都抬起手指来输入一个单词。对于那些不太了解的人来说,我需要做的就是把你滑动的形状和单词列表中的每个单词的形状进行比较,然后找到最相似的一个。我的问题是:我该如何找到最相似的形状呢?

补充一下:我试过用Python实现的$1识别器,但解析我那32,000个单词的列表几乎要花7分钟。有没有什么办法可以加快这个过程(或者至少提前计算一下)?这是我用来生成它的代码:

self.keylayout = ["qwertyuiop","asdfghjkl;","zxcvbnm,."]
for i in wl:
    points = []
    for j in i:
        if j.lower() in self.keylayout[0]:
            points.append((40, self.keylayout[0].index(j.lower())*48+24))
        elif j.lower() in self.keylayout[1]:
            points.append((120, self.keylayout[1].index(j.lower())*48+24))
        elif j.lower() in self.kl[2]:
            points.append((200, self.keylayout[2].index(j.lower())*48+24))
    self.rec = Recognizer()
    self.rec.addTemplate(i, points)

2 个回答

1

看看这个$1 单笔画识别器,它是用JavaScript写的。真是太酷了。

2

我之前写过这个。这个方法稍微有点不同,速度挺快的。希望对你有帮助。

http://krishnabharadwaj.info/how-swype-works/

撰写回答