赶紧写完睡觉

好累,记一下今天的成果,然后赶紧睡觉

文本挖掘课程

今天上了文本挖掘课程,讲了一些统计语言模型的历史和简单的中文分词技术,然后使用jieba分词做了小练习:用lxml爬一些文章下来,然后分词,最后使用wordcould做词云。

爬文章
import lxml.html
from urllib import request
f1 = request.urlopen('http://news.baidu.com/').read()
lxf1 = lxml.html.fromstring(f1)
lxf1l = lxf1.cssselect('a.a3')
lxf1ls = [[l.get('href'),l.text_content()] for l in lxf1l]
#lxf1lspd = pd.DataFrame(lxf1ls)
for ls in [lxf1ls[0]]:
    ls1 = request.urlopen(ls[0]).read()
    lxls1 = lxml.html.fromstring(ls1)
    lxls1l = lxls1.cssselect('div > p')
    lxls1ltext = '\n'.join([x.text_content() for x in lxls1l])
    print(ls[1])
    print('----------------------')
    print(lxls1ltext)
    print('======================')
http://news.xinhuanet.com/politics/2017-09/27/c_1121734537.htm
词云
import jieba
from wordcloud import WordCloud
jtext = jieba.cut(lxls1ltext,cut_all=False)
wcjtext = '/'.join(jtext)
fp = r'C:\Windows\Fonts\simkai.ttf'
wordcloud = WordCloud(font_path=fp,background_color='white',scale=1.5).generate(wcjtext)
plt.figure(1,(10,10))
plt.imshow(wordcloud)
词云

大概就是这样了。

Python金融大数据分析

下课以后学了这个,感觉pythonpandas库太牛了,做数据分析必备。虽然之前用也在用这个库,但是从来没有系统的学习过,这次稍微看了看书,书上的一些高级用法让人眼前一亮。

从yahoo下载Google股价,计算收益率年化波动
import numpy as np
import pandas as pd
import pandas_datareader as web
import matplotlib.pyplot as plt
import math
import numexpr as ne
ne.set_num_threads(4)

goog = web.DataReader('GOOG',data_source='yahoo',start='2009-01-01',end='2017-01-01') # 用校园网有线连接
goog['Log_Ret'] = np.log(goog['Close']/goog['Close'].shift(1))
goog['Volatility'] = goog['Log_Ret'].rolling(window=252).std()*np.sqrt(252) # 年化
#%matplotlib inline
goog[['Close','Volatility']].plot(subplots=True,color=['blue','red'],figsize=(8,6),grid=True)
Google:2009-2017股价和收益率年化波动
使用numexpr加速numpy科学计算
import numexpr as ne
loops = 1000000
a = np.arange(1,loops)
%timeit r = 3*np.log(a)+np.cos(a)**2
ne.set_num_threads(1)
%timeit r = ne.evaluate('3*log(a)+cos(a)**2')
ne.set_num_threads(4)
%timeit r = ne.evaluate('3*log(a)+cos(a)**2')

10 loops, best of 3: 138 ms per loop
10 loops, best of 3: 61.4 ms per loop
10 loops, best of 3: 31.2 ms per loop

使用numexpr以后,速度翻倍,增加线程数量,速度再次翻倍。

%prun魔法函数代码分析
%prun r = ne.evaluate('3*log(a)+cos(a)**2')
代码分析
IPython的Latex
#%%
%%latex
\begin{equation}
S_T = S_0 e^{(r - 0.5\sigma^2) T + \sigma \sqrt{T} z}
\end{equation}
期权定价公式

Bravo!我一定要好好学python!

MineCraft比拼

想学Java,打算看看之前玩的游戏MineCraft的源码。
下面放几个链接:

http://hopper.minecraft.net/help/pixel-format-not-accelerated/
错误处理:我的电脑只有集显(独显的驱动坏了,不能更新),所以报错,看这个是因为使用Intel HD 3000的集显,太low,所以Java版本不能太高,之前一直用的jre1.8.0_144,降低到jre6就好了。

https://tieba.baidu.com/p/4421623213?red_tag=0927855031
https://tieba.baidu.com/p/4251510226?red_tag=1211872928
教你怎么看MineCraft的源码。Java太恶心看不下去......
http://www.modcoderpack.com/website/content/
反编译器的下载地址,对应好版本下载即可。

我用了原来的我的世界精灵客户端,和网易的客户端,发现网易代理超级卡。当然,如果使用集显,网易客户端不能使用过高版本的MineCraft,因为1.12的我的世界用的是jre8,降低到1.7.10就是用的jie7,jie7下渣渣集显启动成功。

用其他的非网易代理的盗版客户端时候,注意也要更改jre版本。如果改不了的,去%AppData%\Roaming\XXX\下找找java.list、config一类的配置文件,手动修改jre地址。这里XXX就是使用的盗版客户端的名字了(MCELF,MCLC什么的)。无奈,网易代理不给力啊,想玩win10自带的C++版MineCraft了。

睏=_=。

推荐阅读更多精彩内容