πŸ” Как ΠΎΡ‡ΠΈΡΡ‚ΠΈΡ‚ΡŒ тСкст Π² Python: простой ΠΈ эффСктивный способ

Для очистки тСкста Π² Python Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹:

  1. Π£Π΄Π°Π»Π΅Π½ΠΈΠ΅ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Ρ… символов:
  2. import re
    
    text = "ΠŸΡ€ΠΈΠ²Π΅Ρ‚, @ΠΌΠΈΡ€! 🌍"
    clean_text = re.sub(r'[^\w\s]', '', text)
    print(clean_text)

    Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚: "ΠŸΡ€ΠΈΠ²Π΅Ρ‚ ΠΌΠΈΡ€"

  3. Π£Π΄Π°Π»Π΅Π½ΠΈΠ΅ Π»ΠΈΡˆΠ½ΠΈΡ… ΠΏΡ€ΠΎΠ±Π΅Π»ΠΎΠ²:
  4. text = "    ΠŸΡ€ΠΈΠ²Π΅Ρ‚,     ΠΌΠΈΡ€!    "
    clean_text = " ".join(text.split())
    print(clean_text)

    Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚: "ΠŸΡ€ΠΈΠ²Π΅Ρ‚, ΠΌΠΈΡ€!"

  5. ΠŸΡ€ΠΈΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ ΠΊ Π½ΠΈΠΆΠ½Π΅ΠΌΡƒ рСгистру:
  6. text = "ΠŸΡ€ΠΈΠ²Π΅Ρ‚, МИР!"
    clean_text = text.lower()
    print(clean_text)

    Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚: "ΠΏΡ€ΠΈΠ²Π΅Ρ‚, ΠΌΠΈΡ€!"

Π”Π΅Ρ‚Π°Π»ΡŒΠ½Ρ‹ΠΉ ΠΎΡ‚Π²Π΅Ρ‚

Как ΠΎΡ‡ΠΈΡΡ‚ΠΈΡ‚ΡŒ тСкст Π² Python

ΠžΡ‡ΠΈΡΡ‚ΠΊΠ° тСкста являСтся Π²Π°ΠΆΠ½ΠΎΠΉ Π·Π°Π΄Π°Ρ‡Π΅ΠΉ Π² области ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ СстСствСнного языка (NLP - Natural Language Processing). ΠœΡ‹ часто сталкиваСмся с Π½Π΅ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Π°Π½Π½Ρ‹ΠΌΠΈ Π΄Π°Π½Π½Ρ‹ΠΌΠΈ Π² Π²ΠΈΠ΄Π΅ тСкстовых Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ², ΡΠΎΡ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Ρ… ΠΌΠ΅Π΄ΠΈΠ° сообщСний, Π°Ρ€Ρ…ΠΈΠ²ΠΎΠ² элСктронной ΠΏΠΎΡ‡Ρ‚Ρ‹ ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΡ… источников Π΄Π°Π½Π½Ρ‹Ρ…. ЦСль очистки тСкста - привСсти Π΅Π³ΠΎ Π² структурированный ΠΈ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Π°Π½Π½Ρ‹ΠΉ Π²ΠΈΠ΄, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΌΠΎΠΆΠ½ΠΎ Π±Ρ‹Π»ΠΎ ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡ‚ΡŒ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΡ‹ ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ Π°Π½Π°Π»ΠΈΠ·Π° Π΄Π°Π½Π½Ρ‹Ρ….

Π’ Python сущСствуСт нСсколько способов очистки тСкста. Π”Π°Π²Π°ΠΉΡ‚Π΅ рассмотрим Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΈΠ· Π½ΠΈΡ…:

1. Π£Π΄Π°Π»Π΅Π½ΠΈΠ΅ Π·Π½Π°ΠΊΠΎΠ² прСпинания

Π—Π½Π°ΠΊΠΈ прСпинания, Ρ‚Π°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ Ρ‚ΠΎΡ‡ΠΊΠΈ, запятыС, Π²ΠΎΡΠΊΠ»ΠΈΡ†Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ ΠΈ Π²ΠΎΠΏΡ€ΠΎΡΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ Π·Π½Π°ΠΊΠΈ, ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ ΡƒΠ΄Π°Π»Π΅Π½Ρ‹ ΠΈΠ· тСкста. Для этого ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΌΠ΅Ρ‚ΠΎΠ΄ .translate() Π² сочСтании с ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΌ string. Π’ΠΎΡ‚ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ ΠΊΠΎΠ΄Π°:


import string

def remove_punctuation(text):
    translator = str.maketrans('', '', string.punctuation)
    return text.translate(translator)

text = "ΠŸΡ€ΠΈΠ²Π΅Ρ‚, ΠΌΠΈΡ€!"
cleaned_text = remove_punctuation(text)
print(cleaned_text)  # "ΠŸΡ€ΠΈΠ²Π΅Ρ‚ ΠΌΠΈΡ€"
    

