用jiebaR分析比特币的文章
在这个notebook中,我们将使用jiebaR来分析一篇描述比特币暴跌的文章
- 文章来源:财富网
- 文章链接:http://www.fortunechina.com/investing/c/2018-02/06/content_301955.htm
# 查看文章内容:
file.show('./data//Bitcoin.txt',encoding = 'UTF-8')
安装jiebaR
install.packages(c('jiebaR','wordcloud2'),repos = 'https://mirrors.ustc.edu.cn/CRAN/')
先来尝试分析一下短句子
library(jiebaR) # 载入包
分词器 = worker() # 创建分词器
# 利用分词器进行分词
segment("在这个notebook中,我们将使用jiebaR来分析一片描述比特币暴跌的文章", 分词器)
- '在'
- '这个'
- 'notebook'
- '中'
- '我们'
- '将'
- '使用'
- 'jiebaR'
- '来'
- '分析'
- '一片'
- '描述'
- '比特'
- '币'
- '暴跌'
- '的'
- '文章'
# 添加新词到已存在的分词器中,比特币不能分开,它时一个词。第三个参数 "n" 代表新词的词性标记
new_user_word(分词器, "比特币", "n")
TRUE
# 用添加新词“比特币”的分词器再次进行分词
segment("在这个notebook中,我们将使用jiebaR来分析一片描述比特币暴跌的文章", 分词器)
- '在'
- '这个'
- 'notebook'
- '中'
- '我们'
- '将'
- '使用'
- 'jiebaR'
- '来'
- '分析'
- '一片'
- '描述'
- '比特币'
- '暴跌'
- '的'
- '文章'
对文章进行分词
# 读取文本,按照行读取
texts = readLines("./data/Bitcoin.txt", encoding="UTF-8",warn = FALSE)
# 查看文章内容
texts
- '对于比特币投资者来说,总有一些时候是特别考验你的灵魂的。'
- ''
- '在美国推出比特币期货后,比特币的币值在去年12月一度涨至近2万美元,此后便一路暴跌,币值被拦腰砍掉一半以上,截止至上周五已跌至7614美元。不过据比特币网站coinmarketcap.com称,截止到上周六纽约当地时间下午2时58分,比特币的币值又回升了7.5个百分点,回升至9290.15美元。'
- ''
- '在此轮暴跌中,损失最惨重的,当然是那些在比特币币值最高位处接盘的人。此前不久,杰米·迪蒙和鲁里埃尔·鲁比尼等比特币怀疑论者就曾指出,比特币是史上最大的资产泡沫之一,且已显现出贬值的迹象。“接盘侠”们的恐慌性出售,也与早期比
# 整篇文章一起分词,将按行分词的条件设置为FALSE
分词器$bylines = FALSE
# 开始分词
分词结果 = segment(texts, 分词器)
# 查看分词结果,查看前100个
head(分词结果,100)
- '对于'
- '比特币'
- '投资者'
- '来说'
- '总有'
- '一些'
- '时候'
- '是'
- '特别'
- '考验'
- '你'
- '的'
- '灵魂'
- '的'
- '在'
- '美国'
- '推出'
- '比特币'
- '期货'
- '后'
- '比特币'
- '的'
- '币值'
- '在'
- '去年'
- '12'
- '月'
- '一度'
- '涨至'
- '近'
- '2'
- '万美元'
- '此后'
- '便'
- '一路'
- '暴跌'
- '币值'
- '被'
- '拦腰'
- '砍掉'
- '一半'
- '以上'
- '截止'
- '至'
- '上周五'
- '已跌'
- '至'
# 分词结构数据类型
class(分词结果)
‘character’
# 进行词频统计,并查看排序结果
require(dplyr)
freq(分词结果) %>% arrange(desc(freq)) %>% head()
| char | freq |
|---|---|
| 的 | 49 |
| 比特币 | 36 |
| 在 | 10 |
| 是 | 9 |
| 美元 | 9 |
| 了 | 8 |
发现有很多“的”,“是”,“了”之类的词,这些词是停止词。可以在统计词频是去除它们。
添加停止词
# 添加目录data下的停止词文件,注意指定编码方式
分词器 = worker(stop_word = "./data/stop.txt",encoding = 'UTF-8')
# 注意此处新建了一个worker,所以需要重新添加用户自定义单词
new_user_word(分词器, "比特币", "n")
TRUE
# 开始分词
去除停止词分词结果 = segment(texts, 分词器)
freq(去除停止词分词结果) %>% arrange(desc(freq)) %>% head()
| char | freq |
|---|---|
| 比特币 | 36 |
| 美元 | 9 |
| 投资者 | 7 |
| 币值 | 6 |
| 投资 | 4 |
| 表示 | 4 |
保存词频统计结果
# 将分词结果保存
fred_df <- freq(去除停止词分词结果)
# 查看词频统计结果数据类型
class(fred_df)
‘data.frame’
# 将结果写到数据文件中
write.csv(fred_df,'./data/fred_df.csv',row.names = FALSE,fileEncoding = 'GBK')
注意不要再jupyter里面执行如下语句
# 由于jupyter不支持输出这种内容丰富的图像,在Rstudio里面执行如下语句
require(wordcloud2)
wordcloud2(fred_df,size = 1, fontFamily = "微软雅黑",color = "random-light",backgroundColor = "grey")

本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!
