Теперь Кью работает в режиме чтения

Мы сохранили весь контент, но добавить что-то новое уже нельзя

Правда ли, что Python лучше других языков приспосабливается для анализа текстов?

ПрограммированиеФилология+2
Анонимный вопрос
Филология
  · 5,1 K
Openstack DevOps and IBM/Informix Certified DBA . Phd in Math (Duality of spaces of...  · 4 июн 2022
Изучающие языки науки о данных, обычно не понимают, какой язык им следует изучать первым: R или Python. Оба чрезвычайно полезны для множества приложений по науке о данных, включая обработку естественного языка (NLP). Надо понять сильные и слабые стороны каждого из них, рассмотрим R и Python для науки о данных и какой язык лучше всего работает с НЛП.
=======================================
Обработка естественного языка: обучение компьютеров человеческим словам. Обработка естественного языка означает, как следует из названия, обучение компьютеров обработке естественных человеческих языков  ) и выполнению анализа. НЛП можно использовать с письменными текстовыми или речевыми данными.
=======================================
R vs Python для науки о данных: 
Python и R — два самых популярных языка для обработки данных. Оба имеют открытый исходный код и имеют большую базу пользователей. В реальном мире часто бывает сложно выбрать между R и Python для науки о данных и НЛП. Здесь мы пройдемся по части необходимой информации о каждом из этих универсальных языков.
=======================================
R: центр аналитики
R — это инструмент, созданный статистиками в основном для математики, статистики, исследований и анализа данных. Он довольно популярен своими визуализациями: диаграммами, графиками, картинками и различными сюжетами. Эти визуализации помогают людям визуализировать и понимать тенденции, выбросы и закономерности в данных.
Python: универсальная система программирования
Python — универсальный, надежный, универсальный язык с удобочитаемым синтаксисом. Удобный для чтения синтаксис Python упрощает изучение и понимание, поскольку его можно читать так же, как человеческий язык. 
=======================================
Python также хорошо интегрируется в различные среды проектов.(*)
=======================================
Библиотеки для НЛП
Библиотеки — это наборы модулей и функций, которые программисты могут включать в программы и проекты для выполнения определенных задач. Программисты выбирают разные библиотеки, потому что они помогают более эффективно выполнять конкретную задачу. Например, библиотека облаков слов используется для создания облака слов, отображающего наиболее часто используемые слова из набора текстовых данных. 
Библиотеки R
R имеет более чем 10 000 библиотек, таких как Caret, dplyr, tidyr, caTools, ggplot2. Они поддерживают широкий спектр применений, таких как анализ данных, обработка, визуализация и моделирование машинного обучения (ML). Некоторые из библиотек, используемых для НЛП, — это tm, tidytext, text2vec и облако слов. Опять же, библиотека, которую вы используете, будет основываться на вашем сценарии использования. 
========================================
Библиотеки Python
Python имеет более 200 стандартных библиотек и почти бесконечное количество сторонних библиотек. Некоторые стандартные библиотеки Python — это Pandas, Numpy, Scikit-Learn, SciPy и Matplotlib. Эти библиотеки используются для сбора данных, анализа, интеллектуального анализа данных, визуализации и моделирования машинного обучения. Библиотеки, используемые для НЛП: NLTK, gensim, SpaCy, Glove и Scikit-Learn. Каждая библиотека имеет свое назначение и преимущества. Например, NLTK отлично подходит для изучения и изучения концепций НЛП, но не предназначен для производства. Между тем, SpaCy — это новая библиотека НЛП, разработанная так, чтобы быть быстрой и готовой к работе.
=========================================
Загрузка данных как в R, так и в Python
=========================================
Загрузим обучающие данные как в Python, так и в R и проверим, сколько времени это занимает для каждого языка.
R code:
Load data
start_time <- Sys.time()
train<- read.csv("train.csv")
timediff<-difftime(Sys.time(),start_time)
cat("Time taken to load csv is: ",timediff, units(timediff))
Output:
The time taken to load the CSV is 3.038562 minutes.
==========================================
Python code:
Load Data
start_time = time.time()
tr_data=pd.read_csv("train.csv")
time_diff=time.time()-start_time
print("Time taken to load csv is: {} seconds ".format(time_diff))
Output:
The time taken to load the CSV is 17.733536 seconds.
==========================================
Для загрузки CSV Python требуется значительно больше времени, чем для R для загрузки того же набора данных.
==========================================
Создайте облако слов, чтобы найти наиболее часто повторяющиеся слова
Облака слов — это представление слов в наборе данных в виде кластера слов: чем чаще слово появляется в текстовых данных, тем больше и жирнее оно появляется в облаке слов. Создадим облако слов из 50 наиболее часто встречающихся слов в нашем наборе обучающих данных, используя языки программирования Python и R.
R code:
library(wordcloud)
start_time <- Sys.time()
wordcloud(d_toxic$word,d_toxic$freq,min.freq=100,max.words = 50, colors=brewer.pal(8, "Dark2"))
timediff<-difftime(Sys.time(),start_time)
cat("Time take to create wordcloud is ",timediff, units(timediff))
Output:
The time taken to create the word cloud is 0.2203801 seconds.
=========================================
Python code:
start_time = time.time()
wordcloud = WordCloud(max_words=50, background_color="white", collocations=False).generate(text)
time_diff = time.time() - start_time
print("Time taken to create wordcloud is {} seconds".format(time_diff) )
plt.imshow(wordcloud, interpolation='bilinear') # display the generated image
plt.title(f"Most popular 50 words")
plt.show()
Output:
The time taken to create the word cloud was 129.392610 seconds.
================================
Моделирование в R и Python (*)
================================
Когда мы говорим «моделирование» в науке о данных, мы имеем в виду обучение программы обучению на обучающих данных с использованием алгоритмов машинного обучения. При моделировании мы находим отношения между входными переменными и целевой переменной. Существует множество алгоритмов машинного обучения, таких как KNN, наивный байесовский метод, SVM, логистическая регрессия, деревья решений, случайный лес, XG-Boost и т. д., для поиска взаимосвязей между входными и целевыми переменными. Здесь мы реализуем алгоритм XG-Boost, алгоритм, который обучается на основе обучающих данных (которые мы загрузили ранее на языках программирования R и Python) с помощью вероятности и статистики. Мы создадим модель, которая поможет прогнозировать будущие тенденции; система продолжает учиться и принимает решения на основе того, чему она научилась.
==========
R code:
==========
ctrain <- xgb.DMatrix(Matrix(data.matrix(X_train)), label = (y_train))
xb <- xgboost(ctrain, max_depth = 100,
nround=100,
eval_metric = "auc",
objective = "binary:logistic")
y_pred=predict(xb, y_val)
val-auc=auc(y_pred,y_val)
Output:
val-auc: 0.80443
=============
Python code:
=============
clf = xgb.XGBClassifier(max_depth=100,min_samples_split=100);
clf.fit(X_train, y_train)
train_fpr, train_tpr, thresholds = roc_curve(y_train, clf.predict_proba(X_train)[:,1])
train-auc= auc(train_fpr, train_tpr)
val_fpr, val_tpr, thresholds = roc_curve(y_val, clf.predict_proba(X_val)[:,1])
val-auc= auc(val_fpr, val_tpr)
Output:
val-auc: 0.83768
===============================================
XG-Boost одинаково работает на обоих языках программирования. Учтите,что Python существенно лучше интегрируется в различные среды проектов.(*)
и принимайте решение взвесив все за и против.
============================================
R — один из старейших языков программирования, разработанный учеными и статистиками. R появился в 1995 году. Сейчас R предоставляет богатейшую экосистему для анализа данных.Язык программирования R полон библиотек. Вместе с R также доступно несколько репозиториев. На самом деле в CRAN около 12000 пакетов. Богатое разнообразие библиотек делает его лучшим выбором для статистического анализа и аналитической работы. Ключевые особенности R  -   состоит из пакетов практически для любого статистического приложения, о котором только можно подумать. CRAN в настоящее время содержит более 10 тысяч пакетов.Поставляется с отличными библиотеками визуализации, такими как ggplot2.Возможность автономного анализа
===========================================
Пайтон с другой стороны, Пайтон может выполнять те же задачи, что и язык программирования R. Основными функциями Python являются обработка данных, проектирование, просмотр веб-страниц и так далее. В Python также есть инструменты, которые помогают внедрять машинное обучение в больших масштабах. 
Python — один из самых простых в обслуживании языков, и он более надежен, чем R.(*) 
Теперь у Python есть передовой API. Этот API весьма полезен в машинном обучении и искусственном интеллекте.
Большинство специалистов по данным используют только пять библиотек Python: Numpy, Pandas, Scipy, Scikit-learn и Seaborn. Довольно удобно использовать Python поверх R. Ключевые особенности языка программирования Python:
===================================
Объектно-ориентированный язык (*)
===================================
Общее назначение. Имеет множество расширений и невероятную поддержку сообщества. Простой и легкий для понимания и изучения такие пакеты, как pandas, NumPy и sci-kit-learn, делают Python отличным выбором для машинного обучения.
====================================
R более функционален, 
Python более объектно-ориентирован.
====================================
R более функционален, он предоставляет исследователю данных множество функций, например, я, предсказываю и так далее. Большая часть работы выполняется функциями в R. С другой стороны, Python использует классы для выполнения любых задач внутри Python. R имеет больше встроенного анализа данных, Python полагается на пакеты. R предоставляет встроенный анализ данных для сводной статистики, он поддерживается встроенными функциями сводки в R. Но, с другой стороны, мы должны импортировать пакеты модели статистики в Python, чтобы использовать эту функцию. Также в R есть встроенный конструктор, т.е. фрейм данных. С другой стороны, мы должны импортировать его в Python.
======================================
Python также помогает выполнять линейную регрессию, случайные леса с помощью своего пакета обучения sci-kit. Как упоминалось выше, он также предлагает API для машинного обучения и искусственного интеллекта. С другой стороны, у R самое большое разнообразие пакетов.
=======================================
R имеет больше статистической поддержки в целом.R был создан как статистический язык, и это видно. stats-models в Python и других пакетах обеспечивают достойный охват статистических методов, но экосистема R намного больше. (? - именно в контексте заданного вопроса ).  
========================================
Обычно проще выполнять нестатистические задачи в Python. С хорошо расположенными библиотеками, Python намного проще, чем в R. Это относится к другим задачам, которые мы не видим близко, таким как сохранение базы данных, развертывание веб-сервера или запуск сложного селфи. В обоих случаях есть много параллелей между рабочим процессом анализа данных.
=========================================
R и Python — самые явные точки вдохновения между ними (панды были вдохновлены Dataframe R Dataframe, остальные пакеты были вдохновлены Sundersaute), и две экосистемы становятся сильнее. Можно отметить, что синтаксис и подход для многих общих задач в обоих языках одинаковы.
==========================================
У вас есть подробное сравнение R и Python. 
Оба этих языка имеют свои сильные и слабые стороны. Вы можете использовать любой из  них для анализа данных и науки о данных.
Выше не упомянуты такие библиотеки Python как tensorflow, keras, pytorch, которые очень интенсивно используются... Читать дальше