使用NHunspell实现拼写检查

First, you need to add "NHunspell" from "NuGet" and import it. The specific operation is as follows

Right click the Reference and select "Manage NuGet Packages...",

 

then type "NHunspell " in the search bar and install it:

 

Second step, you need to create a folder to store ".aff" and ".dic" like this.

 

Download the "zip" containing the corresponding file, you can access

http://download.services.openoffice.org/contrib/dictionaries/

The last step, you can refer to the following code:

    Private Sub btCheck_Click(sender As Object, e As EventArgs) Handles btCheck.Click
        Dim affFile As String = AppDomain.CurrentDomain.BaseDirectory & "../../Dictionaries/en_us.aff"
        Dim dicFile As String = AppDomain.CurrentDomain.BaseDirectory & "../../Dictionaries/en_us.dic"
        lbSuggestion.Items.Clear()
        lbmorph.Items.Clear()
        lbStem.Items.Clear()

        Using hunspell As New Hunspell(affFile, dicFile)
            Dim correct As Boolean = hunspell.Spell(TextBox1.Text)
            checklabel.Text = TextBox1.Text + " is spelled " & (If(correct, "correct", "not correct"))

            Dim suggestions As List(Of String) = hunspell.Suggest(TextBox1.Text)
            countlabel.Text = "There are " & suggestions.Count.ToString() & " suggestions"
            For Each suggestion As String In suggestions
                lbSuggestion.Items.Add("Suggestion is: " & suggestion)
            Next

            Dim morphs As List(Of String) = hunspell.Analyze(TextBox1.Text)
            For Each morph As String In morphs
                lbmorph.Items.Add("Morph is: " & morph)
            Next

            Dim stems As List(Of String) = hunspell.Stem(TextBox1.Text)
            For Each stem As String In stems
                lbStem.Items.Add("Word Stem is: " & stem)
            Next
        End Using
    End Sub

Result:

 

Refer to: https://www.codeproject.com/Articles/43495/Spell-Check-Hyphenation-and-Thesaurus-for-NET-with

Besides, the control "TextBox" and "RichTextBox" in WPF can also implements spell checking via displaying wavy lines. For more details, you can refer to Winform中调用WPF控件.

posted @ 2019-01-09 16:32  Kyle0418  阅读(523)  评论(3编辑  收藏  举报