Forum Discussion
Spell Check PowerBI
Hello,
I want to do spell check for each row in a column, is there a function or something that I can use to check spell check and return a false or true if the word is correctly spell?
Regards,
Nicolas Blanco
4 Replies
- pmreisMost Valuable Professional
Hi NBR_22
Natively there isn't a way to do it as per my knowledge. However you can create a custom function which uses a spell checking API.For instance, using the Bing Spell Check API:
- Sign up for the Bing Spell Check API and get your API key.
- Create a custom function in Power Query to call the API.
- Invoke the custom function on each row
Here is some sample code, auto generated by AI, I didn't test it:
let CheckSpelling = (word) => let apiUrl = "https://api.cognitive.microsoft.com/bing/v7.0/spellcheck?text=" & word, headers = [#"Ocp-Apim-Subscription-Key" = "Your_API_Key_Here"], source = Json.Document(Web.Contents(apiUrl, [Headers=headers])), result = source[flaggedTokens] // Check if there are any flagged tokens in List.IsEmpty(result) // Returns true if the word is correct, false otherwise in CheckSpelling​
Pedro Reis - Data Platform MVP / MCT
Making Power BI and Fabric Simple
If my response resolved your issue, please mark it as a solution to help others find it. If you found it helpful, please consider giving it a kudos. Your feedback is highly appreciated!
Find me at LinkedIn - mlsx4Memorable Member
Hi NBR_22
As far as I know there's no easy way. Probably, you can take a look at this solution and see if it applies to you: https://www.youtube.com/watch?v=W-iy9IQ76Gg
- AmiraBedhSuper User
While I strongly believe that DAX first purpose isn't dedicated for such operation but here is an example :
The most simple way (especially of your data isn't huge) :
You'd need a reference list (dictionary) of correctly spelled words. Create a relationship between your data table and this dictionary.SpellCheck = IF( ISBLANK(RELATED('Dictionary'[Word])), "False", "True" )
This will return "False" if the word does not exist in the dictionary, and "True" otherwise.Eventhough being easy, this approach only works for individual words and not phrases. Handling multi-word phrases or sentences would be much more complex.Or you can use this API Spell Check (this is a thread about it https://stackoverflow.com/a/59588277)
You can also use a Python script :
import pandas as pd from spellchecker import SpellChecker data = dataset spell = SpellChecker() data['IsCorrectlySpelled'] = data['YourColumnName'].apply(lambda x: x not in spell.unknown([x])) output = dataor using R you may need to install the hunspell package :
library(hunspell) data <- dataset # This will return a list where each element corresponds to a word from the input. # TRUE means the word is correct, FALSE means it's not recognized. correctly_spelled <- hunspell_check(data$YourColumnName) data$IsCorrectlySpelled <- correctly_spelled output <- data