Detect slang words from a string in Python

Hello friends, you must have seen many slang words in the text you read. Either a blog post, comment section, or a 50-page long assignment, etc. Sometimes it’s not possible to read each comment or the entire document. However, we can screen text and filter such words using a module in Python, wordfilter. You can also use the words-slang list to detect slang words from a string in Python.

Contents of the tutorial :

  • wordfilter module
  • word-slang list

Detect slag words from a string using wordfilter module in Python

To use the module, first I installed the package on my local system using the command prompt on Windows (Terminal for macOS/Linux users).

pip install wordfilter

Once installed, import the package to your code.

from wordfilter import Wordfilter

I have created an object for the class and given it a temporary name, filter.

Code :

filter = Wordfilter()
string = 'Hey crazy'
print(filter.blacklisted(string))

Now, I have taken a string as input. I have used the function blacklisted() to detect slang words. This function takes a string as an input and returns a boolean value. As ‘crazy’ is a slang word, I get True as my output.

Output : 

True

Detect slag words from a string using word-slang list in Python

You can download the word-slang list from this link. Once downloaded, I have a text file that I can read in Python. You can check out my tutorial on text file. I have used the split() function to get each word of my string and stored it in a variable, string_list. I have run a nested for loop. The first loop iterates over each word in my string_list and the other iterates over each word present in the list which I have gained by reading the text file. Now I have checked if the words are the same or not, if yes, I have incremented my counter, c value. 

Code :

string = "hey crazy"
string_list = string.split()

file_path = r"/C:/Desktop/words-slang.txt"
file = open(file_path, 'r')
s = file.readlines()
c = 0

for word in string_list:
    for w in s:
        if word == w.strip('\n'):
            c += 1
if c > 0:
    print("True")
else:
    print("False")

After the loop, I check if the counter’s value is greater than 0 or not. If yes, then it indicates that the string contains slang words else it will return return me False. In this example the string value is ‘hey crazy’ where ‘crazy’ is a slang word. Thus I get an output as True.

Output : 

True

Now you can detect slang words from strings in Python.

Leave a Reply

Your email address will not be published. Required fields are marked *