spark之CountVectorizer

CountVectorizer会统计特定文档中单词出现的次数,并且会根据单词的频率进行排序,频率高的排在前面,当频率相同时,则它的位置个人感觉是随机的。因为太过例子跑出来,每一次都不相同。

##语料被称为文本文档的完整集合。
##标记化,将指定语句或文本文档的词语集合划分成单位/独立词语的方法被称为标记化

from pyspark.sql import SparkSession####引入对象  创建RDD

spark = SparkSession.builder.appName('nlp').getOrCreate()
df = spark.createDataFrame([(1, 'T really liked this movie'),
                      (2, 'I would recommend this movie to my friends'),
                      (3, 'movie was alright but acting was horrible'),
                      (4, 'I am never watching that movie ever again i liked it')],
                     ['user_id', 'review'])
####引入Tokenizer   标记化
from pyspark.ml.feature import Tokenizer

tokenization = Tokenizer(inputCol = 'review', outputCol = 'tokens')
tokenized_df = tokenization.transform(df)
tokenized_df.show(4, False)

 

###移除停用词

###在pyspark中,可以使用StopWordsRemover来移除停用词

from pyspark.ml.feature import StopWordsRemover

stopword_removal = StopWordsRemover(inputCol = 'tokens', outputCol = 'refind_tokens')
refind_df = stopword_removal.transform(tokenized_df)
refind_df.select(['user_id', 'tokens', 'refind_tokens']).show(4, False)
####词袋   数值形式表示文本数据
###计数向量器  会统计特定文档中单词出现的次数

from pyspark.ml.feature import CountVectorizer

count_vec = CountVectorizer(inputCol = 'refind_tokens', outputCol = 'features')
cv_df = count_vec.fit(refind_df).transform(refind_df)
cv_df.select(['user_id', 'refind_tokens', 'features']).show(4, False)

其中11是单词的个数,可以看到movie出现的频率最高,所以排在最前面。[0,1,7]分别表示单词位于第0个、第1个和第7个位置,[1.0,1.0,1.0]表示单词在本文档中出现的次数。 

 

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值