私の現在のプログラミング プロジェクトは、Java の一種のフランス語辞書です (sqlite を使用)。誰かが「avoir」の現在時制を見つけたいと思っていたのに「avior」と入力したらどうなるのだろうと思っていました。だから私はある種の最も近い一致を実装できると思った/機能を意味した. だから私の質問は:
データベースを使用して類似の一致を検索する方法はありますか?
しばらく前にPythonで同じプログラムを作成したとき(代わりにxmlを使用)、このシステムを使用しましたが、あまり効果的ではなく、ある程度効果的であるために大きなエラーマージンが必要でした(その後、関連性のない単語を提案しました!)...しかし、似たようなものはまだ有用である可能性があります。
def getSimilar(self, word, Return = False):
matches = list()
for verb in self.data.getElementsByTagName("Verb"):
for x in range(16):
if x % 2 != 0 and x>0:
if (x == 15 or x == 3 or x == 1):
part = Dict(self.data).removeBrackets(Dict(self.data).getAccents(verb.childNodes[x].childNodes[0].data))
diff = 0
for char in word:
if (not char in part):
diff += 1
if (diff < self.similarityValue) and (-self.errorAllowance <= len(part) - len(word) <= self.errorAllowance):
matches.append(part)
else:
for y in range(14):
if (y % 2 != 0 and y>0):
part = Dict(self.data).getAccents(verb.childNodes[x].childNodes[y].childNodes[0].data)
diff = 0
for char in word:
if (not char in part):
diff += 1
if (diff < self.similarityValue) and (-self.errorAllowance <= len(part) - len(word) <= self.errorAllowance):
matches.append(part)
if not Return:
for match in matches:
print "Did you mean '" + match + "'?"
if Return: return matches
どんな助けでも大歓迎です!
ジェイミー