Phi*_*hil 5 .net nlp artificial-intelligence spell-checking hunspell
我正在使用NHunspell检查字符串是否存在拼写错误,如下所示:
var words = content.Split(' ');
string[] incorrect;
using (var spellChecker = new Hunspell(affixFile, dictionaryFile))
{
incorrect = words.Where(x => !spellChecker.Spell(x))
.ToArray();
}
Run Code Online (Sandbox Code Playgroud)
这通常有效,但它有一些问题.例如,如果我检查了一句"这是一个(非常好)榜样",它会报告"(非常"和"好)"为被拼错.或者,如果字符串包含诸如"8:30"之类的时间,则会将其报告为拼写错误的单词.它也有逗号等问题.
Microsoft Word非常智能,可以识别时间,分数或逗号分隔的单词列表.它知道何时不使用英语词典,它知道何时忽略符号.如何在我的软件中获得类似的,更智能的拼写检查?有没有提供更多智能的图书馆?
编辑:我不想强迫用户在他们的机器上安装Microsoft Word,因此使用COM互操作不是一个选项.
如果你的拼写检查器确实是那么愚蠢,你应该预先标记它的输入以获取单词并一次输入这些单词(或者作为一个用空格连接的字符串).我不熟悉C#/ .NET,但在Python中,你会使用一个简单的RE \w+:
>>> s = "This is a (very good) example"
>>> re.findall(r"\w+", s)
['This', 'is', 'a', 'very', 'good', 'example']
Run Code Online (Sandbox Code Playgroud)
我敢打赌.NET有一些非常相似的东西.事实上,根据.NET文档,\w支持,所以你只需要知道如何re.findall在那里调用.
| 归档时间: |
|
| 查看次数: |
882 次 |
| 最近记录: |