使用 turicreate.text_analytics.count_words

我目前正在学习使用 turicreate 进行分类,并对 word count vector 有一个问题。

我找到了一个例子,在这里

#构建词频向量
products['word_count'] = turicreate.text_analytics.count_words(products['review'])
#确定正面或负面评论
products['sentiment'] = products['rating'] >= 4
#训练情感分类器
sentiment_model = turicreate.logistic_classifier.create(train_data,
                                                    target='sentiment',
                                                     features=['word_count'],
                                                     validation_set=test_data)

我试图理解以下内容:

  • 如果分类是基于 ‘sentiment’(1 或 0),为什么我们需要 ‘word_count’?

  • 在训练情感分类器时,’word_count’ 的作用是什么?

我尝试阅读了 turicreate.text_analytics.count_words文档,但我觉得我没有理解。


回答:

感谢您直接提问。我收到您的邮件后就来了。我认为您提出的两个问题有些相似,可以通过彼此来回答。基本上,您的问题是为什么在进行情感分析时需要词频向量

说实话,这是一个很长的回答,但我会尽量简短。我目前不了解您对 NLP 的理解程度,但所有的机器学习模型都是为数值数据构建的,这意味着当您处理文本数据时,您首先需要将文本转换为数值格式。这个过程被称为向量化。这就是我们在这里所做的,但实现这一点的方式有很多种。这里使用的是 CountVectorizer,其中词频字典中的每个词都被视为该特定句子的一个独立特征。这导致了稀疏矩阵的创建,可以用一个 m x n 矩阵来表示 m 个句子和 n 个独特词汇。

我们的做法是计算一个词在特定类型句子(无论是正面还是负面)中出现的次数。可以理解的是,像“terrible”这样的词在负面句子中可能有很高的计数,而在正面句子中几乎为0。同样,对于“great”和“amazing”这样的词会有一个相反的效果。这就是分类器用来为每个词分配权重的方式。负面类别中流行出现的词会被分配负权重,而正面类别中出现的词会被分配正权重。这就是情感分析分类的基础。

这可能是一个非常有用的资源。您还可以阅读这个

附注:我建议在您从头开始编写代码以理解其工作原理或使用 scikit-learn 之前,不要使用 TuriCreate,因为 TuriCreate 抽象了很多用法,您可能不会理解后台在发生什么。

Related Posts

使用LSTM在Python中预测未来值

这段代码可以预测指定股票的当前日期之前的值,但不能预测…

如何在gensim的word2vec模型中查找双词组的相似性

我有一个word2vec模型,假设我使用的是googl…

dask_xgboost.predict 可以工作但无法显示 – 数据必须是一维的

我试图使用 XGBoost 创建模型。 看起来我成功地…

ML Tuning – Cross Validation in Spark

我在https://spark.apache.org/…

如何在React JS中使用fetch从REST API获取预测

我正在开发一个应用程序,其中Flask REST AP…

如何分析ML.NET中多类分类预测得分数组?

我在ML.NET中创建了一个多类分类项目。该项目可以对…

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注