Saturday, December 11, 2004

 

Spell checker with source code

还是为SciEdit做的,随便谈谈而已

1. A free Spell Checker with a dictionary editor program
By Peter Pearson
http://www.codeproject.com/cpp/spellchecker_pp.asp

这可是说是最为简单的一个例子,讲解也比较细致,其流程大致可以归纳为以下几步
a) 获得需要分析的单词,这里是从Editbox中获得流式文件,然后用最基本的字符串处理方法打成一个个单词,放进CStringArray中
b) 变lowercase后,比较单词表,未使用任何附加技术提高比对速度
c) 保存CStringArray IgnoreAll来处理Ignore的情况
d) 提供一个ListCtrl based对话框程序来编辑单词表,图标不错
e) 提供一个简单的单词替换对话框
f) 字典是最基本的每行一个单词格式的文本文件

改方法的缺点是速度太低。很多地方需要优化

2.
A Spell Checking Engine
By Matt Gullett
http://www.codeproject.com/cpp/spellchecker_mg.asp

这个例子有了很多改进的地方
g) 更加友好,强大的用户界面
h) 重载了CEdit class,新的CFPSSpellingEditCtrl和Spell Check Engine结合的更加方便,紧密:例如提供HotKey,弹出菜单等。同时重载了OnPaint,中规中矩的提供了红色下划波浪线提示错误。很友好,同时很重要的功能。这段代码写的不错。
f) 增加了Common Mistake库

最近还推出了多种商业版本 http://www.spellican.com/
使用XML进行单词储存,可是效率依然不是很高

3.
Spell Checker Dictionary Engine
By Martyn Pearson
http://www.codeproject.com/cpp/spelldictionary.asp

这个例子使用了编码理论中比较简单的一种单词储存方式Dynamic Acyclic Word Graph,然而该方法要求使用设计得比较好的单词库,该例子的作者显然没有能力提供合适的单词库。

4.
NetSpell - Spell Checker for .NET
By Paul Welter
http://www.loresoft.com/NetSpell

SpellEdit
By SteveKing
http://www.codeproject.com/editctrl/SpellEdit.asp

这两个项目都是和OepnOffice的Lingucomponent Project项目MySpell相关的,由于使用了Affix Compression技术,效率和字库大小都有相当的保证。
其相关网页在
http://lingucomponent.openoffice.org/
http://lingucomponent.openoffice.org/dictionary.html
http://lingucomponent.openoffice.org/download_dictionary.html

我比较喜欢NetSpell这个项目,纯粹的C#,移植得有自己特色

5.
Using the Microsoft Common Spell API
By Tibor Blazko
http://www.codeproject.com/cpp/csapi.asp
使用微软的现成产品是一种选择,不过要求有使用许可权限

6.
Aspell
http://aspell.sourceforge.net/

GNU Aspell is a Free and Open Source spell checker designed to eventually replace Ispell. It can either be used as a library or as an independent spell checker. Its main feature is that it does a much better job of coming up with possible suggestions than just about any other spell checker out there for the English language, including Ispell and Microsoft Word. It also has many other technical enhancements over Ispell such as using shared memory for dictionaries and intelligently handling personal dictionaries when more than one Aspell process is open at once.

不错的GNU,单词库,优于Word 97,但是不知道和后续的Word怎么比较

7.
Kevin's Word List Page
http://wordlist.sourceforge.net/

不错的资源网页

8.
Spelly - Spell Checker
By yonat
http://www.codeguru.com/tools/visualstudioadd-ins/article.php/c1411/

Spellcheck Macro for Visual Studio
http://www.wndtabs.com/spelly/

是VS用的Spell Checker,搞不懂这真的需要吗?

9.
TeXnicCenter中的MySpell插件
http://www.texniccenter.org/front_content.php

也部分使用了Affix Compression技术。呵呵,被他们称为TeXnicCenter的Fans



<< Home

This page is powered by Blogger. Isn't yours?