python - turicreate.text_analytics.count_words 的使用
问题描述
我目前正在学习使用分类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
但我认为我不明白。
解决方案
感谢您的直接提问。收到您的电子邮件后,我就在这里。我觉得你提出的两个问题有些相似,可以互相回答。基本上,您的问题是为什么我们在进行情感分析时需要字数向量。
老实说,这实际上是一个很长的答案,但我会尽量使其简洁。我目前不知道您对 NLP 的理解程度,但所有机器学习模型都只是为数值构建的,这意味着当您处理文本数据时,您首先需要将文本转换为数字格式。这个过程称为矢量化。这基本上就是我们在这里所做的,但有很多方法可以实现这一目标。此处使用的矢量化器是 CountVectorizer,其中 counts 字典中的每个单词都被视为该特定句子的单独特征。这导致创建一个稀疏矩阵,该矩阵可以将具有 n 个唯一单词的 m 个句子表示为一个m x n
矩阵。
我们的方法是计算一个单词出现在特定类型句子(正面或负面)的次数。可以理解的是,像可怕这样的词在否定句中的计数可能非常高,而在肯定句中的计数几乎为 0。同样,“伟大”和“惊人”之类的词也会产生相反的效果。这就是分类器中用于为每个单词分配权重的方法。负类中普遍出现的词的负权重和正类中出现的词的正权重。这就是情感分析分类的基础。
PS:在您从头开始编写代码以了解其工作原理或使用 scikit-learn 之前,我不建议您使用 TuriCreate,因为 TuriCreate 抽象了很多用法,您可能不了解后台发生的情况。
推荐阅读
- javascript - 谷歌地图显示无法在 html 中正确加载地图
- reactjs - 无需注册和自定义用户检索的 Laravel 身份验证
- c++ - 如何将 GNUstep 编译器添加到 Qt 创建者以让他们在 Windows 上编译 .mm 文件?
- javascript - 如何为 woocommerce_after_shop_loop_item 添加倒计时
- flask - Flask Admin - 有没有办法存储表格视图的当前 url(应用了自定义过滤器)?
- java - 编写 foreach 语句过滤 Binance API 结果返回任意数据
- r - 如何根据某些特殊字符将 data.frame 划分为多个 data.frames?
- android-lifecycle - Android MediatorLiveData 将多个 LiveData 结果组合成单个 LiveData 对象(在 Java 中)
- spring-boot - 如何使用graphql映射具有父类的java类作为字段
- mongodb - Mongoose find() 不返回所有字段(不可枚举)