2. ΠŸΡ€ΠΈΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ тСкста ΠΊ Π½ΠΈΠΆΠ½Π΅ΠΌΡƒ рСгистру

Π•Ρ‰Π΅ ΠΎΠ΄ΠΈΠ½ распространСнный способ очистки тСкста - ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ Π΅Π³ΠΎ ΠΊ Π½ΠΈΠΆΠ½Π΅ΠΌΡƒ рСгистру. Π­Ρ‚ΠΎ ΠΏΠΎΠ»Π΅Π·Π½ΠΎ, ΠΊΠΎΠ³Π΄Π° ΠΌΡ‹ Ρ…ΠΎΡ‚ΠΈΠΌ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ Π°Π½Π°Π»ΠΈΠ· Π΄Π°Π½Π½Ρ‹Ρ…, Π½Π΅ учитывая рСгистр слов. Для этого ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΠΌΠ΅Ρ‚ΠΎΠ΄ .lower(). Π’ΠΎΡ‚ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ ΠΊΠΎΠ΄Π°:


text = "ΠŸΡ€ΠΈΠ²Π΅Ρ‚, МИР!"
cleaned_text = text.lower()
print(cleaned_text)  # "ΠΏΡ€ΠΈΠ²Π΅Ρ‚, ΠΌΠΈΡ€!"
    

3. Π£Π΄Π°Π»Π΅Π½ΠΈΠ΅ стоп-слов

Бто́п-слова это слова, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ Π½Π΅ нСсут смысловой Π½Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ ΠΈ Π²ΡΡ‚Ρ€Π΅Ρ‡Π°ΡŽΡ‚ΡΡ Π² большом количСствС Π² тСкстС (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, "ΠΈ", "Π²", "Π½Π°"). Удаляя стоп-слова, ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΡΠΎΡΡ€Π΅Π΄ΠΎΡ‚ΠΎΡ‡ΠΈΡ‚ΡŒΡΡ Π½Π° Π±ΠΎΠ»Π΅Π΅ Π²Π°ΠΆΠ½Ρ‹Ρ… ΠΈ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΠ²Π½Ρ‹Ρ… словах. Для удалСния стоп-слов ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ NLTK (Natural Language Toolkit) Π² Python. Π’ΠΎΡ‚ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ ΠΊΠΎΠ΄Π°:


import nltk
from nltk.corpus import stopwords

nltk.download('stopwords')

stop_words = set(stopwords.words('russian'))

def remove_stopwords(text):
    words = text.split()
    cleaned_words = [word for word in words if word.lower() not in stop_words]
    return ' '.join(cleaned_words)

text = "Π­Ρ‚ΠΎ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ тСкста с Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌΠΈ стоп-словами"
cleaned_text = remove_stopwords(text)
print(cleaned_text)  # "ΠΏΡ€ΠΈΠΌΠ΅Ρ€ тСкста Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌΠΈ стоп-словами"
    

4. Π£Π΄Π°Π»Π΅Π½ΠΈΠ΅ чисСл ΠΈ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Ρ… символов

Если Π² тСкстС ΠΏΡ€ΠΈΡΡƒΡ‚ΡΡ‚Π²ΡƒΡŽΡ‚ числа ΠΈ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Π΅ символы, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ нСсут Π½Π΅Π±ΠΎΠ»ΡŒΡˆΡƒΡŽ ΠΈΠ»ΠΈ Π½ΠΈΠΊΠ°ΠΊΡƒΡŽ ΡΠΌΡ‹ΡΠ»ΠΎΠ²ΡƒΡŽ Π½Π°Π³Ρ€ΡƒΠ·ΠΊΡƒ, ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ ΠΈΡ…. Для этого ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ рСгулярныС выраТСния (regex). Π’ΠΎΡ‚ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ ΠΊΠΎΠ΄Π°:


import re

def remove_numbers_and_symbols(text):
    cleaned_text = re.sub('[^a-zA-Zа-яА-Я]+', ' ', text)
    return cleaned_text

text = "ΠŸΡ€ΠΈΠΌΠ΅Ρ€ тСкста с 123 числами #ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹ΠΌΠΈ символами!"
cleaned_text = remove_numbers_and_symbols(text)
print(cleaned_text)  # "ΠŸΡ€ΠΈΠΌΠ΅Ρ€ тСкста с числами ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹ΠΌΠΈ символами"
    

5. ВокСнизация тСкста

ВокСнизация - это процСсс раздСлСния тСкста Π½Π° ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Π΅ слова ΠΈΠ»ΠΈ Ρ‚ΠΎΠΊΠ΅Π½Ρ‹. Для Ρ‚ΠΎΠΊΠ΅Π½ΠΈΠ·Π°Ρ†ΠΈΠΈ тСкста ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ NLTK Π² Python. Π’ΠΎΡ‚ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ ΠΊΠΎΠ΄Π°:


