turicreate.text_analytics.count_words 的用法

Usage of turicreate.text_analytics.count_words

我目前正在使用 turicreate 学习分类并且有一个关于 word count vector 的问题。

使用我找到的示例 here

#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)

我正在尝试了解以下内容:

我试图阅读 documentationturicreate.text_analytics.count_words,但我不明白。

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

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

我们的方法是计算一个词在特定类型的句子(正面或负面)中出现的次数。可以理解,像 terrible 这样的词在否定句中的计数可能非常高,而在肯定句中的计数几乎为 0。同样,对于 'great' 和 'amazing'。这就是分类器中用来为每个单词分配权重的方法。对出现在负面 类 中的词进行负权重,对出现在正面 类 中的词进行正权重。这就是情感分析分类的基础。

这可能真的是helpful resource. You can also read through this

PS:我不建议在你从头开始编写代码以了解它的工作原理或使用 scikit-learn 之前使用 TuriCreate,因为 TuriCreate 抽象了很多用法,你可能不明白是什么正在后台发生。