Comment Analyzer

根据评论分析词频,保存词云。

用法

得到词云

生成评论分析器实例

brands = ['vivo', 'oppo', 'mi', 'huawei', 'apple', 'SMARTISAN']
from taobao_crawler.analyzer.comment_analyzer import CommentAnalyzer
comm_analyzer = CommentAnalyzer(db)
comm_analyzer.set_brand(brands)

CommentAnalyzer(db) 中的 db 参见 DB

得到各品牌评论词汇频率比例

comm_analyzer.frequency_run()

得到各品牌评论词汇超平均值比例

comm_analyzer.times_run()

数据示例

[('顶多', 20.856220399929835),
 ('谁家', 20.856220399929835),
 ('真没想到', 20.856220399929835),
 ('炸裂', 20.856220399929835),
 ('比安卓好', 20.856220399929835),
 ('有所改善', 20.856220399929835),
 ('老师', 20.856220399929835),
 ('直板', 20.856220399929835),
 ('恭维', 20.856220399929835),
 ('亲亲', 20.856220399929835)]

类属性

class analyzer.comment_analyzer.CommentAnalyzer(db, brand_name=('vivo', 'oppo', 'mi', 'huawei', 'apple', 'SMARTISAN'))

Bases: object

利用NLP分析评论,词频得到词云

__init__(db, brand_name=('vivo', 'oppo', 'mi', 'huawei', 'apple', 'SMARTISAN'))
参数:
  • db – 一个 pymongo.MongoClient.db 的实例
  • brand_name – 所研究的所有品牌名
brand_to_id(brand)

通过品牌名得到其下商品

参数:brand – list, 所研究的所有品牌名
返回:iteration, 遍历该品牌下所有商品(dictionary)的iteration
draw_freq_wordcloud(string, color_mask_address, write_file_address)

保存词云

参数:
  • string – string, 用以生成词云的字符串
  • color_mask_address – 背景图片地址
  • write_file_address – 图片保存地址
draw_more_wordcloud(most, color_mask_address, write_file_address)

绘制超越平均词频倍数的词云

参数:
  • most – dictionary {词汇,该词汇频率与平均频率比例}
  • color_mask_address – 背景图片地址
  • write_file_address – 图片保存地址
get_counter(string)

生成计数器(Counter),表示该字符串中各词汇的频次

参数:string – dictionary {词汇:该词汇频率与平均频率比例}
返回:Counter{词汇:该词汇频率与平均频率比例}
get_most(times, k)

得到倍数词典中最高倍数的前k个词汇

参数:
  • times – dictionary {词汇,该词汇频率与平均频率比例}
  • k – 选取词汇频率最高倍数中前k个
返回:

list, [(词汇,比例)]

get_ratio(c)

生成频率(Counter),得到该词汇的出现频率

参数:c – Counter 计数器(Counter),表示该字符串中各词汇的频次
返回:dictionary{词汇:该词汇频率与平均频率比例}
get_times(r0, r, hold)

生成频率(Counter),得到该词汇的出现频率

参数:
  • r0 – dictionary 表示该字符串中各词汇的频率
  • r – dictionary 表示所有评论中各词汇的频次
  • hold – float 阈值, 当比例超过该值时输出
返回:

dictionary{词汇:该词汇频率与平均频率比例}

id_to_comment(item_id)

通过商品ID得到其评论情感评分

参数:item_id – string, 商品ID
返回:string, 该ID商品所有评论
run()

运行函数 得到各品牌评论词云

set_brand(brand_name)

更改品牌名称

参数:brand_name – list, 品牌名称