美文网首页
Python 豆瓣阅读 书评 分析

Python 豆瓣阅读 书评 分析

作者: 龙腾Zero | 来源:发表于2017-11-30 15:51 被阅读0次

    豆瓣阅读作为“阅读”这一垂直领域的领头者,产生了海量的用户书评。
    用户书评能够体现用户数据,作为用户画像的一个重要手段。

    本次实验考虑将用户进行分级。对其阅读水平进行评级(0,1,2,3级)
    例如下图所示:

    图1-书评样例

    计算机无法对书评进行自动评级,因而我们可以借助机器学习的方法来让机器“学会”人类评级的方式。

    本研究采用人工对282条评论评级进行评分。取其中200条作为训练数据。82条作为测试数据。

    目前训练数据是文本的形式,要将其转换为有效的特征形式:
    本研究利用TF-IDF作为文本特征。 (参照http://blog.csdn.net/Eastmount/article/details/50323063
    需要注意的是由于处理的文本是中文,因而需要借助中文分词工具Jieba进行分词和语料统计(参照http://bruce3557.logdown.com/posts/291096/jieba-sklearn-calculation-of-chinese-tfidf)。

    整个分析的流程可概括为串联的三个步骤。

    • 语料分词
    • 提取tf-idf特征
    • 回归分析

    其困难在于两点:
    1、语料库太小,不能有效地提取词汇。
    2、语料当中存在噪声,使得一些无意义的数字、乱码被当做词汇对待。

    注意到此处Jieba分词工具较好的解决了以上两个困难,的取得了较好的中文分词效果,词汇表如下,共计2680个词汇:


    词汇表

    利用sklearn.feature_extraction.text库中的TfidfTransformer功能,我们可以将分词好的结果方便地转化为TF-IDF特征。
    这意味着对于每一条评论,将产生2680维(对应2680个词汇)的特征。而我们的样本只有200条训练数据。在特征维度高于样本数量时,训练很难取得较好的成果。

    这给我们未来工作提供了两个思路:
    1.降低词汇表(例如,只关心形容词)
    2.增加标注数量(较为耗时耗力)

    注意到汉语常用词汇数量近100,000个,因而在增加标注数据的同时,一定要降低词汇表。

    我们考虑了增加书评长度作为一个重要特征来预测评分,

    在82个测试样本上的真实值和预测值对比如下:


    预测值y_pred和真实值y_te的对比

    本次实验效果一般,建议改进1、2两点后再做实验。

    相关文章

      网友评论

          本文标题:Python 豆瓣阅读 书评 分析

          本文链接:https://www.haomeiwen.com/subject/cnrvbxtx.html