import nltk

nltk.download('punkt')

from nltk.tokenize import word_tokenize

text = "Π­Ρ‚ΠΎ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ тСкста для Ρ‚ΠΎΠΊΠ΅Π½ΠΈΠ·Π°Ρ†ΠΈΠΈ"
tokens = word_tokenize(text)
print(tokens)  # ["Π­Ρ‚ΠΎ", "ΠΏΡ€ΠΈΠΌΠ΅Ρ€", "тСкста", "для", "Ρ‚ΠΎΠΊΠ΅Π½ΠΈΠ·Π°Ρ†ΠΈΠΈ"]
    

Π—Π°ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅

Чистка тСкста - ваТная Π·Π°Π΄Π°Ρ‡Π° Π² Π°Π½Π°Π»ΠΈΠ·Π΅ Π΄Π°Π½Π½Ρ‹Ρ… ΠΈ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ СстСствСнного языка. ΠœΡ‹ рассмотрСли нСсколько способов очистки тСкста Π² Python, Ρ‚Π°ΠΊΠΈΡ… ΠΊΠ°ΠΊ ΡƒΠ΄Π°Π»Π΅Π½ΠΈΠ΅ Π·Π½Π°ΠΊΠΎΠ² прСпинания, ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ тСкста ΠΊ Π½ΠΈΠΆΠ½Π΅ΠΌΡƒ рСгистру, ΡƒΠ΄Π°Π»Π΅Π½ΠΈΠ΅ стоп-слов, ΡƒΠ΄Π°Π»Π΅Π½ΠΈΠ΅ чисСл ΠΈ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Ρ… символов, Π° Ρ‚Π°ΠΊΠΆΠ΅ Ρ‚ΠΎΠΊΠ΅Π½ΠΈΠ·Π°Ρ†ΠΈΡŽ тСкста. ΠŸΡ€ΠΈ ΠΏΡ€ΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠΈ очистки тСкста Π²Π°ΠΆΠ½ΠΎ ΡƒΡ‡ΠΈΡ‚Ρ‹Π²Π°Ρ‚ΡŒ спСцифику Π·Π°Π΄Π°Ρ‡ΠΈ ΠΈ Π΄Π°Π½Π½Ρ‹Π΅, с ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌΠΈ ΠΌΡ‹ Ρ€Π°Π±ΠΎΡ‚Π°Π΅ΠΌ. Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΊΠΎΠΌΠ±ΠΈΠ½ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ очистки тСкста Π² зависимости ΠΎΡ‚ потрСбностСй вашСго ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°.

Π’ΠΈΠ΄Π΅ΠΎ ΠΏΠΎ Ρ‚Π΅ΠΌΠ΅

Как ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ послСдний (ΠΈΠ»ΠΈ ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ) символ Π² строкС Python

Как пСрСвСсти тСкст Π² Ρ€Π΅Ρ‡ΡŒ Π½Π° python? #pycharm #python #ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅

9 CΡ‚Ρ€ΠΎΠΊΠΈ ΠΈ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ Π½Π°Π΄ Π½ΠΈΠΌΠΈ Python

ΠŸΠΎΡ…ΠΎΠΆΠΈΠ΅ ΡΡ‚Π°Ρ‚ΡŒΠΈ:

πŸ“– Как ΠΏΡ€ΠΎΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ Ρ„Π°ΠΉΠ» XML Π² ΠŸΠΈΡ‚ΠΎΠ½Π΅: простой способ

πŸ•’ Как ΡƒΠ·Π½Π°Ρ‚ΡŒ врСмя ΠΏΠΎ МБК с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Python?

😱 Как Π΄ΡƒΠ΄ΠΎΡΠΈΡ‚ΡŒ Π½Π° Python: ΠŸΡ€ΠΎΡΡ‚ΠΎΠΉ Π³Π°ΠΉΠ΄ для Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‰ΠΈΡ… πŸ’»

πŸ” Как ΠΎΡ‡ΠΈΡΡ‚ΠΈΡ‚ΡŒ тСкст Π² Python: простой ΠΈ эффСктивный способ

🐍 Как ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ Π² Python: ΠΏΠΎΠ»Π½Ρ‹ΠΉ Π³Π°ΠΉΠ΄ с ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π°ΠΌΠΈ

πŸ”§ Как ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ Scrapy для Python 3: пошаговоС руководство ΠΈ инструкция

πŸ”Ž Как ΡƒΠ·Π½Π°Ρ‚ΡŒ, ΠΊΠ°ΠΊΠΎΠ΅ число большС Π² ΠŸΠΈΡ‚ΠΎΠ½Π΅? πŸ“ˆ