Swypeに似た仮想キーボードに取り組んでいます(ただし、サポートされていないプラットフォームの場合)。基本的に、これが行うことは (慣れていない人のために)、単語ごとに指を離さずにキーの上で指を動かすことです。だから私がする必要があるのは、描かれた形を単語リストの各単語の形と比較し、最も似ているものを使うことです. 私の問題は次のとおりです。最も類似した形状を見つけるにはどうすればよいですか?
編集: $1 レコグナイザーの Python 実装を試してみましたが、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)