我需要在 ASP.NET 中构建一个拼写建议器......以下是我的要求。
案例 1:我的单词列表不仅仅是英语单词,还包括一些代码,如 AACD、ESSA、BIMER 等……我可以从数据库中提供此类(新)单词。
案例 2:我还需要一个类似的非英语拼写建议器,即使在这里,我也可以提供来自数据库的单词列表。
现在,欢迎任何关于我如何实现它的建议。
此外,我从一个网站上找到了以下 Python 代码,该代码指出它返回了最可能的建议(当然是英文)。如果有人可以将其翻译成 C#,那将非常有帮助。
进口重新,收藏品 def words(text): return re.findall('[az]+', text.lower()) def 火车(特点): 模型 = collections.defaultdict(lambda: 1) 对于 f in 特征: 模型[f] += 1 返回模型 NWORDS = train(words(file('big.txt').read())) 字母 = 'abcdefghijklmnopqrstuvwxyz' def 编辑1(字): s = [(word[:i], word[i:]) for i in range(len(word) + 1)] 删除 = [a + b[1:] for a, b in s if b] 转置 = [a + b[1] + b[0] + b[2:] for a, b in s if len(b)>1] 替换 = [a + c + b[1:] for a, b in s for c in alphabet if b] inserts = [a + c + b for a, b in s for c in alphabet] 返回集(删除+转置+替换+插入) def known_edits2(word): 返回集(如果 e2 在 NWORDS 中,则在 edits1(word) 中的 e2 用于 edits1(e1) 中的 e2) def known(words): return set(w for w in words if w in NWORDS) def 正确(字): 候选人 = known([word]) or known(edits1(word)) or known_edits2(word) or [word] 返回最大值(候选人,key=NWORDS.get)
谢谢 - 拉贾