2

我目前正在学习使用分类turicreate,并对word count vector.

使用我在这里找到的示例

#build a word count vector
products['word_count'] = turicreate.text_analytics.count_words(products['review'])

#determine positive or negative review
products['sentiment'] = products['rating'] >= 4

#train the sentiment classifier 
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但我认为我不明白。

4

1 回答 1

2

感谢您的直接提问。收到您的电子邮件后,我就在这里。我觉得你提出的两个问题有些相似,可以互相回答。基本上,您的问题是为什么我们在进行情感分析时需要字数向量

老实说,这实际上是一个很长的答案,但我会尽量使其简洁。我目前不知道您对 NLP 的理解程度,但所有机器学习模型都只是为数值构建的,这意味着当您处理文本数据时,您首先需要将文本转换为数字格式。这个过程称为矢量化。这基本上就是我们在这里所做的,但有很多方法可以实现这一目标。此处使用的矢量化器是 CountVectorizer,其中 counts 字典中的每个单词都被视为该特定句子的单独特征。这导致创建一个稀疏矩阵,该矩阵可以将具有 n 个唯一单词的 m 个句子表示为一个m x n矩阵。

我们的方法是计算一个单词出现在特定类型句子(正面或负面)的次数。可以理解的是,像可怕这样的词在否定句中的计数可能非常高,而在肯定句中的计数几乎为 0。同样,“伟大”和“惊人”之类的词也会产生相反的效果。这就是分类器中用于为每个单词分配权重的方法。负类中普遍出现的词的负权重和正类中出现的词的正权重。这就是情感分析分类的基础。

这可能是一个非常有用的资源。你也可以通读这个

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

于 2021-01-31T19:19:11.997 回答