Untitled

 avatar
unknown
python
a year ago
3.5 kB
7
Indexable
import pandas as pd

try:
    data = pd.read_csv('toxic_comments.csv')
except:
    data = pd.read_csv('/datasets/toxic_comments.csv')
data


# ------------------------------------------------------
# ДЛЯ РУССКОГО ЯЗЫКА
import pymorphy2

# Создаем объект MorphAnalyzer
morph = pymorphy2.MorphAnalyzer()

# Функция для лемматизации строки
def lemmatize_text(text):
    words = text.split()
    lemmatized_words = [morph.parse(word)[0].normal_form for word in words]
    lemmatized_text = ' '.join(lemmatized_words)
    return lemmatized_text

kol1 = 200000
# Применяем функцию к столбцу 'твиты'
df = pd.DataFrame()

%%time
df['лемматизированные_твиты'] = data['text']. iloc[:kol1].apply(lemmatize_text)

# Вывод
# CPU times: total: 1min 38s
# Wall time: 1min 38s

# Вывод результата
df. shape

# Вывод
# (159292, 1)

# ------------------------------------------------------

# ДЛЯ АНГЛИЙСКОГО ЯЗЫКА

from nltk.stem import WordNetLemmatizer
from nltk.tokenize import word_tokenize
import nltk

nltk.download('punkt')  # Если не установлено

# Создаем объект WordNetLemmatizer
lemmatizer = WordNetLemmatizer()

# Функция для лемматизации строки
def lemmatize_english_text(text):
    words = word_tokenize(text)
    lemmatized_words = [lemmatizer.lemmatize(word) for word in words]
    lemmatized_text = ' '.join(lemmatized_words)
    return lemmatized_text
    
kol2 = 10
# Применяем функцию к столбцу 'твиты'
df = pd.DataFrame()

%%time
df['лемматизированные_твиты'] = data['text']. iloc[:kol2].apply(lemmatize_english_text)
print('Почему то первый запуск дал расчет в 100 раз дольше, возможно при перезапуске ядра стоит\n'+
      'сначала лемматизировать пару строк, а потом запускать весь датасет')

# Вывод
# Почему то первый запуск дал расчет в 100 раз дольше, возможно при перезапуске ядра стоит
# сначала лемматизировать пару строк, а потом запускать весь датасет
# CPU times: total: 672 ms
# Wall time: 670 ms

kol2 = 200000
# Применяем функцию к столбцу 'твиты'
df = pd.DataFrame()

%%time
df['лемматизированные_твиты'] = data['text']. iloc[:kol2].apply(lemmatize_english_text)
print('Почему то первый запуск дал расчет в 100 раз дольше, возможно при перезапуске ядра стоит\n'+
      'сначала лемматизировать пару строк, а потом запускать весь датасет')

# Вывод
# Почему то первый запуск дал расчет в 100 раз дольше, возможно при перезапуске ядра стоит
# сначала лемматизировать пару строк, а потом запускать весь датасет
# CPU times: total: 1min 6s
# Wall time: 1min 6s

# Вывод результата
df. shape

# Вывод
# (159292, 1)






Editor is loading...
Leave a Comment