Как удалить слова, которые не имеют никакого смысла, из столбца текстовых наблюдений

#python #pandas #nlp #data-cleaning

#python #панды #nlp #очистка данных

Вопрос:

У меня около 2 миллионов отзывов, большинство слов в обзорах — чистый мусор, как показано ниже:

 [('tcsworklife', 1),
 ('freshs', 1),
 ('elserun', 1),
 ('anathor', 1),
 ('ontract', 1),
 ('locationadibatla', 1),
 ('hindiname', 1),
 ('culturenegotiation', 1),
 ('ਵਭਗ', 1),
 ('ਵਗਰ', 1),
 ('ਭਰਭ', 1),
 ('ਬਹਤ', 1),
 ('ਹ', 1),
 ('ਵਧਆ', 1),
 ('happybcz', 1),
 ('qriruduif', 1),
 ('carpanter', 1),
 ('ghule', 1),
 ('intrapolitics', 1),
 ('collasan', 1),
 ('tcsthe', 1),
 ('oftion', 1),
 ('shiftit', 1),
 ('tellycalling', 1),
 ('majour', 1),
 ('securitied', 1),
 ('balaraju', 1),
 ('minupuri', 1),
 ('sdcvbhgvfcrdxs', 1),
 ('vgfcdxsza', 1),
 ('dscdc', 1),
 ('qdwd', 1),
 ('njn', 1),
 ('njnjn', 1),
 ('njnjnjn', 1),
 ('gbjk', 1),
 ('skhgksd', 1),
 ('kshdsgsd', 1),
 ('sbkhgsdjsg', 1),
 ('shkddshkjsd', 1),
 ('siddharthai', 1),
 ('nbwjh', 1),
 ('satilment', 1),
 ('mallinath', 1),
 ('tippanna', 1),
 ('djciajd', 1),
 ('fnjec', 1),
 ('jxrjcidcjtvm', 1),
 ('aporchunet', 1),
 ('thoraibakkamchennai', 1)]
'chooseeverything', 1),
 ('thatâs', 1),
 ('understandbest', 1),
 ('intercomany', 1),
 ('experiancelow', 1),
 ('anythingmachine', 1),
 ('lifetraveling', 1),
 ('timenight', 1),
 ('hollidayyou', 1),
 ('trsnsport', 1),
 ('workplacegreat', 1),
 ('webdriver', 1),
 ('freinely', 1)
 

Как мне избавиться от этих слов, которые не имеют смысла, и сохранить те, которые имеют смысл?
Примечание: некоторые слова имеют смысл, но не содержат пробелов, или это просто орфографические ошибки, а не мусорные слова, такие как weqwioeuwiouewq2rtg. Я пытаюсь найти наиболее оптимальный способ очистки этого.

Комментарии:

1. Спасибо, но мой запрос также касался того, как исправить ошибки правописания и интервалов и учесть эти слова

Ответ №1:

Вы можете сравнить каждое из ваших слов с соответствующим словарем s.t.

 import nltk   # if not installed yet just run pip install nltk
nltk.download('wordnet')
if wordnet.synsets("Human"):
    print("this word belongs to the English Dictionary")
else:
    print("it does not belong to the English Dictionary")
 

чтобы узнать, принадлежит ли оно слову в словаре английского языка.

Есть и другие возможности с другими языковыми словарями, если вам нужно.