目前,我正在使用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)我想了解以下几点:
我试着阅读“文档 for turicreate.text_analytics.count_words”,但我想我不明白。
发布于 2021-01-31 19:19:11
谢谢你的直接提问。我收到你的邮件后就来了。我认为你提出的两个问题有些相似,可以通过彼此回答。基本上,你的问题是,为什么我们在进行情感分析时需要字数向量。
老实说,这其实是一个很长的答案,但我会尽量精简。我不知道您目前对NLP的理解程度,但是所有机器学习模型都是为数值建立的,这意味着当您处理文本数据时,首先需要将文本转换成数字格式。这个过程被称为矢量化。这基本上是我们在这里所做的,但实现这一目标的方法有很多。这里使用的向量器是一个CountVectorizer,其中计数字典中的每个单词都被视为该特定句子的一个单独特性。这导致了稀疏矩阵的产生,它可以用n个唯一的单词表示m个句子作为m x n矩阵。
我们所要做的就是计算一个单词发生特定类型句子的次数(无论是正的还是负的)。可以理解的是,像“可怕”这样的词在否定句中可能有很高的计数,而在肯定句中几乎为0。同样,像“伟大”和“惊人”这样的词也会有相反的效果。这就是在量词中用来分配每个单词的权重的方法。消极类中普遍出现的单词为负数,在积极类中出现的词为正权。这就是情感分析分类的基础。
PS:在您从零开始编写TuriCreate代码以了解它的工作原理或使用scikit之前,我不建议使用它--因为TuriCreate抽象了大量的用法,而且您可能不了解后台发生了什么。
https://stackoverflow.com/questions/65981906
复制相似问题