如何使用 Alink 进行中文情感分析?

本文通过Alink库展示了如何使用Python和Java进行中文情感分析。利用酒店评论数据集,经过分词、去除停用词、文本向量化等步骤,采用朴素贝叶斯模型进行建模和预测。数据预处理包括Imputer填充缺失值,Segment进行分词,StopWordsRemover移除停用词,DocCountVectorizer转换为向量,最后用LogisticRegression进行分类。
摘要由CSDN通过智能技术生成

情感分析是对带有情感色彩(褒义贬义/正向负向)的主观性文本进行分析,以确定该文本的观点、喜好、情感倾向。本文将针对顾客对酒店的评论数据,进行建模,并通过模型进行预测。演示情感分析中的常用操作,包括分词,文本向量化,及使用朴素贝叶斯(Naive Bayes)方法进行建模、预测。

使用的酒店评论数据集链接为:

https://raw.githubusercontent.com/SophonPlus/ChineseNlpCorpus/master/datasets/ChnSentiCorp_htl_all/ChnSentiCorp_htl_all.csv

每条记录包括评论内容和标记喜好的标签,标签只有2个值:1代表喜欢,0为不喜欢。下图显示了4条数据:

下面我们使用Alink来进行分析、建模。

▼ 钉钉扫码加入 Alink 技术交流群 ▼

Python 版本 Alink 分析示例

使用CsvSourceBatchOp读取URL数据,代码如下:

source = CsvSourceBatchOp()\
.setFilePath('https://github.com/SophonPlus/ChineseNlpCorpus/raw/master/datasets/ChnSentiCorp_htl_all/ChnSentiCorp_htl_all.csv')\
.setSchemaStr('label long, review string')\
.setIgnoreFirstLine(True)

设置列名分别为label和review,数据类型分别为整型和字符串类型,由于该CSV数据第一行保存的是列名,需要设置读取数据时忽略第一行。

下面,我们选择5条数据打印显示出来,看一下数据源是否有问题:

source.firstN(5).print()

结果如下:

然后,我们设置Pipeline,将整个处理和模型过程封装在里面,代码如下:

pipeline = Pipeline(
    Imputer().setSelectedCols(["review"]).setOutputCols(["featureText"]).setStrategy("value").setFillValue("null"),
    Segment().setSelectedCol("featureText"),
    StopWordsRemover().setSelectedCol("featureText"),
    DocCountVectorizer().setFeatureType("TF").setSelectedCol("featureText").setOutputCol("featureVector"),
    LogisticRegression().setVectorCol("featureVector").setLabelCol("label").setPredictionCol("pred"
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值