请注意词干和词元化不能同时应用 。这里我将使用后者 。
dtf["text_clean"] = dtf["text"].apply(lambda x: utils_preprocess_text(x, flg_stemm=False, flg_lemm=True, lst_stopwords))dtf.head()
文章插图
print(dtf["text"].iloc[0], " --> ", dtf["text_clean"].iloc[0])
文章插图
长度分析文章的长度很重要,因为这是一个很简单的计算,可以提供很多的见解 。例如,也许我们足够幸运地发现一个类别系统地比另一个类别长,而长度只是构建模型所需要的唯一特征 。不幸的是,由于新闻标题有类似的长度,所以不会出现这种情况,但值得一试 。
文本数据有几种长度度量 。我举几个例子:
• 字数计数:计算文本中记号的数量(用空格分隔)
• 字符计数:将每个标记的字符数相加
• 计算句子数:计算句子的数量(以句点分隔)
• 平均字数:字数除以字数的总和(字数/字数)
• 平均句子长度:句子长度的总和除以句子的数量(字数/句子数量)
dtf['word_count'] = dtf["text"].apply(lambda x: len(str(x).split(" ")))dtf['char_count'] = dtf["text"].apply(lambda x: sum(len(word) for word in str(x).split(" "))) dtf['sentence_count'] = dtf["text"].apply(lambda x: len(str(x).split("."))) dtf['avg_word_length'] = dtf['char_count'] / dtf['word_count'] dtf['avg_sentence_lenght'] = dtf['word_count'] / dtf['sentence_count'] dtf.head()
文章插图
文章插图
这些新变量相对于目标的分布是什么?为了回答这个问题,我将研究二元分布(两个变量如何一起移动) 。首先,我将把整个观察集分成3个样本(政治,娱乐,科技),然后比较样本的直方图和密度 。如果分布不同,那么变量是预测性的因为这三组有不同的模式 。
例如,让我们看看字符计数是否与目标变量相关:
x, y = "char_count", "y"fig, ax = plt.subplots(nrows=1, ncols=2)fig.suptitle(x, fontsize=12) for i in dtf[y].unique(): sns.distplot(dtf[dtf[y]==i][x], hist=True, kde=False, bins=10, hist_kws={"alpha":0.8}, axlabel="histogram", ax=ax[0]) sns.distplot(dtf[dtf[y]==i][x], hist=False, kde=True, kde_kws={"shade":True}, axlabel="density", ax=ax[1]) ax[0].grid(True) ax[0].legend(dtf[y].unique()) ax[1].grid(True) plt.show()
文章插图
这3个类别的长度分布相似 。这里,密度图非常有用,因为样本大小不同 。
情绪分析情绪分析是通过数字或类对文本数据进行主观情绪表征 。由于自然语言的模糊性,情绪计算是自然语言处理的难点之一 。例如,短语“这是如此糟糕,但它是好的”有不止一种解释 。一个模型可以给“好”这个词赋予一个积极的信号,给“坏”这个词赋予一个消极的信号,从而产生中性的情绪 。这是因为上下文是未知的 。
最好的方法是训练你自己的情绪模型,让它适合你的数据 。如果没有足够的时间或数据,可以使用预先训练好的模型,比如Textblob和Vader 。基于NLTK的Textblob是其中最流行的一种,它可以对单词进行极性划分,并平均估计整个文本的情绪 。另一方面,Vader(价觉字典和情感推理器)是一个基于规则的模型,在社交媒体数据上特别有效 。
我将用Textblob添加一个情绪特性:
dtf["sentiment"] = dtf[column].apply(lambda x: TextBlob(x).sentiment.polarity)dtf.head()print(dtf["text"].iloc[0], " --> ", dtf["sentiment"].iloc[0])
文章插图
推荐阅读
- 茶在生活中的其他用处,玫瑰花茶泡法技巧
- 把MySQL中的各种锁及其原理都画出来
- 互动直播中的前端技术——即时通讯
- 茶叶在旅行中的作用,白茶的保健功效介绍
- 敦煌月牙泉其中的水,辨证茶疗与疾病的关系
- 人的身材在一天中的什么时候最高?
- 一款强大的本地文件内容搜索软件,可搜索文件中的文字
- 图解 Go 微服务中的熔断器和重试
- 血缘关系在中国文化中的作用
- Netty 中的内存分配浅析