├── .gitattributes ├── README.md └── stock_prediction ├── code.py └── django ├── myblog ├── .idea │ ├── encodings.xml │ ├── misc.xml │ ├── modules.xml │ ├── myblog.iml │ └── workspace.xml ├── blog │ ├── __init__.py │ ├── __init__.pyc │ ├── admin.py │ ├── admin.pyc │ ├── apps.py │ ├── dict │ │ ├── stock_dic.txt │ │ ├── stock_dic1.txt │ │ └── stock_dic的副本.txt │ ├── migrations │ │ ├── __init__.py │ │ └── __init__.pyc │ ├── models.py │ ├── models.pyc │ ├── predict.xls │ ├── predict_models.py │ ├── predict_models.pyc │ ├── static │ │ ├── blog │ │ │ └── bootstrap │ │ │ │ ├── css │ │ │ │ ├── bootstrap.min.css │ │ │ │ ├── main.css │ │ │ │ ├── theme.scss.css │ │ │ │ └── timber.scss.css │ │ │ │ ├── img │ │ │ │ ├── background.jpg │ │ │ │ ├── background1.jpg │ │ │ │ ├── presult.jpg │ │ │ │ ├── stock.gif │ │ │ │ └── stock.jpg │ │ │ │ └── js │ │ │ │ ├── bootstrap.min.js │ │ │ │ └── jquery.min.js │ │ └── datetimepicker │ │ │ ├── jquery.datetimepicker.css │ │ │ ├── jquery.datetimepicker.full.js │ │ │ └── jquery.js │ ├── stock.jpg │ ├── templates │ │ ├── index.html │ │ ├── nothing.html │ │ ├── test.html │ │ └── test1.html │ ├── tendency_judge │ │ ├── __init__.py │ │ ├── __init__.pyc │ │ ├── data │ │ │ ├── dev.txt │ │ │ ├── p_p.xls │ │ │ ├── predict_src.txt │ │ │ └── train.txt │ │ ├── main_rnn_last.py │ │ ├── main_rnn_last.pyc │ │ ├── model │ │ │ ├── extract_neg_dic.txt │ │ │ ├── neg_dic.txt │ │ │ ├── tag.txt │ │ │ ├── user_dic.txt │ │ │ └── vocab.txt │ │ ├── pre1.xlsx │ │ ├── predict.txt │ │ ├── tf_util.py │ │ ├── tf_util.pyc │ │ ├── util1.py │ │ └── util1.pyc │ ├── tests.py │ ├── tmp_file │ │ └── history.txt │ ├── urls.py │ ├── urls.pyc │ ├── views.py │ └── views.pyc ├── db.sqlite3 ├── manage.py ├── myblog │ ├── __init__.py │ ├── __init__.pyc │ ├── settings.py │ ├── settings.pyc │ ├── urls.py │ ├── urls.pyc │ ├── wsgi.py │ └── wsgi.pyc ├── predict.xls └── presult.jpg └── mysite ├── db.sqlite3 ├── manage.py └── mysite ├── __init__.py ├── __init__.pyc ├── settings.py ├── settings.pyc ├── urls.py ├── urls.pyc ├── wsgi.py └── wsgi.pyc /.gitattributes: -------------------------------------------------------------------------------- 1 | *.js linguist-language=python 2 | *.css linguist-language=python 3 | *.html linguist-language=python 4 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # stock_prediction 2 | # 基于LSTM的股票价格预测 3 | ## 目录说明 4 | stock_prediction为项目根目录,项目使用django框架做了web界面,code.py是配置文件,有效代码在stock_prediction/django/myblog/blog中,其中模块tendency_judge用来对股票相关新闻进行分类 5 | ## 实现原理 6 | 使用LSTM和BP神经网络进行股票价格的回归,时间窗口设置为120,根据前120天的数据,预测一个交易日的股票价格,根据股票相关新闻的分类结果对模型预测价格进行奖惩,得出最终的股票预测价格。 7 | ## 启动方式 8 | cd到目录stock_prediction/django/myblog/下执行 python manage.py runserver ,复制页面的url至浏览器即可访问系统主页 9 | -------------------------------------------------------------------------------- /stock_prediction/code.py: -------------------------------------------------------------------------------- 1 | import web 2 | render = web.template.render('templates/') 3 | urls=( 4 | '/','index' 5 | ) 6 | 7 | app=web.application(urls,globals()) 8 | 9 | class index: 10 | def GET(self): 11 | return 'hello,world' 12 | 13 | 14 | if __name__=='__main__': 15 | 16 | app.run() -------------------------------------------------------------------------------- /stock_prediction/django/myblog/.idea/encodings.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /stock_prediction/django/myblog/.idea/misc.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /stock_prediction/django/myblog/.idea/modules.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /stock_prediction/django/myblog/.idea/myblog.iml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 12 | -------------------------------------------------------------------------------- /stock_prediction/django/myblog/blog/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhengguowei/stock_prediction/ee12d70c0cef25866e0c2c773a1a9492ce0622df/stock_prediction/django/myblog/blog/__init__.py -------------------------------------------------------------------------------- /stock_prediction/django/myblog/blog/__init__.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhengguowei/stock_prediction/ee12d70c0cef25866e0c2c773a1a9492ce0622df/stock_prediction/django/myblog/blog/__init__.pyc -------------------------------------------------------------------------------- /stock_prediction/django/myblog/blog/admin.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | from __future__ import unicode_literals 3 | 4 | from django.contrib import admin 5 | 6 | # Register your models here. 7 | -------------------------------------------------------------------------------- /stock_prediction/django/myblog/blog/admin.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhengguowei/stock_prediction/ee12d70c0cef25866e0c2c773a1a9492ce0622df/stock_prediction/django/myblog/blog/admin.pyc -------------------------------------------------------------------------------- /stock_prediction/django/myblog/blog/apps.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | from __future__ import unicode_literals 3 | 4 | from django.apps import AppConfig 5 | 6 | 7 | class BlogConfig(AppConfig): 8 | name = 'blog' 9 | -------------------------------------------------------------------------------- /stock_prediction/django/myblog/blog/migrations/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhengguowei/stock_prediction/ee12d70c0cef25866e0c2c773a1a9492ce0622df/stock_prediction/django/myblog/blog/migrations/__init__.py -------------------------------------------------------------------------------- /stock_prediction/django/myblog/blog/migrations/__init__.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhengguowei/stock_prediction/ee12d70c0cef25866e0c2c773a1a9492ce0622df/stock_prediction/django/myblog/blog/migrations/__init__.pyc -------------------------------------------------------------------------------- /stock_prediction/django/myblog/blog/models.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | from __future__ import unicode_literals 3 | 4 | from django.db import models 5 | 6 | # Create your models here. 7 | class Prices(models.Model): 8 | bp_price=models.IntegerField(null=False) 9 | lstm_price=models.IntegerField(null=True) 10 | 11 | class News(models.Model): 12 | title=models.TextField() 13 | tentency=models.TextField() 14 | url=models.TextField() 15 | 16 | class Prediction_com(models.Model): 17 | true_date=models.FloatField() 18 | bp_predict=models.FloatField() 19 | lstm_predict = models.FloatField() 20 | bp_error=models.FloatField() 21 | lstm_error=models.FloatField() 22 | data=models.TextField() 23 | 24 | 25 | 26 | -------------------------------------------------------------------------------- /stock_prediction/django/myblog/blog/models.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhengguowei/stock_prediction/ee12d70c0cef25866e0c2c773a1a9492ce0622df/stock_prediction/django/myblog/blog/models.pyc -------------------------------------------------------------------------------- /stock_prediction/django/myblog/blog/predict.xls: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhengguowei/stock_prediction/ee12d70c0cef25866e0c2c773a1a9492ce0622df/stock_prediction/django/myblog/blog/predict.xls -------------------------------------------------------------------------------- /stock_prediction/django/myblog/blog/predict_models.py: -------------------------------------------------------------------------------- 1 | #-*- coding: utf-8 -*- 2 | from sklearn.neural_network import MLPRegressor 3 | from sklearn.ensemble import GradientBoostingRegressor 4 | from bs4 import BeautifulSoup 5 | import urllib2 6 | import datetime 7 | import xlwt 8 | import requests 9 | import numpy as np 10 | from keras.layers.core import Dense, Activation, Dropout 11 | from keras.layers.recurrent import LSTM 12 | from keras.models import Sequential 13 | from sklearn import preprocessing 14 | from datetime import datetime 15 | from datetime import timedelta 16 | from tendency_judge.main_rnn_last import * 17 | import math 18 | import random 19 | import jieba 20 | 21 | __author__='Zheng guowei' 22 | 23 | id_to_name={} 24 | name_to_id_short={} 25 | name_to_id_full={} 26 | path=os.getcwd() 27 | fi=open(path+'/blog/dict/stock_dic1.txt','r') 28 | lines=fi.readlines() 29 | fi.close() 30 | for i in range(len(lines)): 31 | lines[i]=lines[i].split(' ') 32 | id_to_name[lines[i][1]]=lines[i][2] 33 | name_to_id_short[lines[i][2]]=lines[i][1] 34 | name_to_id_full[lines[i][3]]=lines[i][1] 35 | 36 | class Models: 37 | ss_x = preprocessing.StandardScaler() 38 | ss_y = preprocessing.StandardScaler() 39 | def __init__(self,ss_x=ss_x,ss_y=ss_y,id_to_name=id_to_name,name_to_id_short=name_to_id_short,name_to_id_full=name_to_id_full): 40 | self.ss_x=ss_x 41 | self.ss_y=ss_y 42 | self.id_to_name=id_to_name 43 | self.name_to_id_short=name_to_id_short 44 | self.name_to_id_full=name_to_id_full 45 | #crawl page 46 | def download_stock(self,s): 47 | def get_content(url): 48 | content=None 49 | try: 50 | content = urllib2.urlopen(url,timeout=2).read() 51 | except: 52 | print 'get content failed' 53 | return content 54 | 55 | #parse the content of web page 56 | def get_market_index(content): 57 | market_idnex_list = [] 58 | content = BeautifulSoup(content, 'html.parser') 59 | try: 60 | table = content.find('table', id='FundHoldSharesTable').contents 61 | for i in range(5, len(table)): 62 | if i % 2 != 0: 63 | text = table[i].contents 64 | temporary_text = [] 65 | for j in range(1, len(text)): 66 | if j % 2 != 0: 67 | temporary_text.append(text[j].text.strip()) 68 | market_idnex_list.append(temporary_text) 69 | except: 70 | pass 71 | return market_idnex_list 72 | 73 | #write data to txt file 74 | def data_to_txt(market_index_list): 75 | fou = open('blog/tmp_file/history.txt', 'w') 76 | for line in market_index_list: 77 | fou.write(' '.join(line) + '\n') 78 | fou.close() 79 | 80 | index_url = 'http://vip.stock.finance.sina.com.cn/corp/go.php/vMS_MarketHistory/stockid/%s/.phtml?year=20&jidu=2'%s 81 | market_idnex=[] 82 | for i in range(14, 19): 83 | for j in range(1, 5): 84 | if i == 7 and j >= 2: 85 | continue 86 | if len(str(i)) == 1: 87 | real_url = index_url[:96] + '0' + str(i) + index_url[96:102] + str(j) 88 | else: 89 | real_url = index_url[:96] + str(i) + index_url[96:102] + str(j) 90 | print real_url 91 | content = get_content(real_url) 92 | if content: 93 | market_idnex+= get_market_index(content)[::-1] 94 | data_to_txt(market_idnex) 95 | 96 | #preprocess data 97 | def preprocess_data(self): 98 | path=os.getcwd() 99 | data=[] 100 | lines=open(path+'/blog/tmp_file/history.txt').readlines() 101 | for i in range(len(lines)): 102 | lines[i]=lines[i].split(' ') 103 | data.append(lines[i][0]) 104 | lines[i]=map(float,lines[i][1:-2]) 105 | train, target = [], [] 106 | for j in range(len(lines)-30): 107 | tmp=[] 108 | for i in range(j,j+30): 109 | tmp+=lines[i] 110 | train.append(np.array(tmp)) 111 | target.append(lines[j+30][2]) 112 | remain_predict=[] 113 | five_test,five_true=[],[] 114 | for k in range(j+1,j+31): 115 | remain_predict+=lines[k] 116 | for i in range(len(lines)-35,len(lines)-30): 117 | tmp=[] 118 | for v in range(i,i+30): 119 | tmp+=lines[v] 120 | five_test.append(np.array(tmp)) 121 | five_true.append(lines[i+30][2]) 122 | for i in range(-5,0): 123 | data[i]=data[i][data[i].index('-')+1:] 124 | year_test,year_true,base=[],[],[] 125 | try: 126 | for i in range(len(lines)-275,len(lines)-30): 127 | tmp=[] 128 | for v in range(i,i+30): 129 | tmp+=lines[v] 130 | year_test.append(np.array(tmp)) 131 | year_true.append(lines[i+30][2]) 132 | base.append(lines[i+29][2]) 133 | except: 134 | pass 135 | return np.array(train),np.array(target),np.array(remain_predict),np.array(five_test),np.array(five_true),lines[-1][2],data[-5:],np.array(year_test),year_true,base 136 | 137 | # bp model 138 | def bp_fit(self,x_train,y_train): 139 | # print 'the shape of x:', x_train.shape 140 | # print 'the shape of y:', y_train.shape 141 | print('begin fit') 142 | 143 | #split the data 144 | x_train = self.ss_x.fit_transform(x_train) 145 | y_train = self.ss_y.fit_transform(y_train.reshape(-1, 1)) 146 | 147 | # Multilayer perceptron 148 | model_mlp = MLPRegressor(solver='lbfgs', hidden_layer_sizes=(120, 9, 4), random_state=1) 149 | model_mlp.fit(x_train, y_train.ravel()) 150 | model_gbr = GradientBoostingRegressor() 151 | model_gbr.fit(x_train, y_train.ravel()) 152 | model_gbr_best = GradientBoostingRegressor(learning_rate=0.01, max_depth=6, max_features=0.5, 153 | min_samples_leaf=14, 154 | n_estimators=70) 155 | model_gbr_best.fit(x_train, y_train.ravel()) 156 | return model_mlp,model_gbr 157 | 158 | #bp model prediction 159 | def bp_predict(self,models,remain_pre): 160 | remain_pre = self.ss_x.transform(remain_pre) 161 | bp_predict=models[0].predict(remain_pre) 162 | fusion_predict=models[1].predict(remain_pre) 163 | bp_predict = self.ss_y.inverse_transform(bp_predict) 164 | fusion_predict = self.ss_y.inverse_transform(fusion_predict) 165 | return bp_predict,fusion_predict 166 | 167 | # lstm model 168 | def lstm_fit(self,x_train,y_train): 169 | x_train=x_train.reshape(x_train.shape[0],120,1) 170 | # print x_train.shape,y_train.shape 171 | epochs=1 172 | layers=[1, 120, 10, 1] 173 | model = Sequential() 174 | model.add(LSTM( 175 | input_shape=(layers[1], layers[0]), 176 | output_dim=layers[1], 177 | return_sequences=True)) 178 | model.add(Dropout(0.2)) 179 | 180 | model.add(LSTM( 181 | layers[2], 182 | return_sequences=False)) 183 | model.add(Dropout(0.2)) 184 | 185 | model.add(Dense( 186 | output_dim=layers[3])) 187 | model.add(Activation("linear")) 188 | 189 | start = time.time() 190 | model.compile(loss="mse", optimizer="rmsprop") 191 | print("> Compilation Time : ", time.time() - start) 192 | model.fit( 193 | x_train, 194 | y_train, 195 | batch_size=128, 196 | nb_epoch=epochs, 197 | validation_split=0.05) 198 | return model 199 | 200 | # juege whether param is a digit 201 | def judge_digit(self,num): 202 | try: 203 | int(num) 204 | return True 205 | except: 206 | return False 207 | 208 | #lstm prediction 209 | def lstm_predict(self,model,remain_predict): 210 | remain_predict=remain_predict.reshape(1,120,1) 211 | predicted = model.predict(remain_predict) 212 | predicted=self.ss_y.inverse_transform(predicted) 213 | predicted = np.reshape(predicted, (predicted.size,)) 214 | return predicted 215 | 216 | #get company name according to company name 217 | def get_commpany_name(self,id): 218 | try: 219 | return self.id_to_name[id] 220 | except: 221 | 222 | return None 223 | 224 | #get id according to id 225 | def get_company_id(self,name): 226 | if name in self.name_to_id_short: 227 | return self.name_to_id_short[name] 228 | # for x in self.name_to_id_full: 229 | # if name in x: 230 | # return self.name_to_id_full[name] 231 | return None 232 | #get related news 233 | def get_related_news(self,name): 234 | # download the content of the page 235 | def getYesterday(): 236 | today=datetime.date.today() 237 | oneday=datetime.timedelta(days=1) 238 | yesterday=today-oneday 239 | return yesterday 240 | 241 | def get_content(url): 242 | try: 243 | content=requests.get(url) 244 | content.encoding='gb18030' 245 | return content.text 246 | 247 | # return urllib2.urlopen(url).read() 248 | except: 249 | return None 250 | 251 | #get news related stock 252 | def get_title_list(content): 253 | titles = [] 254 | content = BeautifulSoup(content, 'html.parser') 255 | tables = content.find_all('ul', class_='list_009') 256 | for i in range(len(tables)): 257 | title = tables[i].contents 258 | for i in range(len(title)): 259 | if i % 2 != 0: 260 | titles.append(title[i].text) 261 | return titles 262 | 263 | #get urls of news 264 | def get_url_list(content): 265 | urls = [] 266 | content = BeautifulSoup(content, 'html.parser') 267 | tables = content.find_all('ul', class_='list_009') 268 | for i in range(len(tables)): 269 | title = tables[i].contents 270 | for i in range(len(title)): 271 | if i % 2 != 0: 272 | tmp = title[i].contents[0].attrs['href'] 273 | urls.append(tmp) 274 | return urls 275 | 276 | data = time.strftime('%Y-%m-%d', time.localtime(time.time())) + '_' 277 | # data=getYesterday().strftime('%Y-%m-%d')+'_' 278 | title_list = [] 279 | url_list = [] 280 | result = set() 281 | for i in range(4): 282 | url = 'http://roll.finance.sina.com.cn/finance/zq1/ssgs/%s.shtml' 283 | real_url = url % (data + str(i)) 284 | content = get_content(real_url) 285 | if content: 286 | tmp_titles = get_title_list(content) 287 | tmp_urls = get_url_list(content) 288 | url_list += tmp_urls 289 | title_list += tmp_titles 290 | if type(name)==list: 291 | name=name[0] 292 | name = name.decode('utf-8') 293 | for i in range(len(title_list)): 294 | if name in title_list[i]: 295 | result.add(title_list[i]+'***'+url_list[i]) 296 | result=list(result) 297 | for i in range(len(result)): 298 | result[i]=result[i].split('***') 299 | import requests 300 | from bs4 import BeautifulSoup 301 | url='http://news.baidu.com/ns?cl=2&rn=20&tn=news&word=%s'%(name) 302 | content = requests.get(url) 303 | content=content.text 304 | content = BeautifulSoup(content, 'html.parser') 305 | content = content.find_all('div', class_='result') 306 | news = [] 307 | date=[] 308 | for x in content: 309 | tmp = x.contents 310 | url = tmp[1].contents[1].attrs['href'] 311 | title = x.text.split('\n')[3].strip() 312 | date1 = tmp[3].text.split('\n')[2].strip() 313 | if '小时' in date1 or '分钟' in date1: 314 | date.append(date1) 315 | news.append([title, url]) 316 | return result+news[:len(date)] 317 | 318 | #classify the news 319 | def get_news_tendency(self,content): 320 | path = os.getcwd() 321 | myWorkbook = xlwt.Workbook() 322 | mySheet = myWorkbook.add_sheet('A Test Sheet') 323 | mySheet.write(0,0,0) 324 | for i in range(1,len(content)+1): 325 | mySheet.write(i, 1,content[i-1][0]) 326 | myWorkbook.save(path + '/blog/tendency_judge/data/p_p.xls') 327 | end='/blog/tendency_judge/main_rnn_last.py' 328 | path1=path 329 | path1+=end 330 | path1='python '+path1 331 | # os.system('python /Users/macbook/Desktop/web_test/django/myblog/blog/tendency_judge/main_rnn_last.py') 332 | os.system(path1) 333 | tendency1=open(path+'/blog/tendency_judge/predict.txt').readlines() 334 | for i in range(len(tendency1)): 335 | tendency1[i]=tendency1[i].split('\t') 336 | return tendency1 337 | def isexist(self,stock_id): 338 | return stock_id in self.id_to_name 339 | 340 | def downImg(self,imgUrl, dirpath, imgName): 341 | path = os.getcwd() 342 | dirpath=path+dirpath 343 | filename = os.path.join(dirpath, imgName) 344 | try: 345 | res = requests.get(imgUrl, timeout=15) 346 | if str(res.status_code)[0] == "4": 347 | print(str(res.status_code), ":", imgUrl) 348 | return False 349 | except Exception as e: 350 | print("raise ", imgUrl) 351 | print(e) 352 | return False 353 | with open(filename, "wb") as f: 354 | f.write(res.content) 355 | return True 356 | 357 | # 358 | def stock_flag(self,stock_id): 359 | if stock_id in self.stock_flag: 360 | return self.stock_flag[stock_id] 361 | 362 | 363 | def draw_predictions(self,data,predictions): 364 | from pylab import plt 365 | true, lstm, bp = [], [], [] 366 | for i in range(len(predictions)): 367 | true.append(predictions[i][0]) 368 | bp.append(predictions[i][1]) 369 | lstm.append(predictions[i][2]) 370 | x = [1,2,3,4,5] 371 | plt.plot(x, true, 'cx--', label='true') 372 | plt.plot(x, bp, 'mo:', label='fusion') 373 | plt.plot(x, lstm, 'kp-.', label='lstm') 374 | plt.legend() 375 | plt.margins(0) 376 | plt.subplots_adjust(bottom=0.15) 377 | plt.xlabel(u"days") 378 | plt.ylabel("price") 379 | plt.title("tendency predictions of different models") 380 | plt.savefig('blog/static/blog/bootstrap/img/presult.jpg') 381 | 382 | 383 | def get_price(self,stock_flag,id): 384 | dic={'sh':'sz','sz':'sh'} 385 | base_rul='http://hq.sinajs.cn/list=%s%s'%(stock_flag,id) 386 | if len(urllib2.urlopen(base_rul).read())>60: 387 | tmp=urllib2.urlopen(base_rul).read() 388 | tmp=tmp.split(',') 389 | return tmp[3] 390 | else: 391 | base_rul = 'http://hq.sinajs.cn/list=%s%s' % (dic[stock_flag], id) 392 | tmp = urllib2.urlopen(base_rul) 393 | tmp = tmp.split(',') 394 | return tmp[3] 395 | 396 | def get_data(self,n): 397 | tmp = datetime.now() - timedelta(days=n) 398 | return str(tmp.month) + '-' + str(tmp.day) 399 | def get_result(self,bp,lstm,last_price,news): 400 | if bp>last_price and lstm>last_price: 401 | return '上涨的可能性较大' 402 | elif bp0.5 else '上涨的可能性较大' 415 | 416 | 417 | def sentences_extraction(self,text): 418 | text=text.split('。') 419 | text_lenght=len(text) 420 | def postion_score(postion,text_lenght): 421 | mid=float(text_lenght)/2 422 | return (postion-mid)**2+1 423 | def name_score(sentence): 424 | exist=False 425 | for x in self.name_to_id_short: 426 | if x in sentence: 427 | exist=True 428 | break 429 | return exist 430 | def code_score(sentence): 431 | exist=False 432 | for x in self.name_to_id_short: 433 | if x in sentence: 434 | exist=True 435 | break 436 | return exist 437 | def sim(sentece1,sentence2): 438 | return np.dot(sentence2,sentece1)/math.sqrt(sum((np.array(sentece1)-np.array(sentence2))**2)) 439 | remain=postion_score(text) 440 | remain=sorted(remain,key=lambda x:x[1]) 441 | return remain 442 | 443 | 444 | if __name__=='__main__': 445 | models=Models() 446 | for x in models.sentences_extraction('我曾经穿过时光隧道。然后去了太空'): 447 | print x -------------------------------------------------------------------------------- /stock_prediction/django/myblog/blog/predict_models.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhengguowei/stock_prediction/ee12d70c0cef25866e0c2c773a1a9492ce0622df/stock_prediction/django/myblog/blog/predict_models.pyc -------------------------------------------------------------------------------- /stock_prediction/django/myblog/blog/static/blog/bootstrap/css/main.css: -------------------------------------------------------------------------------- 1 | body { 2 | font-size: 14px; 3 | } 4 | 5 | @media (min-width: 992px) { 6 | body { 7 | font-size: 16px; 8 | } 9 | } 10 | 11 | @media (min-width: 992px) { 12 | .long-copy p, .long-copy ul, .long-copy ol { 13 | font-size: 18px; 14 | line-height: 30px; 15 | margin: 0 0 24px; 16 | } 17 | 18 | .long-copy h1 { 19 | line-height: 45px; 20 | } 21 | 22 | .long-copy h3 { 23 | line-height: 35px; 24 | } 25 | 26 | .long-copy ul li { 27 | margin-bottom: 10px; 28 | } 29 | } 30 | 31 | /*.nav-content { 32 | margin-top: 25px; 33 | }*/ 34 | 35 | .navlinks { 36 | margin-top: 15px; 37 | padding-bottom: 4px; 38 | text-align: center; 39 | } 40 | 41 | .navlinks a:not(.btn) { 42 | margin-right: 10px; 43 | padding-left: 2px; 44 | padding-right: 2px; 45 | font-size: 14px; 46 | text-align: center; 47 | color: #BD10E0; 48 | } 49 | 50 | .cover .navlinks a { 51 | color: white; 52 | } 53 | 54 | .navlinks a:hover:not(.btn), .navlinks a.active:not(.btn) { 55 | text-decoration: none; 56 | border-bottom: 4px solid #d826f9; 57 | } 58 | 59 | .navlinks a.btn { 60 | margin-top:-10px; 61 | } 62 | 63 | .cover.cover-schools .navlinks a:hover:not(.btn), .cover.cover-schools .navlinks a.active:not(.btn) { 64 | border-bottom-color: #a4ece2; 65 | } 66 | 67 | .cover.cover-about .navlinks a:hover:not(.btn), .cover.cover-about .navlinks a.active:not(.btn) { 68 | border-bottom-color: #ffafc5; 69 | } 70 | 71 | 72 | .cover.cover-contact .navlinks a:hover:not(.btn), .cover.cover-contact .navlinks a.active:not(.btn) { 73 | border-bottom-color: #f7d8aa; 74 | } 75 | 76 | .cover a { 77 | color: white; 78 | } 79 | 80 | a.underline { 81 | text-decoration: underline; 82 | } 83 | 84 | @media (min-width: 992px) { 85 | .navlinks { 86 | float: right; 87 | margin-right: 45px; 88 | margin-bottom: 15px; 89 | } 90 | 91 | .navlinks a:not(.btn) { 92 | margin-right: 25px; 93 | font-size: 20px; 94 | } 95 | } 96 | 97 | img.logo { 98 | height: 50px; 99 | display: block; 100 | margin: auto; 101 | } 102 | 103 | @media (min-width: 768px) { 104 | img.logo { 105 | height: 75px; 106 | } 107 | 108 | /*.nav-content img.logo { 109 | height: 100px; 110 | }*/ 111 | } 112 | 113 | @media (min-width: 992px) { 114 | img.logo { 115 | float: left; 116 | margin-left: 20px; 117 | } 118 | } 119 | 120 | .cover { 121 | background-image: url(/static/blog/bootstrap/img/background.jpg); 122 | background-repeat: no-repeat; 123 | background-position: 50% 50%; 124 | -ms-background-size: cover; 125 | -o-background-size: cover; 126 | -moz-background-size: cover; 127 | -webkit-background-size: cover; 128 | background-size: cover; 129 | height: 500px; 130 | -webkit-clip-path: polygon(0 0, 100% 0, 100% 85%, 0 100%); 131 | clip-path: polygon(0 0, 100% 0, 100% 85%, 0 100%); 132 | } 133 | 134 | .cover-schools { 135 | background-image: url(/static/img/background2.jpg); 136 | height: 400px; 137 | } 138 | 139 | .cover-about { 140 | background-image: url(/static/img/background3.jpg); 141 | height: 400px; 142 | } 143 | 144 | .cover-contact { 145 | background-image: url(/static/img/background4.jpg); 146 | height: 300px; 147 | } 148 | 149 | @media (min-width: 768px) { 150 | .cover { 151 | height: 600px; 152 | } 153 | 154 | .cover-schools { 155 | background-image: url(/static/img/background2.jpg); 156 | height: 450px; 157 | } 158 | 159 | .cover-about { 160 | height: 500px; 161 | } 162 | 163 | .cover-contact { 164 | height: 450px; 165 | } 166 | } 167 | 168 | @media (min-width: 992px) { 169 | .cover { 170 | height: 600px; 171 | } 172 | 173 | .cover-schools { 174 | height: 500px; 175 | } 176 | 177 | .cover-about { 178 | height: 500px; 179 | } 180 | 181 | .cover-contact { 182 | height: 400px; 183 | } 184 | } 185 | 186 | .cover .text-danger { 187 | color: #f2dede; 188 | } 189 | 190 | h1, h2, h3, h4, h5, h6 { 191 | font-family: 'Raleway', sans-serif; 192 | font-weight: 700; 193 | } 194 | 195 | @media (min-width: 768px) { 196 | h1 { 197 | font-weight: 900; 198 | } 199 | } 200 | 201 | h2 { 202 | font-size: 18px; 203 | } 204 | 205 | @media (min-width: 768px) { 206 | h2 { 207 | font-size: 30px; 208 | } 209 | } 210 | 211 | h2.landing { 212 | margin-bottom: 25px; 213 | text-align: center; 214 | } 215 | 216 | @media (min-width: 768px) { 217 | h2.landing { 218 | margin-bottom: 55px; 219 | } 220 | } 221 | 222 | body { 223 | font-family: 'Lato', sans-serif; 224 | color: #4A4A4A; 225 | } 226 | 227 | section { 228 | padding-top: 30px; 229 | padding-bottom: 30px; 230 | } 231 | 232 | section.cover { 233 | padding-top: 30px; 234 | } 235 | 236 | @media (min-width: 768px) { 237 | section { 238 | padding-top: 66px; 239 | padding-bottom: 66px; 240 | } 241 | } 242 | 243 | .jumbotron { 244 | background-color: transparent; 245 | color: white; 246 | text-align: center; 247 | padding-bottom: 0; 248 | padding-top: 0; 249 | margin-top: 32px; 250 | } 251 | 252 | .jumbotron h2 { 253 | margin-bottom: 0px; 254 | text-align: left; 255 | } 256 | 257 | .jumbotron h1 { 258 | font-size: 29px; 259 | } 260 | 261 | .jumbotron h2 { 262 | font-size: 24px; 263 | } 264 | 265 | .jumbotron p { 266 | font-size: 15px; 267 | } 268 | 269 | @media (min-width: 768px) { 270 | 271 | .jumbotron { 272 | padding-bottom: 30px; 273 | padding-top: 30px; 274 | } 275 | 276 | .jumbotron h1 { 277 | font-size: 44px; 278 | } 279 | 280 | .jumbotron h2 { 281 | margin-bottom: 20px; 282 | text-align: left; 283 | font-size: 36px; 284 | } 285 | 286 | .jumbotron p { 287 | font-size: 21px; 288 | } 289 | } 290 | 291 | @media (min-width: 992px) { 292 | 293 | .jumbotron h2 { 294 | margin-bottom: 40px; 295 | text-align: left; 296 | } 297 | 298 | .jumbotron h1 { 299 | font-size: 55px; 300 | } 301 | 302 | .jumbotron h2 { 303 | font-size: 44px; 304 | } 305 | 306 | .jumbotron { 307 | margin-top: 80px; 308 | } 309 | } 310 | 311 | @media (min-width: 1200px) { 312 | .jumbotron span.line-break { 313 | display: block; 314 | } 315 | } 316 | 317 | .no-padding-on-mobile { 318 | padding-left: 0; 319 | padding-right: 0; 320 | } 321 | 322 | @media (min-width: 768px) { 323 | .no-padding-on-mobile { 324 | padding-left: 15px; 325 | padding-right: 15px; 326 | } 327 | } 328 | 329 | .btn { 330 | display: block; 331 | margin: auto; 332 | box-shadow: 0 6px 10px 0 rgba(0,0,0,0.15); 333 | -webkit-box-shadow: 0 6px 10px 0 rgba(0,0,0,0.15); 334 | } 335 | 336 | .btn:hover { 337 | box-shadow: 0 2px 3px 0 rgba(0,0,0,0.15); 338 | -webkit-box-shadow: 0 2px 3px 0 rgba(0,0,0,0.15); 339 | } 340 | 341 | .btn-sm, .btn-xs { 342 | box-shadow: 0 2px 3px 0 rgba(0,0,0,0.15); 343 | -webkit-box-shadow: 0 2px 3px 0 rgba(0,0,0,0.15); 344 | } 345 | 346 | @media (min-width: 768px) { 347 | .btn { 348 | display: inline-block; 349 | margin: inherit; 350 | } 351 | } 352 | 353 | .btn-primary { 354 | background-color: #6DD928; 355 | border-color: #6DD928; 356 | } 357 | 358 | .btn-primary:focus, .btn-primary:active, .btn-primary:hover { 359 | background-color: #28d958; 360 | border-color: #28d958; 361 | } 362 | 363 | .btn-info { 364 | background-color: #BD0FE1; 365 | border-color: #BD0FE1; 366 | } 367 | 368 | .btn-info:focus, .btn-info:active, .btn-info:hover { 369 | background-color: #880fe1; 370 | border-color: #880fe1; 371 | } 372 | 373 | @media (min-width: 768px) { 374 | 375 | .form-inline .form-control { 376 | width: 269px; 377 | } 378 | } 379 | 380 | img.screenshot { 381 | height: 480px; 382 | } 383 | 384 | @media (min-width: 768px) { 385 | img.screenshot { 386 | height: 640px; 387 | } 388 | } 389 | 390 | .feature-summary { 391 | text-align: center; 392 | } 393 | 394 | .feature-summary .feature { 395 | margin-top: 30px; 396 | margin-bottom: 30px; 397 | } 398 | 399 | @media (min-width: 768px) { 400 | .feature-summary .feature { 401 | margin-top: 75px; 402 | margin-bottom: 75px; 403 | font-size: 18px; 404 | } 405 | } 406 | 407 | .feature-summary img { 408 | margin: auto; 409 | margin-bottom: 15px; 410 | } 411 | 412 | img.feature-icon { 413 | height: 32px; 414 | } 415 | 416 | @media (min-width: 768px) { 417 | img.feature-icon { 418 | height: 44px; 419 | } 420 | } 421 | 422 | .sample-task { 423 | padding-left: 5px; 424 | border-radius: 5px; 425 | color: white; 426 | font-size: 14px; 427 | margin-bottom: 18px; 428 | transition: all .2s ease-in-out; 429 | line-height: 16px; 430 | padding-right: 0px; 431 | } 432 | 433 | .sample-task .row { 434 | display: flex; 435 | align-items: center; 436 | } 437 | 438 | img.checkbox { 439 | height: 24px; 440 | } 441 | 442 | @media (min-width: 768px) { 443 | .sample-task { 444 | padding-top: 15px; 445 | padding-bottom: 15px; 446 | padding-left: 15px; 447 | font-size: 17px; 448 | margin-bottom: 18px; 449 | line-height: 19px; 450 | } 451 | 452 | img.checkbox { 453 | height: 28px; 454 | } 455 | } 456 | 457 | .sample-task:hover { 458 | transform: scale(1.1); 459 | } 460 | 461 | .sample-task .task-value { 462 | float: right; 463 | } 464 | 465 | .sample-task-1 { 466 | background-color: #50E3C2; 467 | } 468 | 469 | .sample-task-2 { 470 | background-color: #7ED321; 471 | } 472 | 473 | .sample-task-3 { 474 | background-color: #BD0FE1; 475 | } 476 | 477 | section.suggested-tasks { 478 | background-color: #F2F4F7; 479 | background: -webkit-linear-gradient(to right, #E0EAFC, #CFDEF3); 480 | background: linear-gradient(to right, #E0EAFC, #CFDEF3); 481 | } 482 | 483 | img.suggested-tasks { 484 | height: 145px; 485 | display: block; 486 | margin: auto; 487 | } 488 | 489 | @media (min-width: 768px) { 490 | img.suggested-tasks { 491 | height: 400px; 492 | } 493 | } 494 | 495 | div.progress-tracking p { 496 | margin-top: 10px; 497 | text-align: center; 498 | } 499 | 500 | @media (min-width: 768px) { 501 | div.progress-tracking { 502 | margin-top: 50px; 503 | } 504 | 505 | div.progress-tracking p { 506 | margin-top: 10px; 507 | text-align: center; 508 | font-size: 18px; 509 | } 510 | } 511 | 512 | @media (min-width: 992px) { 513 | div.progress-tracking { 514 | margin-top: 75px; 515 | } 516 | } 517 | 518 | img.progress-icon { 519 | height: 32px; 520 | margin-top: 25px; 521 | } 522 | 523 | @media (min-width: 768px) { 524 | img.progress-icon { 525 | height: 75px; 526 | } 527 | } 528 | 529 | .cf-team { 530 | background: #ff512f; /* fallback for old browsers */ 531 | background: -webkit-linear-gradient(to right, #ff512f, #dd2476); /* Chrome 10-25, Safari 5.1-6 */ 532 | background: linear-gradient(to right, #ff512f, #dd2476); /* W3C, IE 10+/ Edge, Firefox 16+, Chrome 26+, Opera 12+, Safari 7+ */ 533 | text-align: center; 534 | color: white; 535 | } 536 | 537 | .team p { 538 | font-style: italic; 539 | } 540 | 541 | @media (min-width: 768px) { 542 | .team p { 543 | font-size: 18px; 544 | line-height: 35px; 545 | } 546 | } 547 | 548 | footer.footer { 549 | margin-top: 40px; 550 | padding-top: 20px; 551 | padding-bottom: 10px; 552 | background-color: #F2F4F7; 553 | } 554 | 555 | footer.footer ul { 556 | padding-left: 0; 557 | margin-bottom: 40px; 558 | } 559 | 560 | footer.footer ul li { 561 | list-style: none; 562 | margin-bottom: 10px; 563 | } 564 | 565 | @media (min-width: 768px) { 566 | footer.footer { 567 | margin-top: 75px; 568 | } 569 | } 570 | 571 | @media (min-width: 992px) { 572 | footer.footer { 573 | margin-top: 100px; 574 | } 575 | } 576 | 577 | div.ticket { 578 | background-image: url(/static/img/ticket.png); 579 | background-repeat: no-repeat; 580 | background-position: center; 581 | background-size: 85% 85%; 582 | height: 93px; 583 | margin-top: 30px; 584 | margin-bottom: 50px; 585 | } 586 | 587 | @media (min-width: 768px) { 588 | div.ticket { 589 | background-size: 50% 100%; 590 | height: 150px; 591 | } 592 | } 593 | 594 | @media (min-width: 992px) { 595 | div.ticket { 596 | background-size: 30% 90%; 597 | height: 150px; 598 | } 599 | } 600 | 601 | div.ticket h2 { 602 | width: 200px; 603 | margin: auto; 604 | padding-top: 25px; 605 | color: #BD0FE1; 606 | } 607 | 608 | .share-icons { 609 | margin-top: 22px; 610 | margin-bottom: 22px; 611 | } 612 | 613 | .share-icons .btn { 614 | background-color: #BD0FE1; 615 | color: white; 616 | margin-bottom: 10px; 617 | } 618 | 619 | @media (min-width: 768px) { 620 | .share-icons .btn { 621 | margin-left: 5px; 622 | margin-right: 5px; 623 | } 624 | } 625 | 626 | .share-icons .btn img { 627 | margin-right: 7px; 628 | } 629 | 630 | .btn.btn-copy { 631 | margin-bottom: 0px; 632 | } 633 | 634 | .team { 635 | text-align: center; 636 | } 637 | 638 | .team .row { 639 | margin-bottom: 70px; 640 | } 641 | 642 | .team img { 643 | border-radius: 20px; 644 | } 645 | 646 | .mission p { 647 | margin-bottom: 25px; 648 | } 649 | 650 | figcaption { 651 | font-size: 12px; 652 | font-style: italic; 653 | } 654 | -------------------------------------------------------------------------------- /stock_prediction/django/myblog/blog/static/blog/bootstrap/img/background.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhengguowei/stock_prediction/ee12d70c0cef25866e0c2c773a1a9492ce0622df/stock_prediction/django/myblog/blog/static/blog/bootstrap/img/background.jpg -------------------------------------------------------------------------------- /stock_prediction/django/myblog/blog/static/blog/bootstrap/img/background1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhengguowei/stock_prediction/ee12d70c0cef25866e0c2c773a1a9492ce0622df/stock_prediction/django/myblog/blog/static/blog/bootstrap/img/background1.jpg -------------------------------------------------------------------------------- /stock_prediction/django/myblog/blog/static/blog/bootstrap/img/presult.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhengguowei/stock_prediction/ee12d70c0cef25866e0c2c773a1a9492ce0622df/stock_prediction/django/myblog/blog/static/blog/bootstrap/img/presult.jpg -------------------------------------------------------------------------------- /stock_prediction/django/myblog/blog/static/blog/bootstrap/img/stock.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhengguowei/stock_prediction/ee12d70c0cef25866e0c2c773a1a9492ce0622df/stock_prediction/django/myblog/blog/static/blog/bootstrap/img/stock.gif -------------------------------------------------------------------------------- /stock_prediction/django/myblog/blog/static/blog/bootstrap/img/stock.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhengguowei/stock_prediction/ee12d70c0cef25866e0c2c773a1a9492ce0622df/stock_prediction/django/myblog/blog/static/blog/bootstrap/img/stock.jpg -------------------------------------------------------------------------------- /stock_prediction/django/myblog/blog/static/blog/bootstrap/js/bootstrap.min.js: -------------------------------------------------------------------------------- 1 | /*! 2 | * Bootstrap v3.3.7 (http://getbootstrap.com) 3 | * Copyright 2011-2016 Twitter, Inc. 4 | * Licensed under the MIT license 5 | */ 6 | if("undefined"==typeof jQuery)throw new Error("Bootstrap's JavaScript requires jQuery");+function(a){"use strict";var b=a.fn.jquery.split(" ")[0].split(".");if(b[0]<2&&b[1]<9||1==b[0]&&9==b[1]&&b[2]<1||b[0]>3)throw new Error("Bootstrap's JavaScript requires jQuery version 1.9.1 or higher, but lower than version 4")}(jQuery),+function(a){"use strict";function b(){var a=document.createElement("bootstrap"),b={WebkitTransition:"webkitTransitionEnd",MozTransition:"transitionend",OTransition:"oTransitionEnd otransitionend",transition:"transitionend"};for(var c in b)if(void 0!==a.style[c])return{end:b[c]};return!1}a.fn.emulateTransitionEnd=function(b){var c=!1,d=this;a(this).one("bsTransitionEnd",function(){c=!0});var e=function(){c||a(d).trigger(a.support.transition.end)};return setTimeout(e,b),this},a(function(){a.support.transition=b(),a.support.transition&&(a.event.special.bsTransitionEnd={bindType:a.support.transition.end,delegateType:a.support.transition.end,handle:function(b){if(a(b.target).is(this))return b.handleObj.handler.apply(this,arguments)}})})}(jQuery),+function(a){"use strict";function b(b){return this.each(function(){var c=a(this),e=c.data("bs.alert");e||c.data("bs.alert",e=new d(this)),"string"==typeof b&&e[b].call(c)})}var c='[data-dismiss="alert"]',d=function(b){a(b).on("click",c,this.close)};d.VERSION="3.3.7",d.TRANSITION_DURATION=150,d.prototype.close=function(b){function c(){g.detach().trigger("closed.bs.alert").remove()}var e=a(this),f=e.attr("data-target");f||(f=e.attr("href"),f=f&&f.replace(/.*(?=#[^\s]*$)/,""));var g=a("#"===f?[]:f);b&&b.preventDefault(),g.length||(g=e.closest(".alert")),g.trigger(b=a.Event("close.bs.alert")),b.isDefaultPrevented()||(g.removeClass("in"),a.support.transition&&g.hasClass("fade")?g.one("bsTransitionEnd",c).emulateTransitionEnd(d.TRANSITION_DURATION):c())};var e=a.fn.alert;a.fn.alert=b,a.fn.alert.Constructor=d,a.fn.alert.noConflict=function(){return a.fn.alert=e,this},a(document).on("click.bs.alert.data-api",c,d.prototype.close)}(jQuery),+function(a){"use strict";function b(b){return this.each(function(){var d=a(this),e=d.data("bs.button"),f="object"==typeof b&&b;e||d.data("bs.button",e=new c(this,f)),"toggle"==b?e.toggle():b&&e.setState(b)})}var c=function(b,d){this.$element=a(b),this.options=a.extend({},c.DEFAULTS,d),this.isLoading=!1};c.VERSION="3.3.7",c.DEFAULTS={loadingText:"loading..."},c.prototype.setState=function(b){var c="disabled",d=this.$element,e=d.is("input")?"val":"html",f=d.data();b+="Text",null==f.resetText&&d.data("resetText",d[e]()),setTimeout(a.proxy(function(){d[e](null==f[b]?this.options[b]:f[b]),"loadingText"==b?(this.isLoading=!0,d.addClass(c).attr(c,c).prop(c,!0)):this.isLoading&&(this.isLoading=!1,d.removeClass(c).removeAttr(c).prop(c,!1))},this),0)},c.prototype.toggle=function(){var a=!0,b=this.$element.closest('[data-toggle="buttons"]');if(b.length){var c=this.$element.find("input");"radio"==c.prop("type")?(c.prop("checked")&&(a=!1),b.find(".active").removeClass("active"),this.$element.addClass("active")):"checkbox"==c.prop("type")&&(c.prop("checked")!==this.$element.hasClass("active")&&(a=!1),this.$element.toggleClass("active")),c.prop("checked",this.$element.hasClass("active")),a&&c.trigger("change")}else this.$element.attr("aria-pressed",!this.$element.hasClass("active")),this.$element.toggleClass("active")};var d=a.fn.button;a.fn.button=b,a.fn.button.Constructor=c,a.fn.button.noConflict=function(){return a.fn.button=d,this},a(document).on("click.bs.button.data-api",'[data-toggle^="button"]',function(c){var d=a(c.target).closest(".btn");b.call(d,"toggle"),a(c.target).is('input[type="radio"], input[type="checkbox"]')||(c.preventDefault(),d.is("input,button")?d.trigger("focus"):d.find("input:visible,button:visible").first().trigger("focus"))}).on("focus.bs.button.data-api blur.bs.button.data-api",'[data-toggle^="button"]',function(b){a(b.target).closest(".btn").toggleClass("focus",/^focus(in)?$/.test(b.type))})}(jQuery),+function(a){"use strict";function b(b){return this.each(function(){var d=a(this),e=d.data("bs.carousel"),f=a.extend({},c.DEFAULTS,d.data(),"object"==typeof b&&b),g="string"==typeof b?b:f.slide;e||d.data("bs.carousel",e=new c(this,f)),"number"==typeof b?e.to(b):g?e[g]():f.interval&&e.pause().cycle()})}var c=function(b,c){this.$element=a(b),this.$indicators=this.$element.find(".carousel-indicators"),this.options=c,this.paused=null,this.sliding=null,this.interval=null,this.$active=null,this.$items=null,this.options.keyboard&&this.$element.on("keydown.bs.carousel",a.proxy(this.keydown,this)),"hover"==this.options.pause&&!("ontouchstart"in document.documentElement)&&this.$element.on("mouseenter.bs.carousel",a.proxy(this.pause,this)).on("mouseleave.bs.carousel",a.proxy(this.cycle,this))};c.VERSION="3.3.7",c.TRANSITION_DURATION=600,c.DEFAULTS={interval:5e3,pause:"hover",wrap:!0,keyboard:!0},c.prototype.keydown=function(a){if(!/input|textarea/i.test(a.target.tagName)){switch(a.which){case 37:this.prev();break;case 39:this.next();break;default:return}a.preventDefault()}},c.prototype.cycle=function(b){return b||(this.paused=!1),this.interval&&clearInterval(this.interval),this.options.interval&&!this.paused&&(this.interval=setInterval(a.proxy(this.next,this),this.options.interval)),this},c.prototype.getItemIndex=function(a){return this.$items=a.parent().children(".item"),this.$items.index(a||this.$active)},c.prototype.getItemForDirection=function(a,b){var c=this.getItemIndex(b),d="prev"==a&&0===c||"next"==a&&c==this.$items.length-1;if(d&&!this.options.wrap)return b;var e="prev"==a?-1:1,f=(c+e)%this.$items.length;return this.$items.eq(f)},c.prototype.to=function(a){var b=this,c=this.getItemIndex(this.$active=this.$element.find(".item.active"));if(!(a>this.$items.length-1||a<0))return this.sliding?this.$element.one("slid.bs.carousel",function(){b.to(a)}):c==a?this.pause().cycle():this.slide(a>c?"next":"prev",this.$items.eq(a))},c.prototype.pause=function(b){return b||(this.paused=!0),this.$element.find(".next, .prev").length&&a.support.transition&&(this.$element.trigger(a.support.transition.end),this.cycle(!0)),this.interval=clearInterval(this.interval),this},c.prototype.next=function(){if(!this.sliding)return this.slide("next")},c.prototype.prev=function(){if(!this.sliding)return this.slide("prev")},c.prototype.slide=function(b,d){var e=this.$element.find(".item.active"),f=d||this.getItemForDirection(b,e),g=this.interval,h="next"==b?"left":"right",i=this;if(f.hasClass("active"))return this.sliding=!1;var j=f[0],k=a.Event("slide.bs.carousel",{relatedTarget:j,direction:h});if(this.$element.trigger(k),!k.isDefaultPrevented()){if(this.sliding=!0,g&&this.pause(),this.$indicators.length){this.$indicators.find(".active").removeClass("active");var l=a(this.$indicators.children()[this.getItemIndex(f)]);l&&l.addClass("active")}var m=a.Event("slid.bs.carousel",{relatedTarget:j,direction:h});return a.support.transition&&this.$element.hasClass("slide")?(f.addClass(b),f[0].offsetWidth,e.addClass(h),f.addClass(h),e.one("bsTransitionEnd",function(){f.removeClass([b,h].join(" ")).addClass("active"),e.removeClass(["active",h].join(" ")),i.sliding=!1,setTimeout(function(){i.$element.trigger(m)},0)}).emulateTransitionEnd(c.TRANSITION_DURATION)):(e.removeClass("active"),f.addClass("active"),this.sliding=!1,this.$element.trigger(m)),g&&this.cycle(),this}};var d=a.fn.carousel;a.fn.carousel=b,a.fn.carousel.Constructor=c,a.fn.carousel.noConflict=function(){return a.fn.carousel=d,this};var e=function(c){var d,e=a(this),f=a(e.attr("data-target")||(d=e.attr("href"))&&d.replace(/.*(?=#[^\s]+$)/,""));if(f.hasClass("carousel")){var g=a.extend({},f.data(),e.data()),h=e.attr("data-slide-to");h&&(g.interval=!1),b.call(f,g),h&&f.data("bs.carousel").to(h),c.preventDefault()}};a(document).on("click.bs.carousel.data-api","[data-slide]",e).on("click.bs.carousel.data-api","[data-slide-to]",e),a(window).on("load",function(){a('[data-ride="carousel"]').each(function(){var c=a(this);b.call(c,c.data())})})}(jQuery),+function(a){"use strict";function b(b){var c,d=b.attr("data-target")||(c=b.attr("href"))&&c.replace(/.*(?=#[^\s]+$)/,"");return a(d)}function c(b){return this.each(function(){var c=a(this),e=c.data("bs.collapse"),f=a.extend({},d.DEFAULTS,c.data(),"object"==typeof b&&b);!e&&f.toggle&&/show|hide/.test(b)&&(f.toggle=!1),e||c.data("bs.collapse",e=new d(this,f)),"string"==typeof b&&e[b]()})}var d=function(b,c){this.$element=a(b),this.options=a.extend({},d.DEFAULTS,c),this.$trigger=a('[data-toggle="collapse"][href="#'+b.id+'"],[data-toggle="collapse"][data-target="#'+b.id+'"]'),this.transitioning=null,this.options.parent?this.$parent=this.getParent():this.addAriaAndCollapsedClass(this.$element,this.$trigger),this.options.toggle&&this.toggle()};d.VERSION="3.3.7",d.TRANSITION_DURATION=350,d.DEFAULTS={toggle:!0},d.prototype.dimension=function(){var a=this.$element.hasClass("width");return a?"width":"height"},d.prototype.show=function(){if(!this.transitioning&&!this.$element.hasClass("in")){var b,e=this.$parent&&this.$parent.children(".panel").children(".in, .collapsing");if(!(e&&e.length&&(b=e.data("bs.collapse"),b&&b.transitioning))){var f=a.Event("show.bs.collapse");if(this.$element.trigger(f),!f.isDefaultPrevented()){e&&e.length&&(c.call(e,"hide"),b||e.data("bs.collapse",null));var g=this.dimension();this.$element.removeClass("collapse").addClass("collapsing")[g](0).attr("aria-expanded",!0),this.$trigger.removeClass("collapsed").attr("aria-expanded",!0),this.transitioning=1;var h=function(){this.$element.removeClass("collapsing").addClass("collapse in")[g](""),this.transitioning=0,this.$element.trigger("shown.bs.collapse")};if(!a.support.transition)return h.call(this);var i=a.camelCase(["scroll",g].join("-"));this.$element.one("bsTransitionEnd",a.proxy(h,this)).emulateTransitionEnd(d.TRANSITION_DURATION)[g](this.$element[0][i])}}}},d.prototype.hide=function(){if(!this.transitioning&&this.$element.hasClass("in")){var b=a.Event("hide.bs.collapse");if(this.$element.trigger(b),!b.isDefaultPrevented()){var c=this.dimension();this.$element[c](this.$element[c]())[0].offsetHeight,this.$element.addClass("collapsing").removeClass("collapse in").attr("aria-expanded",!1),this.$trigger.addClass("collapsed").attr("aria-expanded",!1),this.transitioning=1;var e=function(){this.transitioning=0,this.$element.removeClass("collapsing").addClass("collapse").trigger("hidden.bs.collapse")};return a.support.transition?void this.$element[c](0).one("bsTransitionEnd",a.proxy(e,this)).emulateTransitionEnd(d.TRANSITION_DURATION):e.call(this)}}},d.prototype.toggle=function(){this[this.$element.hasClass("in")?"hide":"show"]()},d.prototype.getParent=function(){return a(this.options.parent).find('[data-toggle="collapse"][data-parent="'+this.options.parent+'"]').each(a.proxy(function(c,d){var e=a(d);this.addAriaAndCollapsedClass(b(e),e)},this)).end()},d.prototype.addAriaAndCollapsedClass=function(a,b){var c=a.hasClass("in");a.attr("aria-expanded",c),b.toggleClass("collapsed",!c).attr("aria-expanded",c)};var e=a.fn.collapse;a.fn.collapse=c,a.fn.collapse.Constructor=d,a.fn.collapse.noConflict=function(){return a.fn.collapse=e,this},a(document).on("click.bs.collapse.data-api",'[data-toggle="collapse"]',function(d){var e=a(this);e.attr("data-target")||d.preventDefault();var f=b(e),g=f.data("bs.collapse"),h=g?"toggle":e.data();c.call(f,h)})}(jQuery),+function(a){"use strict";function b(b){var c=b.attr("data-target");c||(c=b.attr("href"),c=c&&/#[A-Za-z]/.test(c)&&c.replace(/.*(?=#[^\s]*$)/,""));var d=c&&a(c);return d&&d.length?d:b.parent()}function c(c){c&&3===c.which||(a(e).remove(),a(f).each(function(){var d=a(this),e=b(d),f={relatedTarget:this};e.hasClass("open")&&(c&&"click"==c.type&&/input|textarea/i.test(c.target.tagName)&&a.contains(e[0],c.target)||(e.trigger(c=a.Event("hide.bs.dropdown",f)),c.isDefaultPrevented()||(d.attr("aria-expanded","false"),e.removeClass("open").trigger(a.Event("hidden.bs.dropdown",f)))))}))}function d(b){return this.each(function(){var c=a(this),d=c.data("bs.dropdown");d||c.data("bs.dropdown",d=new g(this)),"string"==typeof b&&d[b].call(c)})}var e=".dropdown-backdrop",f='[data-toggle="dropdown"]',g=function(b){a(b).on("click.bs.dropdown",this.toggle)};g.VERSION="3.3.7",g.prototype.toggle=function(d){var e=a(this);if(!e.is(".disabled, :disabled")){var f=b(e),g=f.hasClass("open");if(c(),!g){"ontouchstart"in document.documentElement&&!f.closest(".navbar-nav").length&&a(document.createElement("div")).addClass("dropdown-backdrop").insertAfter(a(this)).on("click",c);var h={relatedTarget:this};if(f.trigger(d=a.Event("show.bs.dropdown",h)),d.isDefaultPrevented())return;e.trigger("focus").attr("aria-expanded","true"),f.toggleClass("open").trigger(a.Event("shown.bs.dropdown",h))}return!1}},g.prototype.keydown=function(c){if(/(38|40|27|32)/.test(c.which)&&!/input|textarea/i.test(c.target.tagName)){var d=a(this);if(c.preventDefault(),c.stopPropagation(),!d.is(".disabled, :disabled")){var e=b(d),g=e.hasClass("open");if(!g&&27!=c.which||g&&27==c.which)return 27==c.which&&e.find(f).trigger("focus"),d.trigger("click");var h=" li:not(.disabled):visible a",i=e.find(".dropdown-menu"+h);if(i.length){var j=i.index(c.target);38==c.which&&j>0&&j--,40==c.which&&jdocument.documentElement.clientHeight;this.$element.css({paddingLeft:!this.bodyIsOverflowing&&a?this.scrollbarWidth:"",paddingRight:this.bodyIsOverflowing&&!a?this.scrollbarWidth:""})},c.prototype.resetAdjustments=function(){this.$element.css({paddingLeft:"",paddingRight:""})},c.prototype.checkScrollbar=function(){var a=window.innerWidth;if(!a){var b=document.documentElement.getBoundingClientRect();a=b.right-Math.abs(b.left)}this.bodyIsOverflowing=document.body.clientWidth
',trigger:"hover focus",title:"",delay:0,html:!1,container:!1,viewport:{selector:"body",padding:0}},c.prototype.init=function(b,c,d){if(this.enabled=!0,this.type=b,this.$element=a(c),this.options=this.getOptions(d),this.$viewport=this.options.viewport&&a(a.isFunction(this.options.viewport)?this.options.viewport.call(this,this.$element):this.options.viewport.selector||this.options.viewport),this.inState={click:!1,hover:!1,focus:!1},this.$element[0]instanceof document.constructor&&!this.options.selector)throw new Error("`selector` option must be specified when initializing "+this.type+" on the window.document object!");for(var e=this.options.trigger.split(" "),f=e.length;f--;){var g=e[f];if("click"==g)this.$element.on("click."+this.type,this.options.selector,a.proxy(this.toggle,this));else if("manual"!=g){var h="hover"==g?"mouseenter":"focusin",i="hover"==g?"mouseleave":"focusout";this.$element.on(h+"."+this.type,this.options.selector,a.proxy(this.enter,this)),this.$element.on(i+"."+this.type,this.options.selector,a.proxy(this.leave,this))}}this.options.selector?this._options=a.extend({},this.options,{trigger:"manual",selector:""}):this.fixTitle()},c.prototype.getDefaults=function(){return c.DEFAULTS},c.prototype.getOptions=function(b){return b=a.extend({},this.getDefaults(),this.$element.data(),b),b.delay&&"number"==typeof b.delay&&(b.delay={show:b.delay,hide:b.delay}),b},c.prototype.getDelegateOptions=function(){var b={},c=this.getDefaults();return this._options&&a.each(this._options,function(a,d){c[a]!=d&&(b[a]=d)}),b},c.prototype.enter=function(b){var c=b instanceof this.constructor?b:a(b.currentTarget).data("bs."+this.type);return c||(c=new this.constructor(b.currentTarget,this.getDelegateOptions()),a(b.currentTarget).data("bs."+this.type,c)),b instanceof a.Event&&(c.inState["focusin"==b.type?"focus":"hover"]=!0),c.tip().hasClass("in")||"in"==c.hoverState?void(c.hoverState="in"):(clearTimeout(c.timeout),c.hoverState="in",c.options.delay&&c.options.delay.show?void(c.timeout=setTimeout(function(){"in"==c.hoverState&&c.show()},c.options.delay.show)):c.show())},c.prototype.isInStateTrue=function(){for(var a in this.inState)if(this.inState[a])return!0;return!1},c.prototype.leave=function(b){var c=b instanceof this.constructor?b:a(b.currentTarget).data("bs."+this.type);if(c||(c=new this.constructor(b.currentTarget,this.getDelegateOptions()),a(b.currentTarget).data("bs."+this.type,c)),b instanceof a.Event&&(c.inState["focusout"==b.type?"focus":"hover"]=!1),!c.isInStateTrue())return clearTimeout(c.timeout),c.hoverState="out",c.options.delay&&c.options.delay.hide?void(c.timeout=setTimeout(function(){"out"==c.hoverState&&c.hide()},c.options.delay.hide)):c.hide()},c.prototype.show=function(){var b=a.Event("show.bs."+this.type);if(this.hasContent()&&this.enabled){this.$element.trigger(b);var d=a.contains(this.$element[0].ownerDocument.documentElement,this.$element[0]);if(b.isDefaultPrevented()||!d)return;var e=this,f=this.tip(),g=this.getUID(this.type);this.setContent(),f.attr("id",g),this.$element.attr("aria-describedby",g),this.options.animation&&f.addClass("fade");var h="function"==typeof this.options.placement?this.options.placement.call(this,f[0],this.$element[0]):this.options.placement,i=/\s?auto?\s?/i,j=i.test(h);j&&(h=h.replace(i,"")||"top"),f.detach().css({top:0,left:0,display:"block"}).addClass(h).data("bs."+this.type,this),this.options.container?f.appendTo(this.options.container):f.insertAfter(this.$element),this.$element.trigger("inserted.bs."+this.type);var k=this.getPosition(),l=f[0].offsetWidth,m=f[0].offsetHeight;if(j){var n=h,o=this.getPosition(this.$viewport);h="bottom"==h&&k.bottom+m>o.bottom?"top":"top"==h&&k.top-mo.width?"left":"left"==h&&k.left-lg.top+g.height&&(e.top=g.top+g.height-i)}else{var j=b.left-f,k=b.left+f+c;jg.right&&(e.left=g.left+g.width-k)}return e},c.prototype.getTitle=function(){var a,b=this.$element,c=this.options;return a=b.attr("data-original-title")||("function"==typeof c.title?c.title.call(b[0]):c.title)},c.prototype.getUID=function(a){do a+=~~(1e6*Math.random());while(document.getElementById(a));return a},c.prototype.tip=function(){if(!this.$tip&&(this.$tip=a(this.options.template),1!=this.$tip.length))throw new Error(this.type+" `template` option must consist of exactly 1 top-level element!");return this.$tip},c.prototype.arrow=function(){return this.$arrow=this.$arrow||this.tip().find(".tooltip-arrow")},c.prototype.enable=function(){this.enabled=!0},c.prototype.disable=function(){this.enabled=!1},c.prototype.toggleEnabled=function(){this.enabled=!this.enabled},c.prototype.toggle=function(b){var c=this;b&&(c=a(b.currentTarget).data("bs."+this.type),c||(c=new this.constructor(b.currentTarget,this.getDelegateOptions()),a(b.currentTarget).data("bs."+this.type,c))),b?(c.inState.click=!c.inState.click,c.isInStateTrue()?c.enter(c):c.leave(c)):c.tip().hasClass("in")?c.leave(c):c.enter(c)},c.prototype.destroy=function(){var a=this;clearTimeout(this.timeout),this.hide(function(){a.$element.off("."+a.type).removeData("bs."+a.type),a.$tip&&a.$tip.detach(),a.$tip=null,a.$arrow=null,a.$viewport=null,a.$element=null})};var d=a.fn.tooltip;a.fn.tooltip=b,a.fn.tooltip.Constructor=c,a.fn.tooltip.noConflict=function(){return a.fn.tooltip=d,this}}(jQuery),+function(a){"use strict";function b(b){return this.each(function(){var d=a(this),e=d.data("bs.popover"),f="object"==typeof b&&b;!e&&/destroy|hide/.test(b)||(e||d.data("bs.popover",e=new c(this,f)),"string"==typeof b&&e[b]())})}var c=function(a,b){this.init("popover",a,b)};if(!a.fn.tooltip)throw new Error("Popover requires tooltip.js");c.VERSION="3.3.7",c.DEFAULTS=a.extend({},a.fn.tooltip.Constructor.DEFAULTS,{placement:"right",trigger:"click",content:"",template:''}),c.prototype=a.extend({},a.fn.tooltip.Constructor.prototype),c.prototype.constructor=c,c.prototype.getDefaults=function(){return c.DEFAULTS},c.prototype.setContent=function(){var a=this.tip(),b=this.getTitle(),c=this.getContent();a.find(".popover-title")[this.options.html?"html":"text"](b),a.find(".popover-content").children().detach().end()[this.options.html?"string"==typeof c?"html":"append":"text"](c),a.removeClass("fade top bottom left right in"),a.find(".popover-title").html()||a.find(".popover-title").hide()},c.prototype.hasContent=function(){return this.getTitle()||this.getContent()},c.prototype.getContent=function(){var a=this.$element,b=this.options;return a.attr("data-content")||("function"==typeof b.content?b.content.call(a[0]):b.content)},c.prototype.arrow=function(){return this.$arrow=this.$arrow||this.tip().find(".arrow")};var d=a.fn.popover;a.fn.popover=b,a.fn.popover.Constructor=c,a.fn.popover.noConflict=function(){return a.fn.popover=d,this}}(jQuery),+function(a){"use strict";function b(c,d){this.$body=a(document.body),this.$scrollElement=a(a(c).is(document.body)?window:c),this.options=a.extend({},b.DEFAULTS,d),this.selector=(this.options.target||"")+" .nav li > a",this.offsets=[],this.targets=[],this.activeTarget=null,this.scrollHeight=0,this.$scrollElement.on("scroll.bs.scrollspy",a.proxy(this.process,this)),this.refresh(),this.process()}function c(c){return this.each(function(){var d=a(this),e=d.data("bs.scrollspy"),f="object"==typeof c&&c;e||d.data("bs.scrollspy",e=new b(this,f)),"string"==typeof c&&e[c]()})}b.VERSION="3.3.7",b.DEFAULTS={offset:10},b.prototype.getScrollHeight=function(){return this.$scrollElement[0].scrollHeight||Math.max(this.$body[0].scrollHeight,document.documentElement.scrollHeight)},b.prototype.refresh=function(){var b=this,c="offset",d=0;this.offsets=[],this.targets=[],this.scrollHeight=this.getScrollHeight(),a.isWindow(this.$scrollElement[0])||(c="position",d=this.$scrollElement.scrollTop()),this.$body.find(this.selector).map(function(){var b=a(this),e=b.data("target")||b.attr("href"),f=/^#./.test(e)&&a(e);return f&&f.length&&f.is(":visible")&&[[f[c]().top+d,e]]||null}).sort(function(a,b){return a[0]-b[0]}).each(function(){b.offsets.push(this[0]),b.targets.push(this[1])})},b.prototype.process=function(){var a,b=this.$scrollElement.scrollTop()+this.options.offset,c=this.getScrollHeight(),d=this.options.offset+c-this.$scrollElement.height(),e=this.offsets,f=this.targets,g=this.activeTarget;if(this.scrollHeight!=c&&this.refresh(),b>=d)return g!=(a=f[f.length-1])&&this.activate(a);if(g&&b=e[a]&&(void 0===e[a+1]||b .dropdown-menu > .active").removeClass("active").end().find('[data-toggle="tab"]').attr("aria-expanded",!1),b.addClass("active").find('[data-toggle="tab"]').attr("aria-expanded",!0),h?(b[0].offsetWidth,b.addClass("in")):b.removeClass("fade"),b.parent(".dropdown-menu").length&&b.closest("li.dropdown").addClass("active").end().find('[data-toggle="tab"]').attr("aria-expanded",!0),e&&e()}var g=d.find("> .active"),h=e&&a.support.transition&&(g.length&&g.hasClass("fade")||!!d.find("> .fade").length);g.length&&h?g.one("bsTransitionEnd",f).emulateTransitionEnd(c.TRANSITION_DURATION):f(),g.removeClass("in")};var d=a.fn.tab;a.fn.tab=b,a.fn.tab.Constructor=c,a.fn.tab.noConflict=function(){return a.fn.tab=d,this};var e=function(c){c.preventDefault(),b.call(a(this),"show")};a(document).on("click.bs.tab.data-api",'[data-toggle="tab"]',e).on("click.bs.tab.data-api",'[data-toggle="pill"]',e)}(jQuery),+function(a){"use strict";function b(b){return this.each(function(){var d=a(this),e=d.data("bs.affix"),f="object"==typeof b&&b;e||d.data("bs.affix",e=new c(this,f)),"string"==typeof b&&e[b]()})}var c=function(b,d){this.options=a.extend({},c.DEFAULTS,d),this.$target=a(this.options.target).on("scroll.bs.affix.data-api",a.proxy(this.checkPosition,this)).on("click.bs.affix.data-api",a.proxy(this.checkPositionWithEventLoop,this)),this.$element=a(b),this.affixed=null,this.unpin=null,this.pinnedOffset=null,this.checkPosition()};c.VERSION="3.3.7",c.RESET="affix affix-top affix-bottom",c.DEFAULTS={offset:0,target:window},c.prototype.getState=function(a,b,c,d){var e=this.$target.scrollTop(),f=this.$element.offset(),g=this.$target.height();if(null!=c&&"top"==this.affixed)return e=a-d&&"bottom"},c.prototype.getPinnedOffset=function(){if(this.pinnedOffset)return this.pinnedOffset;this.$element.removeClass(c.RESET).addClass("affix");var a=this.$target.scrollTop(),b=this.$element.offset();return this.pinnedOffset=b.top-a},c.prototype.checkPositionWithEventLoop=function(){setTimeout(a.proxy(this.checkPosition,this),1)},c.prototype.checkPosition=function(){if(this.$element.is(":visible")){var b=this.$element.height(),d=this.options.offset,e=d.top,f=d.bottom,g=Math.max(a(document).height(),a(document.body).height());"object"!=typeof d&&(f=e=d),"function"==typeof e&&(e=d.top(this.$element)),"function"==typeof f&&(f=d.bottom(this.$element));var h=this.getState(g,b,e,f);if(this.affixed!=h){null!=this.unpin&&this.$element.css("top","");var i="affix"+(h?"-"+h:""),j=a.Event(i+".bs.affix");if(this.$element.trigger(j),j.isDefaultPrevented())return;this.affixed=h,this.unpin="bottom"==h?this.getPinnedOffset():null,this.$element.removeClass(c.RESET).addClass(i).trigger(i.replace("affix","affixed")+".bs.affix")}"bottom"==h&&this.$element.offset({top:g-b-f})}};var d=a.fn.affix;a.fn.affix=b,a.fn.affix.Constructor=c,a.fn.affix.noConflict=function(){return a.fn.affix=d,this},a(window).on("load",function(){a('[data-spy="affix"]').each(function(){var c=a(this),d=c.data();d.offset=d.offset||{},null!=d.offsetBottom&&(d.offset.bottom=d.offsetBottom),null!=d.offsetTop&&(d.offset.top=d.offsetTop),b.call(c,d)})})}(jQuery); -------------------------------------------------------------------------------- /stock_prediction/django/myblog/blog/static/datetimepicker/jquery.datetimepicker.css: -------------------------------------------------------------------------------- 1 | .xdsoft_datetimepicker { 2 | box-shadow: 0 5px 15px -5px rgba(0, 0, 0, 0.506); 3 | background: #fff; 4 | border-bottom: 1px solid #bbb; 5 | border-left: 1px solid #ccc; 6 | border-right: 1px solid #ccc; 7 | border-top: 1px solid #ccc; 8 | color: #333; 9 | font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; 10 | padding: 8px; 11 | padding-left: 0; 12 | padding-top: 2px; 13 | position: absolute; 14 | z-index: 9999; 15 | -moz-box-sizing: border-box; 16 | box-sizing: border-box; 17 | display: none; 18 | } 19 | .xdsoft_datetimepicker.xdsoft_rtl { 20 | padding: 8px 0 8px 8px; 21 | } 22 | 23 | .xdsoft_datetimepicker iframe { 24 | position: absolute; 25 | left: 0; 26 | top: 0; 27 | width: 75px; 28 | height: 210px; 29 | background: transparent; 30 | border: none; 31 | } 32 | 33 | /*For IE8 or lower*/ 34 | .xdsoft_datetimepicker button { 35 | border: none !important; 36 | } 37 | 38 | .xdsoft_noselect { 39 | -webkit-touch-callout: none; 40 | -webkit-user-select: none; 41 | -khtml-user-select: none; 42 | -moz-user-select: none; 43 | -ms-user-select: none; 44 | -o-user-select: none; 45 | user-select: none; 46 | } 47 | 48 | .xdsoft_noselect::selection { background: transparent } 49 | .xdsoft_noselect::-moz-selection { background: transparent } 50 | 51 | .xdsoft_datetimepicker.xdsoft_inline { 52 | display: inline-block; 53 | position: static; 54 | box-shadow: none; 55 | } 56 | 57 | .xdsoft_datetimepicker * { 58 | -moz-box-sizing: border-box; 59 | box-sizing: border-box; 60 | padding: 0; 61 | margin: 0; 62 | } 63 | 64 | .xdsoft_datetimepicker .xdsoft_datepicker, .xdsoft_datetimepicker .xdsoft_timepicker { 65 | display: none; 66 | } 67 | 68 | .xdsoft_datetimepicker .xdsoft_datepicker.active, .xdsoft_datetimepicker .xdsoft_timepicker.active { 69 | display: block; 70 | } 71 | 72 | .xdsoft_datetimepicker .xdsoft_datepicker { 73 | width: 224px; 74 | float: left; 75 | margin-left: 8px; 76 | } 77 | .xdsoft_datetimepicker.xdsoft_rtl .xdsoft_datepicker { 78 | float: right; 79 | margin-right: 8px; 80 | margin-left: 0; 81 | } 82 | 83 | .xdsoft_datetimepicker.xdsoft_showweeks .xdsoft_datepicker { 84 | width: 256px; 85 | } 86 | 87 | .xdsoft_datetimepicker .xdsoft_timepicker { 88 | width: 58px; 89 | float: left; 90 | text-align: center; 91 | margin-left: 8px; 92 | margin-top: 0; 93 | } 94 | .xdsoft_datetimepicker.xdsoft_rtl .xdsoft_timepicker { 95 | float: right; 96 | margin-right: 8px; 97 | margin-left: 0; 98 | } 99 | 100 | .xdsoft_datetimepicker .xdsoft_datepicker.active+.xdsoft_timepicker { 101 | margin-top: 8px; 102 | margin-bottom: 3px 103 | } 104 | 105 | .xdsoft_datetimepicker .xdsoft_mounthpicker { 106 | position: relative; 107 | text-align: center; 108 | } 109 | 110 | .xdsoft_datetimepicker .xdsoft_label i, 111 | .xdsoft_datetimepicker .xdsoft_prev, 112 | .xdsoft_datetimepicker .xdsoft_next, 113 | .xdsoft_datetimepicker .xdsoft_today_button { 114 | background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGQAAAAeCAYAAADaW7vzAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyJpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoV2luZG93cykiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6Q0NBRjI1NjM0M0UwMTFFNDk4NkFGMzJFQkQzQjEwRUIiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6Q0NBRjI1NjQ0M0UwMTFFNDk4NkFGMzJFQkQzQjEwRUIiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDpDQ0FGMjU2MTQzRTAxMUU0OTg2QUYzMkVCRDNCMTBFQiIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDpDQ0FGMjU2MjQzRTAxMUU0OTg2QUYzMkVCRDNCMTBFQiIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PoNEP54AAAIOSURBVHja7Jq9TsMwEMcxrZD4WpBYeKUCe+kTMCACHZh4BFfHO/AAIHZGFhYkBBsSEqxsLCAgXKhbXYOTxh9pfJVP+qutnZ5s/5Lz2Y5I03QhWji2GIcgAokWgfCxNvcOCCGKqiSqhUp0laHOne05vdEyGMfkdxJDVjgwDlEQgYQBgx+ULJaWSXXS6r/ER5FBVR8VfGftTKcITNs+a1XpcFoExREIDF14AVIFxgQUS+h520cdud6wNkC0UBw6BCO/HoCYwBhD8QCkQ/x1mwDyD4plh4D6DDV0TAGyo4HcawLIBBSLDkHeH0Mg2yVP3l4TQMZQDDsEOl/MgHQqhMNuE0D+oBh0CIr8MAKyazBH9WyBuKxDWgbXfjNf32TZ1KWm/Ap1oSk/R53UtQ5xTh3LUlMmT8gt6g51Q9p+SobxgJQ/qmsfZhWywGFSl0yBjCLJCMgXail3b7+rumdVJ2YRss4cN+r6qAHDkPWjPjdJCF4n9RmAD/V9A/Wp4NQassDjwlB6XBiCxcJQWmZZb8THFilfy/lfrTvLghq2TqTHrRMTKNJ0sIhdo15RT+RpyWwFdY96UZ/LdQKBGjcXpcc1AlSFEfLmouD+1knuxBDUVrvOBmoOC/rEcN7OQxKVeJTCiAdUzUJhA2Oez9QTkp72OTVcxDcXY8iKNkxGAJXmJCOQwOa6dhyXsOa6XwEGAKdeb5ET3rQdAAAAAElFTkSuQmCC); 115 | } 116 | 117 | .xdsoft_datetimepicker .xdsoft_label i { 118 | opacity: 0.5; 119 | background-position: -92px -19px; 120 | display: inline-block; 121 | width: 9px; 122 | height: 20px; 123 | vertical-align: middle; 124 | } 125 | 126 | .xdsoft_datetimepicker .xdsoft_prev { 127 | float: left; 128 | background-position: -20px 0; 129 | } 130 | .xdsoft_datetimepicker .xdsoft_today_button { 131 | float: left; 132 | background-position: -70px 0; 133 | margin-left: 5px; 134 | } 135 | 136 | .xdsoft_datetimepicker .xdsoft_next { 137 | float: right; 138 | background-position: 0 0; 139 | } 140 | 141 | .xdsoft_datetimepicker .xdsoft_next, 142 | .xdsoft_datetimepicker .xdsoft_prev , 143 | .xdsoft_datetimepicker .xdsoft_today_button { 144 | background-color: transparent; 145 | background-repeat: no-repeat; 146 | border: 0 none; 147 | cursor: pointer; 148 | display: block; 149 | height: 30px; 150 | opacity: 0.5; 151 | -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=50)"; 152 | outline: medium none; 153 | overflow: hidden; 154 | padding: 0; 155 | position: relative; 156 | text-indent: 100%; 157 | white-space: nowrap; 158 | width: 20px; 159 | min-width: 0; 160 | } 161 | 162 | .xdsoft_datetimepicker .xdsoft_timepicker .xdsoft_prev, 163 | .xdsoft_datetimepicker .xdsoft_timepicker .xdsoft_next { 164 | float: none; 165 | background-position: -40px -15px; 166 | height: 15px; 167 | width: 30px; 168 | display: block; 169 | margin-left: 14px; 170 | margin-top: 7px; 171 | } 172 | .xdsoft_datetimepicker.xdsoft_rtl .xdsoft_timepicker .xdsoft_prev, 173 | .xdsoft_datetimepicker.xdsoft_rtl .xdsoft_timepicker .xdsoft_next { 174 | float: none; 175 | margin-left: 0; 176 | margin-right: 14px; 177 | } 178 | 179 | .xdsoft_datetimepicker .xdsoft_timepicker .xdsoft_prev { 180 | background-position: -40px 0; 181 | margin-bottom: 7px; 182 | margin-top: 0; 183 | } 184 | 185 | .xdsoft_datetimepicker .xdsoft_timepicker .xdsoft_time_box { 186 | height: 151px; 187 | overflow: hidden; 188 | border-bottom: 1px solid #ddd; 189 | } 190 | 191 | .xdsoft_datetimepicker .xdsoft_timepicker .xdsoft_time_box >div >div { 192 | background: #f5f5f5; 193 | border-top: 1px solid #ddd; 194 | color: #666; 195 | font-size: 12px; 196 | text-align: center; 197 | border-collapse: collapse; 198 | cursor: pointer; 199 | border-bottom-width: 0; 200 | height: 25px; 201 | line-height: 25px; 202 | } 203 | 204 | .xdsoft_datetimepicker .xdsoft_timepicker .xdsoft_time_box >div > div:first-child { 205 | border-top-width: 0; 206 | } 207 | 208 | .xdsoft_datetimepicker .xdsoft_today_button:hover, 209 | .xdsoft_datetimepicker .xdsoft_next:hover, 210 | .xdsoft_datetimepicker .xdsoft_prev:hover { 211 | opacity: 1; 212 | -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=100)"; 213 | } 214 | 215 | .xdsoft_datetimepicker .xdsoft_label { 216 | display: inline; 217 | position: relative; 218 | z-index: 9999; 219 | margin: 0; 220 | padding: 5px 3px; 221 | font-size: 14px; 222 | line-height: 20px; 223 | font-weight: bold; 224 | background-color: #fff; 225 | float: left; 226 | width: 182px; 227 | text-align: center; 228 | cursor: pointer; 229 | } 230 | 231 | .xdsoft_datetimepicker .xdsoft_label:hover>span { 232 | text-decoration: underline; 233 | } 234 | 235 | .xdsoft_datetimepicker .xdsoft_label:hover i { 236 | opacity: 1.0; 237 | } 238 | 239 | .xdsoft_datetimepicker .xdsoft_label > .xdsoft_select { 240 | border: 1px solid #ccc; 241 | position: absolute; 242 | right: 0; 243 | top: 30px; 244 | z-index: 101; 245 | display: none; 246 | background: #fff; 247 | max-height: 160px; 248 | overflow-y: hidden; 249 | } 250 | 251 | .xdsoft_datetimepicker .xdsoft_label > .xdsoft_select.xdsoft_monthselect{ right: -7px } 252 | .xdsoft_datetimepicker .xdsoft_label > .xdsoft_select.xdsoft_yearselect{ right: 2px } 253 | .xdsoft_datetimepicker .xdsoft_label > .xdsoft_select > div > .xdsoft_option:hover { 254 | color: #fff; 255 | background: #ff8000; 256 | } 257 | 258 | .xdsoft_datetimepicker .xdsoft_label > .xdsoft_select > div > .xdsoft_option { 259 | padding: 2px 10px 2px 5px; 260 | text-decoration: none !important; 261 | } 262 | 263 | .xdsoft_datetimepicker .xdsoft_label > .xdsoft_select > div > .xdsoft_option.xdsoft_current { 264 | background: #33aaff; 265 | box-shadow: #178fe5 0 1px 3px 0 inset; 266 | color: #fff; 267 | font-weight: 700; 268 | } 269 | 270 | .xdsoft_datetimepicker .xdsoft_month { 271 | width: 100px; 272 | text-align: right; 273 | } 274 | 275 | .xdsoft_datetimepicker .xdsoft_calendar { 276 | clear: both; 277 | } 278 | 279 | .xdsoft_datetimepicker .xdsoft_year{ 280 | width: 48px; 281 | margin-left: 5px; 282 | } 283 | 284 | .xdsoft_datetimepicker .xdsoft_calendar table { 285 | border-collapse: collapse; 286 | width: 100%; 287 | 288 | } 289 | 290 | .xdsoft_datetimepicker .xdsoft_calendar td > div { 291 | padding-right: 5px; 292 | } 293 | 294 | .xdsoft_datetimepicker .xdsoft_calendar th { 295 | height: 25px; 296 | } 297 | 298 | .xdsoft_datetimepicker .xdsoft_calendar td,.xdsoft_datetimepicker .xdsoft_calendar th { 299 | width: 14.2857142%; 300 | background: #f5f5f5; 301 | border: 1px solid #ddd; 302 | color: #666; 303 | font-size: 12px; 304 | text-align: right; 305 | vertical-align: middle; 306 | padding: 0; 307 | border-collapse: collapse; 308 | cursor: pointer; 309 | height: 25px; 310 | } 311 | .xdsoft_datetimepicker.xdsoft_showweeks .xdsoft_calendar td,.xdsoft_datetimepicker.xdsoft_showweeks .xdsoft_calendar th { 312 | width: 12.5%; 313 | } 314 | 315 | .xdsoft_datetimepicker .xdsoft_calendar th { 316 | background: #f1f1f1; 317 | } 318 | 319 | .xdsoft_datetimepicker .xdsoft_calendar td.xdsoft_today { 320 | color: #33aaff; 321 | } 322 | 323 | .xdsoft_datetimepicker .xdsoft_calendar td.xdsoft_highlighted_default { 324 | background: #ffe9d2; 325 | box-shadow: #ffb871 0 1px 4px 0 inset; 326 | color: #000; 327 | } 328 | .xdsoft_datetimepicker .xdsoft_calendar td.xdsoft_highlighted_mint { 329 | background: #c1ffc9; 330 | box-shadow: #00dd1c 0 1px 4px 0 inset; 331 | color: #000; 332 | } 333 | 334 | .xdsoft_datetimepicker .xdsoft_calendar td.xdsoft_default, 335 | .xdsoft_datetimepicker .xdsoft_calendar td.xdsoft_current, 336 | .xdsoft_datetimepicker .xdsoft_timepicker .xdsoft_time_box >div >div.xdsoft_current { 337 | background: #33aaff; 338 | box-shadow: #178fe5 0 1px 3px 0 inset; 339 | color: #fff; 340 | font-weight: 700; 341 | } 342 | 343 | .xdsoft_datetimepicker .xdsoft_calendar td.xdsoft_other_month, 344 | .xdsoft_datetimepicker .xdsoft_calendar td.xdsoft_disabled, 345 | .xdsoft_datetimepicker .xdsoft_time_box >div >div.xdsoft_disabled { 346 | opacity: 0.5; 347 | -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=50)"; 348 | cursor: default; 349 | } 350 | 351 | .xdsoft_datetimepicker .xdsoft_calendar td.xdsoft_other_month.xdsoft_disabled { 352 | opacity: 0.2; 353 | -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=20)"; 354 | } 355 | 356 | .xdsoft_datetimepicker .xdsoft_calendar td:hover, 357 | .xdsoft_datetimepicker .xdsoft_timepicker .xdsoft_time_box >div >div:hover { 358 | color: #fff !important; 359 | background: #ff8000 !important; 360 | box-shadow: none !important; 361 | } 362 | 363 | .xdsoft_datetimepicker .xdsoft_calendar td.xdsoft_current.xdsoft_disabled:hover, 364 | .xdsoft_datetimepicker .xdsoft_timepicker .xdsoft_time_box>div>div.xdsoft_current.xdsoft_disabled:hover { 365 | background: #33aaff !important; 366 | box-shadow: #178fe5 0 1px 3px 0 inset !important; 367 | color: #fff !important; 368 | } 369 | 370 | .xdsoft_datetimepicker .xdsoft_calendar td.xdsoft_disabled:hover, 371 | .xdsoft_datetimepicker .xdsoft_timepicker .xdsoft_time_box >div >div.xdsoft_disabled:hover { 372 | color: inherit !important; 373 | background: inherit !important; 374 | box-shadow: inherit !important; 375 | } 376 | 377 | .xdsoft_datetimepicker .xdsoft_calendar th { 378 | font-weight: 700; 379 | text-align: center; 380 | color: #999; 381 | cursor: default; 382 | } 383 | 384 | .xdsoft_datetimepicker .xdsoft_copyright { 385 | color: #ccc !important; 386 | font-size: 10px; 387 | clear: both; 388 | float: none; 389 | margin-left: 8px; 390 | } 391 | 392 | .xdsoft_datetimepicker .xdsoft_copyright a { color: #eee !important } 393 | .xdsoft_datetimepicker .xdsoft_copyright a:hover { color: #aaa !important } 394 | 395 | .xdsoft_time_box { 396 | position: relative; 397 | border: 1px solid #ccc; 398 | } 399 | .xdsoft_scrollbar >.xdsoft_scroller { 400 | background: #ccc !important; 401 | height: 20px; 402 | border-radius: 3px; 403 | } 404 | .xdsoft_scrollbar { 405 | position: absolute; 406 | width: 7px; 407 | right: 0; 408 | top: 0; 409 | bottom: 0; 410 | cursor: pointer; 411 | } 412 | .xdsoft_datetimepicker.xdsoft_rtl .xdsoft_scrollbar { 413 | left: 0; 414 | right: auto; 415 | } 416 | .xdsoft_scroller_box { 417 | position: relative; 418 | } 419 | 420 | .xdsoft_datetimepicker.xdsoft_dark { 421 | box-shadow: 0 5px 15px -5px rgba(255, 255, 255, 0.506); 422 | background: #000; 423 | border-bottom: 1px solid #444; 424 | border-left: 1px solid #333; 425 | border-right: 1px solid #333; 426 | border-top: 1px solid #333; 427 | color: #ccc; 428 | } 429 | 430 | .xdsoft_datetimepicker.xdsoft_dark .xdsoft_timepicker .xdsoft_time_box { 431 | border-bottom: 1px solid #222; 432 | } 433 | .xdsoft_datetimepicker.xdsoft_dark .xdsoft_timepicker .xdsoft_time_box >div >div { 434 | background: #0a0a0a; 435 | border-top: 1px solid #222; 436 | color: #999; 437 | } 438 | 439 | .xdsoft_datetimepicker.xdsoft_dark .xdsoft_label { 440 | background-color: #000; 441 | } 442 | .xdsoft_datetimepicker.xdsoft_dark .xdsoft_label > .xdsoft_select { 443 | border: 1px solid #333; 444 | background: #000; 445 | } 446 | 447 | .xdsoft_datetimepicker.xdsoft_dark .xdsoft_label > .xdsoft_select > div > .xdsoft_option:hover { 448 | color: #000; 449 | background: #007fff; 450 | } 451 | 452 | .xdsoft_datetimepicker.xdsoft_dark .xdsoft_label > .xdsoft_select > div > .xdsoft_option.xdsoft_current { 453 | background: #cc5500; 454 | box-shadow: #b03e00 0 1px 3px 0 inset; 455 | color: #000; 456 | } 457 | 458 | .xdsoft_datetimepicker.xdsoft_dark .xdsoft_label i, 459 | .xdsoft_datetimepicker.xdsoft_dark .xdsoft_prev, 460 | .xdsoft_datetimepicker.xdsoft_dark .xdsoft_next, 461 | .xdsoft_datetimepicker.xdsoft_dark .xdsoft_today_button { 462 | background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGQAAAAeCAYAAADaW7vzAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyJpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoV2luZG93cykiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6QUExQUUzOTA0M0UyMTFFNDlBM0FFQTJENTExRDVBODYiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6QUExQUUzOTE0M0UyMTFFNDlBM0FFQTJENTExRDVBODYiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDpBQTFBRTM4RTQzRTIxMUU0OUEzQUVBMkQ1MTFENUE4NiIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDpBQTFBRTM4RjQzRTIxMUU0OUEzQUVBMkQ1MTFENUE4NiIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/Pp0VxGEAAAIASURBVHja7JrNSgMxEMebtgh+3MSLr1T1Xn2CHoSKB08+QmR8Bx9A8e7RixdB9CKCoNdexIugxFlJa7rNZneTbLIpM/CnNLsdMvNjM8l0mRCiQ9Ye61IKCAgZAUnH+mU3MMZaHYChBnJUDzWOFZdVfc5+ZFLbrWDeXPwbxIqrLLfaeS0hEBVGIRQCEiZoHQwtlGSByCCdYBl8g8egTTAWoKQMRBRBcZxYlhzhKegqMOageErsCHVkk3hXIFooDgHB1KkHIHVgzKB4ADJQ/A1jAFmAYhkQqA5TOBtocrKrgXwQA8gcFIuAIO8sQSA7hidvPwaQGZSaAYHOUWJABhWWw2EMIH9QagQERU4SArJXo0ZZL18uvaxejXt/Em8xjVBXmvFr1KVm/AJ10tRe2XnraNqaJvKE3KHuUbfK1E+VHB0q40/y3sdQSxY4FHWeKJCunP8UyDdqJZenT3ntVV5jIYCAh20vT7ioP8tpf6E2lfEMwERe+whV1MHjwZB7PBiCxcGQWwKZKD62lfGNnP/1poFAA60T7rF1UgcKd2id3KDeUS+oLWV8DfWAepOfq00CgQabi9zjcgJVYVD7PVzQUAUGAQkbNJTBICDhgwYTjDYD6XeW08ZKh+A4pYkzenOxXUbvZcWz7E8ykRMnIHGX1XPl+1m2vPYpL+2qdb8CDAARlKFEz/ZVkAAAAABJRU5ErkJggg==); 463 | } 464 | 465 | .xdsoft_datetimepicker.xdsoft_dark .xdsoft_calendar td, 466 | .xdsoft_datetimepicker.xdsoft_dark .xdsoft_calendar th { 467 | background: #0a0a0a; 468 | border: 1px solid #222; 469 | color: #999; 470 | } 471 | 472 | .xdsoft_datetimepicker.xdsoft_dark .xdsoft_calendar th { 473 | background: #0e0e0e; 474 | } 475 | 476 | .xdsoft_datetimepicker.xdsoft_dark .xdsoft_calendar td.xdsoft_today { 477 | color: #cc5500; 478 | } 479 | 480 | .xdsoft_datetimepicker.xdsoft_dark .xdsoft_calendar td.xdsoft_highlighted_default { 481 | background: #ffe9d2; 482 | box-shadow: #ffb871 0 1px 4px 0 inset; 483 | color:#000; 484 | } 485 | .xdsoft_datetimepicker.xdsoft_dark .xdsoft_calendar td.xdsoft_highlighted_mint { 486 | background: #c1ffc9; 487 | box-shadow: #00dd1c 0 1px 4px 0 inset; 488 | color:#000; 489 | } 490 | 491 | .xdsoft_datetimepicker.xdsoft_dark .xdsoft_calendar td.xdsoft_default, 492 | .xdsoft_datetimepicker.xdsoft_dark .xdsoft_calendar td.xdsoft_current, 493 | .xdsoft_datetimepicker.xdsoft_dark .xdsoft_timepicker .xdsoft_time_box >div >div.xdsoft_current { 494 | background: #cc5500; 495 | box-shadow: #b03e00 0 1px 3px 0 inset; 496 | color: #000; 497 | } 498 | 499 | .xdsoft_datetimepicker.xdsoft_dark .xdsoft_calendar td:hover, 500 | .xdsoft_datetimepicker.xdsoft_dark .xdsoft_timepicker .xdsoft_time_box >div >div:hover { 501 | color: #000 !important; 502 | background: #007fff !important; 503 | } 504 | 505 | .xdsoft_datetimepicker.xdsoft_dark .xdsoft_calendar th { 506 | color: #666; 507 | } 508 | 509 | .xdsoft_datetimepicker.xdsoft_dark .xdsoft_copyright { color: #333 !important } 510 | .xdsoft_datetimepicker.xdsoft_dark .xdsoft_copyright a { color: #111 !important } 511 | .xdsoft_datetimepicker.xdsoft_dark .xdsoft_copyright a:hover { color: #555 !important } 512 | 513 | .xdsoft_dark .xdsoft_time_box { 514 | border: 1px solid #333; 515 | } 516 | 517 | .xdsoft_dark .xdsoft_scrollbar >.xdsoft_scroller { 518 | background: #333 !important; 519 | } 520 | .xdsoft_datetimepicker .xdsoft_save_selected { 521 | display: block; 522 | border: 1px solid #dddddd !important; 523 | margin-top: 5px; 524 | width: 100%; 525 | color: #454551; 526 | font-size: 13px; 527 | } 528 | .xdsoft_datetimepicker .blue-gradient-button { 529 | font-family: "museo-sans", "Book Antiqua", sans-serif; 530 | font-size: 12px; 531 | font-weight: 300; 532 | color: #82878c; 533 | height: 28px; 534 | position: relative; 535 | padding: 4px 17px 4px 33px; 536 | border: 1px solid #d7d8da; 537 | background: -moz-linear-gradient(top, #fff 0%, #f4f8fa 73%); 538 | /* FF3.6+ */ 539 | background: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #fff), color-stop(73%, #f4f8fa)); 540 | /* Chrome,Safari4+ */ 541 | background: -webkit-linear-gradient(top, #fff 0%, #f4f8fa 73%); 542 | /* Chrome10+,Safari5.1+ */ 543 | background: -o-linear-gradient(top, #fff 0%, #f4f8fa 73%); 544 | /* Opera 11.10+ */ 545 | background: -ms-linear-gradient(top, #fff 0%, #f4f8fa 73%); 546 | /* IE10+ */ 547 | background: linear-gradient(to bottom, #fff 0%, #f4f8fa 73%); 548 | /* W3C */ 549 | filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#fff', endColorstr='#f4f8fa',GradientType=0 ); 550 | /* IE6-9 */ 551 | } 552 | .xdsoft_datetimepicker .blue-gradient-button:hover, .xdsoft_datetimepicker .blue-gradient-button:focus, .xdsoft_datetimepicker .blue-gradient-button:hover span, .xdsoft_datetimepicker .blue-gradient-button:focus span { 553 | color: #454551; 554 | background: -moz-linear-gradient(top, #f4f8fa 0%, #FFF 73%); 555 | /* FF3.6+ */ 556 | background: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #f4f8fa), color-stop(73%, #FFF)); 557 | /* Chrome,Safari4+ */ 558 | background: -webkit-linear-gradient(top, #f4f8fa 0%, #FFF 73%); 559 | /* Chrome10+,Safari5.1+ */ 560 | background: -o-linear-gradient(top, #f4f8fa 0%, #FFF 73%); 561 | /* Opera 11.10+ */ 562 | background: -ms-linear-gradient(top, #f4f8fa 0%, #FFF 73%); 563 | /* IE10+ */ 564 | background: linear-gradient(to bottom, #f4f8fa 0%, #FFF 73%); 565 | /* W3C */ 566 | filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#f4f8fa', endColorstr='#FFF',GradientType=0 ); 567 | /* IE6-9 */ 568 | } 569 | -------------------------------------------------------------------------------- /stock_prediction/django/myblog/blog/stock.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhengguowei/stock_prediction/ee12d70c0cef25866e0c2c773a1a9492ce0622df/stock_prediction/django/myblog/blog/stock.jpg -------------------------------------------------------------------------------- /stock_prediction/django/myblog/blog/templates/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | {% load static %} 4 | 5 | 6 |




7 | 股票分析系统 8 | 9 | 10 | 11 |
12 |
13 | 14 |
15 |
16 | 17 |
18 |
19 |

股票分析系统

20 |

21 |
22 | {% csrf_token %} 23 | 24 | 25 | 26 | 27 |
28 | 29 | 30 | 31 | 32 | 33 | 53 | -------------------------------------------------------------------------------- /stock_prediction/django/myblog/blog/templates/nothing.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 未找到相关股票 6 | 7 | 8 |

未找到相关股票,请重新输入股票代码或公司名!

9 | 10 | -------------------------------------------------------------------------------- /stock_prediction/django/myblog/blog/templates/test.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | {% load static %} 4 | 5 | 6 | Title 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 |
19 |
20 |

21 | 22 | 股票交易分析系统平台 23 | 24 |

25 |
26 |
27 |
28 | {% csrf_token %} 29 |
30 | 32 |
33 |
34 |
35 |
36 |
37 |
38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | -------------------------------------------------------------------------------- /stock_prediction/django/myblog/blog/templates/test1.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | {% load static %} 4 | 5 | 6 | {{stock_id}}预测结果 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 135 |
136 | 137 | 138 | 139 | 140 | 141 | 142 | 143 | 144 | 145 | 146 | 147 | 148 | 149 | 169 | -------------------------------------------------------------------------------- /stock_prediction/django/myblog/blog/tendency_judge/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhengguowei/stock_prediction/ee12d70c0cef25866e0c2c773a1a9492ce0622df/stock_prediction/django/myblog/blog/tendency_judge/__init__.py -------------------------------------------------------------------------------- /stock_prediction/django/myblog/blog/tendency_judge/__init__.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhengguowei/stock_prediction/ee12d70c0cef25866e0c2c773a1a9492ce0622df/stock_prediction/django/myblog/blog/tendency_judge/__init__.pyc -------------------------------------------------------------------------------- /stock_prediction/django/myblog/blog/tendency_judge/data/p_p.xls: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhengguowei/stock_prediction/ee12d70c0cef25866e0c2c773a1a9492ce0622df/stock_prediction/django/myblog/blog/tendency_judge/data/p_p.xls -------------------------------------------------------------------------------- /stock_prediction/django/myblog/blog/tendency_judge/data/predict_src.txt: -------------------------------------------------------------------------------- 1 | 京东方成本价出售液晶TV面板:韩厂慌了 2 | 出海记|突围!京东方成全球产能最大 韩厂台企或受冲击 3 | -------------------------------------------------------------------------------- /stock_prediction/django/myblog/blog/tendency_judge/main_rnn_last.py: -------------------------------------------------------------------------------- 1 | # coding=utf-8 2 | import sys 3 | import util1 4 | import tf_util 5 | import tensorflow as tf 6 | from sklearn.metrics import classification_report 7 | import time 8 | import os 9 | import argparse 10 | reload(sys) 11 | sys.setdefaultencoding('utf-8') 12 | 13 | FLAGS = None 14 | 15 | def add_arguments(parser): 16 | path=os.getcwd() 17 | ''' 18 | 添加参数解析 19 | :param parser:argparse.ArgumentParser() 20 | ''' 21 | parser.add_argument("-schema", type=int, default=2, help='0:训练 1:测试 2:预测') 22 | parser.add_argument("-lr", type=float, default=0.01, help='learning rate') 23 | parser.add_argument("-decay_rate", type=float, default=0.9, help='学习率的衰减率') 24 | parser.add_argument("-max_epoch", type=int, default=20) 25 | parser.add_argument("-early_stop", type=int, default=3) 26 | parser.add_argument("-num_layer", type=int, default=1) 27 | parser.add_argument("-embedding_dim", type=int, default=200) 28 | parser.add_argument("-limit_sentence", type=int, default=100) 29 | parser.add_argument('-batch_size', type=int, default=64) 30 | parser.add_argument('-hidden_size', type=int, default=200) 31 | parser.add_argument("-target_file", type=str, default=path+'/blog/tendency_judge/model/tag.txt') 32 | parser.add_argument('-vocab_file', type=str, default=path+'/blog/tendency_judge/model/vocab.txt') 33 | parser.add_argument("-train_file", type=str, default='data/train.txt') 34 | parser.add_argument('-dev_file', type=str, default='data/dev.txt') 35 | parser.add_argument('-test_file', type=str, default='data/test.txt') 36 | # parser.add_argument('-predict_file', type=str, default='data/predict_src.txt') 37 | parser.add_argument('-predict_file', type=str, default=path+'/blog/tendency_judge/data/p_p.xls') 38 | parser.add_argument('-neg_file', type=str, default='model/neg_dic.txt') 39 | parser.add_argument('-neg_extent_dim', type=int, default=8) 40 | parser.add_argument('-embedding_file', type=str, default='model/embeddings.200') 41 | parser.add_argument('-model_path', type=str, default=path+'/blog/tendency_judge/model/rnn_model_1222/') 42 | 43 | class Config(object): 44 | '''各种参数''' 45 | def __init__(self, FLAGS): 46 | print('开始加载词典...') 47 | self.vocab = util1.Vocab() 48 | self.vocab.load_vocab_from_file(FLAGS.vocab_file) 49 | print('开始加载标签...') 50 | self.tag_vocab = util1.Tag() 51 | self.tag_vocab.load_tag_from_file(FLAGS.target_file) 52 | self.limit_sentence = FLAGS.limit_sentence 53 | self.model_path = FLAGS.model_path 54 | 55 | if FLAGS.schema == 0: 56 | print('**************************\n初始化训练参数') 57 | self.lr = FLAGS.lr 58 | self.decay_rate = FLAGS.decay_rate 59 | self.max_epoch = FLAGS.max_epoch 60 | self.early_stop = FLAGS.early_stop 61 | self.num_layer = FLAGS.num_layer 62 | self.batch_size = FLAGS.batch_size 63 | self.hidden_size = FLAGS.hidden_size 64 | 65 | print('加载负面词典') 66 | self.neg_vocab = util1.load_neg_file(FLAGS.neg_file) 67 | 68 | print('开始读取数据...') 69 | # self.data_x, self.data_y, self.sent_len = util.read_data(FLAGS.train_file, self.tag_vocab, self.vocab, self.limit_sentence) 70 | self.data_x, self.data_y, self.sent_len = util1.read_data_seg(FLAGS.train_file, self.tag_vocab, self.vocab, self.limit_sentence) 71 | print('数据读取完毕') 72 | 73 | print('读取测试集...') 74 | # self.dev_x, self.dev_y, self.dev_sent_len = util.read_data(FLAGS.dev_file, self.tag_vocab, self.vocab, self.limit_sentence) 75 | self.dev_x, self.dev_y, self.dev_sent_len = util1.read_data_seg(FLAGS.dev_file, self.tag_vocab, self.vocab, self.limit_sentence) 76 | print('数据读取完毕') 77 | 78 | print('加载embedding文件') 79 | self.embedding_matrix = util1.create_embed_matrix_from_file(FLAGS.embedding_file, self.vocab) 80 | self.embedding_size = FLAGS.embedding_dim 81 | if FLAGS.neg_extent_dim > 0: 82 | # 在词向量中添加负面词 83 | print('embedding扩展') 84 | self.embedding_matrix = util1.extend_dim(self.embedding_matrix, self.vocab, self.neg_vocab, FLAGS.neg_extent_dim, 0.5) 85 | self.embedding_size += FLAGS.neg_extent_dim 86 | 87 | # 学习率衰减步 88 | self.decay_step = len(self.sent_len) / self.batch_size 89 | elif FLAGS.schema == 1: 90 | self.test_file = FLAGS.test_file 91 | pass 92 | elif FLAGS.schema == 2: 93 | # txt文本输入 94 | # self.predict_file = FLAGS.predict_file 95 | 96 | # excel文本输入 97 | path = os.getcwd() 98 | path = path+'/blog/tendency_judge/data/predict_src.txt' 99 | util1.extract_excel(FLAGS.predict_file, path) 100 | self.predict_file = path 101 | pass 102 | else: 103 | print('模式选择错误,0:训练 1:测试 2:预测') 104 | pass 105 | 106 | class model(): 107 | def __init__(self, sess): 108 | self.session = sess 109 | # 获取模型的节点 110 | self.x_ph = sess.graph.get_tensor_by_name('x_ph:0') 111 | self.y_ph = sess.graph.get_tensor_by_name('y_ph:0') 112 | self.sent_len_ph = sess.graph.get_tensor_by_name('sent_len_ph:0') 113 | self.y_predict = sess.graph.get_tensor_by_name('y_predict:0') 114 | 115 | def train(self, x_batch, y_batch, sent_len_batch): 116 | ''' 117 | 训练函数 118 | :param x_batch: x 119 | :param y_batch: y 120 | :param sent_len_batch:句子长度 121 | :return: 122 | loss : 损失函数值 123 | step_now:总次数 124 | learning_rate_now:当前学习率 125 | accuracy_now:当前正确率 126 | ''' 127 | _, loss, step_now, learning_rate_now, accuracy_now = self.session.run([self.train_step, self.loss, self.global_step, self.learning_rate, self.accuracy], 128 | feed_dict={self.x_ph: x_batch, self.y_ph: y_batch, self.sent_len_ph: sent_len_batch}) 129 | 130 | return loss, step_now, learning_rate_now, accuracy_now 131 | 132 | def test(self, test_x, test_y, test_sent_len, tag_vocab): 133 | ''' 134 | 测试 135 | :param x_batch: 136 | :param y_batch: 137 | :param sent_len_batch: 138 | :return: 返回正确率 139 | ''' 140 | result_true = util1.decode_tag(test_y, tag_vocab) 141 | result, probability = self.predict(test_x, test_sent_len, tag_vocab) 142 | 143 | # 打印结果 144 | print(classification_report(result_true, result)) 145 | 146 | accuracy = util1.show_accuracy(result_true, result) 147 | return accuracy, result, probability 148 | 149 | 150 | def predict(self, x, sent_len, tag_vocab): 151 | ''' 152 | 预测 153 | :param x: 154 | :return: 155 | ''' 156 | result = [] 157 | probability = [] 158 | 159 | for (x_batch, sent_len_batch) in util1.data_order_iter(x, sent_len, 2000): 160 | result_array = self.session.run(self.y_predict, feed_dict={self.x_ph:x_batch, self.sent_len_ph: sent_len_batch}) 161 | probability.extend(result_array) 162 | result.extend(util1.decode_tag(result_array, tag_vocab)) 163 | 164 | return result, probability 165 | 166 | class RNN_model(model): 167 | def __init__(self, session, param_config): 168 | self.session = session 169 | CLASS_NUM = param_config.tag_vocab.total_tag 170 | HIDDEN_SIZE = param_config.hidden_size 171 | rnn_numLayers = param_config.num_layer 172 | 173 | # x,y placeholder 174 | self.x_ph = tf.placeholder(tf.int32, [None, param_config.limit_sentence], name='x_ph') 175 | self.y_ph = tf.placeholder(tf.int32, [None, CLASS_NUM], name='y_ph') 176 | self.sent_len_ph = tf.placeholder(tf.int32, [None], name='sent_len_ph') 177 | 178 | # 定义变量 179 | softmax_W = tf.Variable(tf.truncated_normal([HIDDEN_SIZE, CLASS_NUM], stddev=0.01)) 180 | softmax_b = tf.Variable(tf.zeros([CLASS_NUM], tf.float32)) 181 | 182 | # # x 添加embedding 183 | self.embedding, x_ph_embedding = tf_util.add_embedding(param_config.embedding_matrix, self.x_ph) 184 | 185 | # rnn 186 | lstm_cell = tf.contrib.rnn.BasicLSTMCell(HIDDEN_SIZE) 187 | mul_lstm_cell = tf.contrib.rnn.MultiRNNCell(cells=[lstm_cell] * rnn_numLayers, state_is_tuple=True) 188 | outputs, _ = tf.nn.dynamic_rnn(mul_lstm_cell, x_ph_embedding, sequence_length=self.sent_len_ph, dtype=tf.float32, swap_memory=True) 189 | 190 | outputs_deal = tf_util.gather_last_output(outputs, self.sent_len_ph) 191 | # 取平均 192 | # outputs_deal = tf_util.data_mean(outputs, self.sent_len_ph, 1) 193 | 194 | # 预测 195 | self.y_predict = tf.nn.softmax(tf.matmul(outputs_deal, softmax_W) + softmax_b, name='y_predict') 196 | 197 | # 损失函数 198 | self.loss = tf_util.add_loss_op(self, self.y_predict, self.y_ph) 199 | 200 | # 精确度 201 | self.accuracy = tf_util.check_accuracy(self.y_ph, self.y_predict) 202 | 203 | # 随机梯度下降 204 | self.global_step, self.train_step, self.learning_rate = tf_util.train_optimizer(loss=self.loss, 205 | learning_rate_start=param_config.lr, 206 | decay_steps=param_config.decay_step, 207 | decay_rate=param_config.decay_rate, 208 | algorithm='SGD') 209 | # 全局初始化 210 | init = tf.global_variables_initializer() 211 | self.session.run(init) 212 | pass 213 | 214 | def train_model(param_config): 215 | ''' 216 | 训练主函数 217 | ''' 218 | # 创建文件夹 219 | save_path = param_config.model_path 220 | if not os.path.exists(save_path): 221 | os.makedirs(save_path) 222 | 223 | with tf.Session() as sess: 224 | # 创建模型 225 | model = RNN_model(sess, param_config) 226 | # 获取保存对象 227 | saver = tf.train.Saver() 228 | # 记录最高正确率 229 | best_accuracy = 0.0 230 | # 记录每次的正确率 231 | each_accuracy = 0.0 232 | # 记录最好正确率对应的epoch 233 | best_epoch = 0 234 | 235 | # 开始循环 236 | for epoch in range(param_config.max_epoch): 237 | print('epoch:{}'.format(epoch)) 238 | # 分批训练 239 | for step, (x_batch, y_batch, sent_len_batch) in enumerate(util1.data_iter(param_config.data_x, param_config.data_y, param_config.sent_len, param_config.batch_size)): 240 | 241 | # 训练 242 | loss, step_now, learning_rate_now, accuracy_now = model.train(x_batch, y_batch, sent_len_batch) 243 | 244 | if (step+1) % 500 == 0: 245 | print('第{}批,loss:{},当前导入总批数:{},当前学习率:{},正确率:{}'.format(step+1, loss, step_now, learning_rate_now, accuracy_now)) 246 | 247 | # 测试 248 | each_accuracy, _, _ = model.test(param_config.dev_x, param_config.dev_y, param_config.dev_sent_len, param_config.tag_vocab) 249 | print('开发集正确率:{}'.format(each_accuracy)) 250 | 251 | # 记录最好的模型 252 | if best_accuracy < each_accuracy: 253 | best_accuracy = each_accuracy 254 | best_epoch = epoch 255 | # 模型保存 256 | saver.save(sess, '{}model.weights'.format(save_path)) 257 | ''' 258 | # 保存每个epoch的模型 259 | path = save_path+'{}/'.format(epoch) 260 | os.makedirs(path) 261 | saver.save(sess, '{}model.weights'.format(path)) 262 | ''' 263 | 264 | # 如果EARLY_STOPPING次后正确率平没有提升,则提前退出 265 | if epoch - best_epoch > param_config.early_stop: 266 | print("Normal Early stop") 267 | break 268 | pass 269 | 270 | def t_est_new(param_config): 271 | ''' 272 | 预测(现在其实是测试) 273 | :param model_path:模型的路径 274 | :param file_path:要预测的文件 275 | :return:预测值 276 | ''' 277 | model_path = param_config.model_path 278 | file_path = param_config.test_file 279 | 280 | # 读取文件 281 | # test_x, test_y, test_sent_len = util.read_data(file_path, param_config.tag_vocab, param_config.vocab, param_config.limit_sentence) 282 | test_x, test_y, test_sent_len = util1.read_data_seg(file_path, param_config.tag_vocab, param_config.vocab, param_config.limit_sentence) 283 | 284 | # 保存解码结果 285 | result = [] 286 | probability = None 287 | 288 | with tf.Session() as sess: 289 | # 加载图模型 290 | saver = tf.train.import_meta_graph(model_path+'model.weights.meta') 291 | classifier = model(sess) 292 | # 加载参数 293 | saver.restore(sess, model_path+'model.weights') 294 | 295 | _, result, probability = classifier.test(test_x, test_y, test_sent_len, param_config.tag_vocab) 296 | 297 | # print result 298 | # 保存预测结果 299 | result_true = util1.decode_tag(test_y, param_config.tag_vocab) 300 | with open('result.txt', 'w', encoding='utf-8') as f: 301 | for (pre, true, prob) in zip(result, result_true, probability): 302 | f.write('{}\t{}\t{}\n'.format(pre, true, list(prob))) 303 | 304 | 305 | def predict(param_config): 306 | ''' 307 | 预测 308 | :param model_path:模型的路径 309 | :param file_path:要预测的文件 310 | :return:预测值 311 | ''' 312 | model_path = param_config.model_path 313 | file_path = param_config.predict_file 314 | 315 | # 读取文件 316 | # x, sent_len = util.read_predict_data(file_path, param_config.vocab, param_config.limit_sentence) 317 | x, sent_len = util1.read_predict_data_seg(file_path, param_config.vocab, param_config.limit_sentence) 318 | 319 | # 保存解码结果 320 | result = [] 321 | probability = [] 322 | 323 | with tf.Session() as sess: 324 | # 取回模型及参数 325 | saver = tf.train.import_meta_graph(model_path+'model.weights.meta') # 返回 tf.train.Saver() 326 | classifier = model(sess) 327 | saver.restore(sess, model_path+'model.weights') 328 | 329 | r, p = classifier.predict(x, sent_len, param_config.tag_vocab) 330 | result.extend(r) 331 | probability.extend(p) 332 | 333 | # 输出预测文件 334 | 335 | # 保存成txt格式 标签\t[中立概率, 负面概率] 336 | path = os.getcwd() 337 | with open(path+'/blog/tendency_judge/predict.txt', 'w') as f: 338 | for (pre, prob) in zip(result, probability): 339 | f.write('{}\t{}\n'.format(pre, list(prob))) 340 | 341 | # 输出为excel 342 | path=os.getcwd() 343 | excel_result = [] 344 | predict_src_list = [] 345 | with open(path+'/blog/tendency_judge/data/predict_src.txt', 'r') as f: 346 | for line in f: 347 | sent = line.strip() 348 | if sent == '中立': 349 | sent = '' 350 | predict_src_list.append(sent) 351 | 352 | for (sent, pre, prob) in zip(predict_src_list, result, probability): 353 | excel_result.append([sent, pre, str(list(prob)[0]), str(list(prob)[1])]) 354 | 355 | util1.excel_write(excel_result) 356 | 357 | 358 | def main(_): 359 | start_time = time.time() 360 | param_config = Config(FLAGS) 361 | if FLAGS.schema == 0: 362 | train_model(param_config) 363 | pass 364 | elif FLAGS.schema == 1: 365 | t_est_new(param_config) 366 | pass 367 | elif FLAGS.schema == 2: 368 | predict(param_config) 369 | pass 370 | 371 | end_time = time.time() 372 | print('用时:{}'.format(end_time-start_time)) 373 | 374 | if __name__ == '__main__': 375 | arg_parser = argparse.ArgumentParser() 376 | add_arguments(arg_parser) 377 | FLAGS = arg_parser.parse_args() 378 | tf.app.run() # 使用flags处理命令行指令,然后执行main(gpf) -------------------------------------------------------------------------------- /stock_prediction/django/myblog/blog/tendency_judge/main_rnn_last.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhengguowei/stock_prediction/ee12d70c0cef25866e0c2c773a1a9492ce0622df/stock_prediction/django/myblog/blog/tendency_judge/main_rnn_last.pyc -------------------------------------------------------------------------------- /stock_prediction/django/myblog/blog/tendency_judge/model/extract_neg_dic.txt: -------------------------------------------------------------------------------- 1 | 违法 2 | 质疑 3 | 双低 4 | 恐袭 5 | 伪举牌 6 | 倒闭 7 | 卖淫 8 | 行贿 9 | 不负责任 10 | 禁营 11 | 被盗 12 | 骗取 13 | 罢免 14 | 罪加一等 15 | 传销 16 | 坍塌 17 | 触目惊心 18 | 侮辱 19 | 内忧外患 20 | 去向不明 21 | 起诉 22 | 诱骗 23 | 赃款 24 | 被捕 25 | 阴谋 26 | 霸占 27 | 拖欠 28 | 重灾区 29 | 骗 30 | 离职 31 | 撤离 32 | 维权 33 | 亏钱 34 | 破位 35 | 亏了 36 | 撞断 37 | 封杀 38 | 倾家荡产 39 | 下跌 40 | 血本无归 41 | 奸商 42 | 捏造 43 | 下挫 44 | 认罪 45 | 欺诈 46 | 黑社会 47 | 跌停 48 | 受贿 49 | 泄露 50 | 贪婪 51 | 坐牢 52 | 怒斥 53 | 逃亡 54 | 大降 55 | 耍流氓 56 | 贪官 57 | 浮亏 58 | 杀人 59 | 天价 60 | 查处 61 | 惨 62 | 一死一伤 63 | 勾结 64 | 贪污 65 | 闯祸 66 | 畸形 67 | 涉案 68 | 隐患 69 | 被诉 70 | 造谣 71 | 恶化 72 | 无耻 73 | 偷工减料 74 | 崩盘 75 | 谩骂 76 | 投诉 77 | 乱象 78 | 取缔 79 | 双降 80 | 负债 81 | 乌烟瘴气 82 | 破产 83 | 下滑 84 | 重挫 85 | 惨遭 86 | 无赖 87 | 损失 88 | 冻结 89 | 虚假 90 | 吊销执照 91 | 暴露 92 | 忏悔 93 | 唯利是图 94 | 违建 95 | 诈骗 96 | 腐败 97 | 失算 98 | 失责 99 | 违约金 100 | 受阻 101 | 盗窃 102 | 涉嫌犯罪 103 | 绑架 104 | 忽悠 105 | 骗子 106 | 赔偿 107 | 走低 108 | 乱收费 109 | 跳楼 110 | 负增长 111 | 抗议 112 | 异常 113 | 跌破 114 | 降幅 115 | 罚款 116 | 违规 117 | 惨淡 118 | 敲诈 119 | 损坏 120 | 侵权 121 | 强拆 122 | 谴责 123 | 隐忧 124 | 立案侦查 125 | 缩水 126 | 发霉 127 | 挪用 128 | 停牌 129 | 预减 130 | 血腥 131 | 出逃 132 | 处罚 133 | 骂娘 134 | 失控 135 | 致癌 136 | 走弱 137 | 透支 138 | 不实 139 | 脑残 140 | 不知情 141 | 逃避 142 | 垃圾 143 | 安全隐患 144 | 困境 145 | 遭罚 146 | 太低 147 | 黑心 148 | 漩涡 149 | 官商勾结 150 | 圈养 151 | 违反 152 | 撤出 153 | 叛徒 154 | 恐慌 155 | 患儿 156 | 大跌 157 | 坑害 158 | 衰败 159 | 无语 160 | 无证 161 | 老赖 162 | 萎缩 163 | 落马 164 | 失踪 165 | 身亡 166 | 跳水 167 | 逮捕 168 | 坑爹 169 | 开除 170 | 故障 171 | 骗局 172 | 垃圾股 173 | 牢狱 174 | 骗术 175 | 违约 176 | 违纪 177 | 欺骗 178 | 通报 179 | 遭遇 180 | 崩塌 181 | 强占 182 | 贱卖 183 | 泥潭 184 | 妖精 185 | 坏账 186 | 抛售 187 | 严重不足 188 | 堵死 189 | 抄袭 190 | 欠款 191 | 巨贪 192 | 涉嫌 193 | 黑名单 194 | 泄漏 195 | 敌对势力 196 | 下降 197 | 无力 198 | 无良 199 | 不忠 200 | 陨落 201 | 举报 202 | 非法 203 | 失守 204 | 惨跌 205 | 鞠瑾 206 | 报案 207 | 致命 208 | 恶意 209 | 存疑 210 | 负债率 211 | 王功伟 212 | 窘境 213 | 颓势 214 | 警惕 215 | 挤兑 216 | 火灾 217 | 漏洞 218 | 出事 219 | 流氓 220 | 巨震 221 | 遭查 222 | 刑拘 223 | 陷阱 224 | 失望 225 | 劝阻 226 | 关闭 227 | 推卸责任 228 | 黑中介 229 | 困局 230 | 处分 231 | 不堪 232 | 亏损 233 | 隐瞒 234 | 失联 235 | 失职 236 | 盗刷 237 | 爆亏 238 | 破发 239 | 侵吞 240 | 遭批 241 | 退市 242 | 连环套 243 | 被查 244 | 损害 245 | 吕锡文 246 | 连跌 247 | 低迷 248 | 血汗钱 249 | 获刑 250 | 公诉 251 | 不合理 252 | 多事之秋 253 | 坑骗 254 | 贪腐 255 | 生变 256 | 禁药 257 | 寸步难行 258 | 扰乱 259 | 沸沸扬扬 260 | 骗钱 261 | 遇险 262 | 犯罪 263 | 杀跌 264 | 侵犯 265 | 逾期 266 | 套现 267 | 真凶 268 | 衰退 269 | 发飙 270 | 降级 271 | 黑榜 272 | 毁 273 | 洗钱 274 | 输掉 275 | 暴跌 276 | 遭拒 277 | 失信 278 | 跌幅 279 | 贿赂 280 | 严查 281 | 偷 282 | 坑人 283 | 痛批 284 | 没戏 285 | 被判 286 | 黑车 287 | 不要脸 288 | 欠薪 289 | 大便 290 | 割伤 291 | 坑 292 | 危险 293 | 司法腐败 294 | 黑幕 295 | 调查 296 | 打虎 297 | 风波 298 | 外欠 299 | 监狱 300 | 围堵 301 | 遭殃 302 | 地雷 303 | 首虎 304 | 死亡 305 | 妄议 -------------------------------------------------------------------------------- /stock_prediction/django/myblog/blog/tendency_judge/model/neg_dic.txt: -------------------------------------------------------------------------------- 1 | 塌方 2 | 欠钱不还 3 | 坠楼 4 | 脚都断了 5 | 违规经营 6 | 危机 7 | 热情大减 8 | 施压 9 | 假公章 10 | 卖假货 11 | 僵局 12 | 首负 13 | 违法 14 | 亏 15 | 警示牌 16 | 财大气粗 17 | 被拒 18 | 离婚 19 | 喊冤 20 | 资产流失 21 | 不能用 22 | 日了狗 23 | 辟谣 24 | 太烂 25 | 借口 26 | 质疑 27 | 被刑拘 28 | 双低 29 | 利润减少 30 | 被火烤 31 | 煞笔 32 | 不务正业 33 | 刻字留念 34 | 顽疾 35 | 低于预期 36 | 恐袭 37 | 坏了 38 | 老虎机 39 | 伪举牌 40 | 脱了裤子 41 | 权商勾结 42 | 炒楼 43 | 错杀 44 | 权倾朝野 45 | 检方指控 46 | 面如死灰 47 | 被套牢 48 | 倒闭 49 | 炸懵 50 | 卖淫 51 | 罢工 52 | 缺陷 53 | 衰落 54 | 行贿 55 | 宣判 56 | 千万别买 57 | 无法赎回 58 | 不负责任 59 | 恩怨 60 | 色情视频 61 | 禁营 62 | 被盗 63 | 跌 64 | 欺诈百姓 65 | 骗取 66 | 拦路虎 67 | 天价学区房 68 | 被叫停 69 | 重大阴谋 70 | 罢免 71 | 登录不上 72 | 目标冲突 73 | 底儿掉 74 | 紧急干预 75 | 叛变 76 | 噪声 77 | 崇洋媚外 78 | 罪加一等 79 | 毒地风波 80 | 传销 81 | 暴乱 82 | 做空股市 83 | 疯抢 84 | 坍塌 85 | 不公平 86 | 坏死 87 | 垫底 88 | 怒了 89 | 触目惊心 90 | 躺枪 91 | 心痛 92 | 全军覆没 93 | 小三 94 | 凶猛 95 | 侮辱 96 | 假证 97 | 倒闭关门 98 | 无知 99 | 素质堪忧 100 | 傻插 101 | 打人 102 | 内忧外患 103 | 吃屎 104 | 闷棍 105 | 臭狗屎 106 | 道歉 107 | 内斗 108 | 信息泄露 109 | 绞杀 110 | 去向不明 111 | 人心搞散 112 | 不给力 113 | 起诉 114 | 贪污腐败 115 | 诱惑 116 | 撞死 117 | 长城刻字 118 | 领罚 119 | 高抛 120 | 该死 121 | 变局 122 | 爆炸事故 123 | 诱骗 124 | 遭压 125 | 偏离 126 | 赃款 127 | 减弱 128 | 协助调查 129 | 无保障 130 | 举报 131 | 被捕 132 | 快疯了 133 | 阴谋 134 | 公然撒谎 135 | 不舒服 136 | 赔了夫人又折兵 137 | 胆大妄为 138 | 敲诈勒索 139 | 蓝瘦 140 | 塌陷 141 | 利差收窄 142 | 堪忧 143 | 重大打击 144 | 摊上大事 145 | 霸占 146 | 断崖狂泻 147 | 内幕交易 148 | 指责 149 | 瑕疵 150 | 暗黑情节 151 | 不正常 152 | 威胁 153 | 拖欠 154 | 工资被扣 155 | 拒绝 156 | 捣毁 157 | 被捕入狱 158 | 去世 159 | 不乐观 160 | 可怕 161 | 下流 162 | 可怜 163 | 打不开 164 | 替考抢手 165 | 炮轰 166 | 少缴税 167 | 效果很差 168 | 给我滚 169 | 重灾区 170 | 骗 171 | 离职 172 | 遭受 173 | 沉重一击 174 | 包养 175 | 退市风险 176 | 违心 177 | 无能 178 | 能力堪忧 179 | 被劫持 180 | 一怒之下 181 | 遇袭 182 | 闪崩 183 | 挨板子 184 | 晦气 185 | 尾盘跳水 186 | 红绿灯问题 187 | 情操扫地 188 | 利润下滑 189 | 波动剧烈 190 | 撤离 191 | 之劫 192 | 买不起 193 | 有点蠢 194 | 涉黑洗钱 195 | 洗劫 196 | 维权 197 | 业绩惨淡 198 | 太烂了 199 | 裁员 200 | 挂了 201 | 保壳 202 | 场面混乱 203 | 沦陷 204 | 妖股 205 | 后遗症 206 | 亏钱 207 | 可惜 208 | 期债暴动 209 | 恶心 210 | 兴风作浪 211 | 障碍 212 | 破位 213 | 超期服役 214 | 撞断 215 | 担忧 216 | 跌掉 217 | 违章停车 218 | 监管函 219 | 大盗横行 220 | 车祸 221 | 砸玻璃 222 | 阵痛 223 | 污蔑 224 | 牛逼 225 | 不良 226 | 非法销售 227 | 监管措施 228 | 好差 229 | 重灾 230 | 认购不足 231 | 悲剧 232 | 生死线 233 | 埋雷 234 | 玩死你 235 | 抢走 236 | 装B 237 | 抛掉 238 | 妖魔鬼怪 239 | 围剿 240 | 封杀 241 | 生无可恋 242 | 接盘侠 243 | 赔偿纠纷 244 | 监管风暴 245 | 市值缩水 246 | 震荡跌 247 | 跌停板 248 | 遭刺 249 | 失足 250 | 有难处 251 | 戴绿帽 252 | 尸体 253 | 狗血 254 | 叛国 255 | 被迫 256 | 大盘大跌 257 | 虚妄 258 | 背锅 259 | 被带走 260 | 变态 261 | 错失 262 | 出大事 263 | 亮黄牌 264 | 严处 265 | 坏消息 266 | 低估 267 | 网签瘫痪 268 | 迫害入狱 269 | 泡水 270 | 倾家荡产 271 | 举国震惊 272 | 下跌 273 | 抱怨 274 | 一塌糊涂 275 | 不雅事件 276 | 操你娘 277 | 发生火灾 278 | 太过分 279 | 急跌 280 | 边打边退 281 | 扫货 282 | 资产荒 283 | 雷区 284 | 网络诈骗 285 | 中招 286 | 恨透 287 | 血本无归 288 | 逃债 289 | 跌逾 290 | 弊端 291 | 可悲 292 | 施工扰民 293 | 追究 294 | 奸商 295 | 更毒 296 | 争夺 297 | 错误 298 | 捏造 299 | 有病 300 | 走狗 301 | 纠纷 302 | 下挫 303 | 山寨店 304 | 严重 305 | 认罪 306 | 欺诈 307 | 毁容 308 | 萨德 309 | 刁难 310 | 伏地痛哭 311 | 坑害业主 312 | 跌多涨少 313 | 双低股 314 | 黑社会 315 | 安全问题 316 | 跌停 317 | 赔了 318 | 风险较大 319 | 两难 320 | 情杀案 321 | 王八股 322 | 绊倒 323 | 星光黯淡 324 | 死法 325 | 受贿 326 | 管理不严 327 | 减少 328 | 泄露 329 | 假贵州茅台 330 | 砒霜 331 | 告吹 332 | 错 333 | 诈欺老百姓 334 | 剧震 335 | 下三滥 336 | 贪婪 337 | 很痛 338 | 被曝 339 | 坐牢 340 | 不准 341 | 牢笼 342 | 遭质疑 343 | 倒霉 344 | 怒斥 345 | 灾难 346 | 逃亡 347 | 跑都跑不了 348 | 回落 349 | 霸道 350 | 下杀 351 | 扰动 352 | 迟迟不涨 353 | 超低 354 | 骚动 355 | 工伤事故 356 | 背黑锅 357 | 拉低 358 | 投诉无门 359 | 散伙饭 360 | 丢人 361 | 领跌 362 | 高利贷 363 | 房价暴涨 364 | 低开 365 | 臭逼 366 | 惨痛教训 367 | 血洗 368 | 大降 369 | 倒下 370 | 耍流氓 371 | 急速下跌 372 | 多重打击 373 | 太失败了 374 | 不到位 375 | 跑步婊 376 | 贪官 377 | 新低 378 | 后尘 379 | 被罚款 380 | 管理混乱 381 | 毒性 382 | 溃败 383 | 黑天鹅扎堆 384 | 没牌照 385 | 拖后腿 386 | 浮亏 387 | 狗腿子 388 | 点名批评 389 | 抢匪 390 | 玩坏了 391 | 杀人 392 | 拐卖儿童 393 | 报复 394 | 痛悔 395 | 戳中痛点 396 | 太狗逼 397 | 起诉索赔 398 | 天价 399 | 至今未果 400 | 家庭矛盾 401 | 未严格执行 402 | 难持续 403 | 查处 404 | 黑平台 405 | 大幅回落 406 | 痛彻心扉 407 | 不靠谱 408 | 用电难 409 | 面临考验 410 | 猖獗 411 | 难现 412 | 惨 413 | 搅局 414 | 自负 415 | 三连阴 416 | 一死一伤 417 | 让人寒心 418 | 勾结 419 | 涉嫌违约 420 | 贪污 421 | 假酒 422 | 蒙人 423 | 移送司法 424 | 闯祸 425 | 涨不了 426 | 我他妈 427 | 畸形 428 | 侵害 429 | 霾腐 430 | 弱势 431 | 厮杀 432 | 黑心医院 433 | 波折不断 434 | 利益输送 435 | 骗了 436 | 缺位 437 | 吃过亏 438 | 黑餐厅 439 | 不雅视频 440 | 罚金 441 | 谋套利 442 | 失足坠楼 443 | 涉案 444 | 烂尾 445 | 欺人太甚 446 | 被起诉 447 | 隐患 448 | 被诉 449 | 性侵 450 | 僵尸企业 451 | 不讲羞耻 452 | 不景气 453 | 夭折 454 | 罚单 455 | 造谣 456 | 监禁 457 | 恶化 458 | 集体跳槽 459 | 无耻 460 | 怼 461 | 内购 462 | 地产深渊 463 | 暴动 464 | 请辞 465 | 之争 466 | 欺骗消费者 467 | 欺压 468 | 忧虑 469 | 突查 470 | 经济压力 471 | 几家愁 472 | 得罪 473 | 饭碗危机 474 | 偷工减料 475 | 崩盘 476 | 谩骂 477 | 投诉 478 | 更大炒作 479 | 遭资金撤离 480 | 经济纠纷 481 | 非法吸资 482 | 乱象 483 | 还跌 484 | 幕后黑手 485 | 大幅下挫 486 | 取缔 487 | 欠费 488 | 吞公款 489 | 短线弱势 490 | 草泥马 491 | 不敢作为 492 | 双降 493 | 负债 494 | 强烈抗议 495 | 受害人 496 | 伪劣 497 | 用不了 498 | 误导消费 499 | 债权逾期 500 | 险恶 501 | 夹缝中生存 502 | 对倒 503 | 乌烟瘴气 504 | 逼疯了 505 | 破产 506 | 忧伤 507 | 下滑 508 | 群起而攻之 509 | 在跌 510 | 烂 511 | 股权争夺战 512 | 孤陋寡闻 513 | 重挫 514 | 溃不成军 515 | 惨遭 516 | 暴打 517 | 赌博 518 | 无赖 519 | 排污 520 | 操你妈 521 | 乱吵吵 522 | 无法实现 523 | 流氓事件 524 | 炸成两半 525 | 颓败 526 | 损失 527 | 麻烦 528 | 千疮百孔 529 | 冻结 530 | 虚假 531 | 股权大战 532 | 累及 533 | 哄抬 534 | 更坑 535 | 哄抢 536 | 吊销执照 537 | 重伤 538 | 游行抗议 539 | 挖坑 540 | 资金撤离 541 | 大跳水 542 | 坚决反对 543 | 暴露 544 | 亮红灯 545 | 鸡肋行情 546 | 扭曲 547 | 难混 548 | 害得我 549 | 忏悔 550 | 质量问题 551 | 更低 552 | 唯利是图 553 | 拉仇恨 554 | 痛斥 555 | 被埋 556 | 账号被盗 557 | 违建 558 | 粗工烂造 559 | 诈骗 560 | 恶 561 | 不尊重 562 | 女老虎 563 | 关灯吃面 564 | 怪象 565 | 腐败 566 | 失算 567 | 失责 568 | 垄断 569 | 失败 570 | 成本悬殊 571 | 违约金 572 | 反对 573 | 调贬 574 | 放弃 575 | 误读 576 | 荒诞剧 577 | 谈崩 578 | 抄底 579 | 差劲 580 | 虚假宣传 581 | 早夭 582 | 蒙骗 583 | 集体暴动 584 | 野蛮 585 | 要死不活 586 | 碰瓷 587 | 减持 588 | 受阻 589 | 被罰 590 | 爆料 591 | 盗窃 592 | 无人管理 593 | 被罚 594 | 素质差 595 | 涉嫌犯罪 596 | 妈的 597 | 猫腻 598 | 勒索 599 | 风险 600 | 离谱 601 | 绑架 602 | 忽悠 603 | 坑民股 604 | 学区房 605 | 中饱私囊 606 | 骗子 607 | 不知羞耻 608 | 狗日的 609 | 真可怕 610 | 减刑 611 | 拖垮 612 | 病毒 613 | 解禁 614 | 弃购 615 | 命悬一线 616 | 赔偿 617 | 炸了 618 | 学区房乱象 619 | 赌场 620 | 无商业道德 621 | 谬误 622 | 监管趋严 623 | 杀死 624 | 作死 625 | 上访无效 626 | 嫌疑 627 | 输光了 628 | 接受调查 629 | 走低 630 | 粗工滥造 631 | 污染 632 | 渣男 633 | 乱收费 634 | 贬值 635 | 像狗一般 636 | 证监会介入 637 | 败落 638 | 跳楼 639 | 看守所 640 | 被双开 641 | 负增长 642 | 抗议 643 | 说瞎话 644 | 莽撞 645 | 异常 646 | 跌破 647 | 幕后推手 648 | 降幅 649 | 下行 650 | 罚款 651 | 脏乱差 652 | 政商漩涡 653 | 变天 654 | 违规 655 | 惨淡 656 | 淘汰 657 | 傻逼 658 | 敲诈 659 | 被调查 660 | 缺欠 661 | 航班延误 662 | 没劲儿 663 | 素质低 664 | 豆腐渣 665 | 交易黑幕 666 | 熏死人 667 | 狠狠地 668 | 禁止 669 | 损坏 670 | 被骗 671 | 遭挑衅 672 | 侵权 673 | 病态 674 | 心寒 675 | 补刀 676 | 强拆 677 | 佛挡杀佛 678 | 不可理喻 679 | 双规 680 | 嗜血 681 | 谴责 682 | 不达标 683 | 隐忧 684 | 心酸 685 | 奇葩 686 | 立案侦查 687 | 接受组织调查 688 | 实名举报 689 | 缩水 690 | 阴损 691 | 囚犯 692 | 发霉 693 | 挪用 694 | 暗中 695 | 吓尿了 696 | 难以持续 697 | 停牌 698 | 狠心 699 | 高风险 700 | 急眼 701 | 逃票 702 | 质量差 703 | 铜臭味 704 | 预减 705 | 血腥 706 | 被套 707 | 出逃 708 | 吃亏 709 | 撑多久 710 | 处罚 711 | 苦不堪言 712 | 猪队友 713 | 夹击 714 | 骂娘 715 | 失控 716 | 致癌 717 | 胆寒 718 | 赶走 719 | 丧尽天良 720 | 白忙 721 | 走弱 722 | 透支 723 | 擅自更变 724 | 不实 725 | 奢侈浪费 726 | 你咋不上天呢 727 | 苦逼 728 | 不按时缴款 729 | 脑残 730 | 压坏 731 | 严重违纪 732 | 活该 733 | 不知情 734 | 少赚 735 | 认怂 736 | 休想 737 | 挟持 738 | 悲伤 739 | 逃避 740 | 不确定性 741 | 垃圾 742 | 白血病患儿 743 | 降到 744 | 疑惑重重 745 | 骗财骗色 746 | 安全隐患 747 | 戒烟令 748 | 收紧 749 | 添禁药 750 | 困境 751 | 遭罚 752 | 不翼而飞 753 | 太低 754 | 爆粗口 755 | 有心无力 756 | 财富损失 757 | 黑心 758 | 工资未发 759 | 漩涡 760 | 说谎 761 | 贬值幅度 762 | 官商勾结 763 | 抓狂 764 | 圈养 765 | 郭广昌 766 | 中伤 767 | 有点亏 768 | 太失望 769 | 被质疑 770 | 创新低 771 | 违反 772 | 钓鱼执法 773 | 亏掉 774 | 肇事 775 | 减仓 776 | 蛇鼠横行 777 | 滞后 778 | 撤出 779 | 受牵连 780 | 不满 781 | 难觅 782 | 放水 783 | 叛徒 784 | 水涨船高 785 | 负面 786 | 恐慌 787 | 领罚单 788 | 租不起 789 | 患儿 790 | 奸诈 791 | 悬了 792 | 踩雷 793 | 减薪 794 | 跑路 795 | 大跌 796 | 吐槽 797 | 犯傻 798 | 延误 799 | 坑害 800 | 拖欠工程款 801 | 最差 802 | 衰败 803 | 整垮 804 | 暗藏阴谋 805 | 脱实向虚 806 | 首堵 807 | 人气涣散 808 | 无语 809 | 退出 810 | 抄家 811 | 涨价 812 | 废话连篇 813 | 盗贼 814 | 小混混 815 | 遇冷 816 | 无证 817 | 老赖 818 | 萎缩 819 | 深跌 820 | 搞事情 821 | 遭调查 822 | 挂羊头卖狗肉 823 | 落马 824 | 失踪 825 | 火灾隐患 826 | 蝇头小利 827 | 被架空 828 | 猛跌 829 | 检讨 830 | 身亡 831 | 干部送礼 832 | 拖累 833 | 赝品 834 | 油老鼠 835 | 砸车 836 | 跳水 837 | 虚假人生 838 | 难以打破 839 | 股权之争 840 | 恶业 841 | 不顺利 842 | 不安因素 843 | 打破 844 | 龌蹉交易 845 | 逮捕 846 | 惊天大盗 847 | 瞎哔哔 848 | 全面降 849 | 逃跑 850 | 矛盾 851 | 信息披露 852 | 坑爹 853 | 开除 854 | 从未赚钱 855 | 严重背驰 856 | 故障 857 | 恶性 858 | 变脸真快 859 | 骗局 860 | 感情破裂 861 | 垃圾股 862 | 理赔缩水 863 | 风水有问题 864 | 肆意妄为 865 | 豁开 866 | 忍不了 867 | 贫困 868 | 狗窝 869 | 封死 870 | 郁闷 871 | 一网打尽 872 | 洗牌 873 | 牢狱 874 | 非法窃取 875 | 横冲直撞 876 | 骗术 877 | 删除 878 | 躲闪 879 | 违约 880 | 老色鬼 881 | 违纪 882 | 狂飙 883 | 趁火打劫 884 | 欺骗 885 | 不安分 886 | 查纠 887 | 血案 888 | 连亏 889 | 抗议书 890 | 通报 891 | 不利 892 | 洗盘 893 | 疯狂 894 | 欠押金 895 | 新寡头 896 | 污小秽贴吧 897 | 净利双降 898 | 真是坑 899 | 遭遇 900 | 高不可攀 901 | 违规交易 902 | 跪了 903 | 惨谈 904 | 索贿 905 | 没脑子 906 | 崩塌 907 | 噪音大 908 | 引爆 909 | 爆炸 910 | 受影响 911 | 气死 912 | 再批 913 | 转移赃款 914 | 跌幅居前 915 | 贷款逾期 916 | 强占 917 | 下行趋势 918 | 沉重打击 919 | 坑杀 920 | 人渣 921 | 贱卖 922 | 囚养 923 | 要脸吗 924 | 泥潭 925 | 烂逼 926 | 泣血 927 | 妖精 928 | 慌了 929 | 没啥 930 | 坏账 931 | 乱停车 932 | 退守 933 | 逼急了 934 | 夜间施工 935 | 抛售 936 | 暗雷 937 | 病逝 938 | 混的太差 939 | 理赔纠纷 940 | 严重不足 941 | 爆雷 942 | 打脸 943 | 质量真差 944 | 罕见异象 945 | 内幕 946 | 突降 947 | 延期 948 | 经济犯 949 | 堵死 950 | 变数 951 | TMD 952 | 吊销 953 | 抄袭 954 | 自杀 955 | 被扣分 956 | 欠款 957 | 巨贪 958 | 引争议 959 | 惩罚 960 | 臭死 961 | 涉嫌 962 | 难产 963 | 黑名单 964 | 被調查 965 | 被炒 966 | 打劫 967 | 断粮 968 | 股权争夺 969 | 安全事故 970 | 办假操作证 971 | 交通事故 972 | 太坏了 973 | 拘留 974 | 楼市泡沫 975 | 套路 976 | 违章 977 | 圈得更多 978 | 泄漏 979 | 没法 980 | 通报批评 981 | 深套 982 | 变盘 983 | 一手遮天 984 | 要案 985 | 股价摧 986 | 敌对势力 987 | 元凶 988 | 被警察带走 989 | 说翻就翻 990 | 换股 991 | 撤销 992 | 下降 993 | 七连阴 994 | 降至 995 | 分歧 996 | 陷入瓶颈 997 | 死掉 998 | 不足 999 | 无力 1000 | 无良 1001 | 死了爹 1002 | 不忠 1003 | 陨落 1004 | 植物人 1005 | 吃里扒外 1006 | 群殴 1007 | 野蛮人 1008 | 举报 1009 | 被雷击 1010 | 辞职 1011 | 雪崩 1012 | 堵成粥 1013 | 哪里逃 1014 | 非法 1015 | 墨迹 1016 | 颤抖 1017 | 被困 1018 | 失守 1019 | 惨跌 1020 | 冲击 1021 | 出轨 1022 | 惹怒 1023 | 鞠瑾 1024 | 错了 1025 | 推诿扯皮 1026 | 认证不了 1027 | 人品太次 1028 | 报案 1029 | 财务作假 1030 | 立案调查 1031 | 初漏端倪 1032 | 藏雷 1033 | 致命 1034 | 暴雨袭来 1035 | 嫌 1036 | 恶意 1037 | 核辐射 1038 | 裸照 1039 | 骂人 1040 | 中毒 1041 | 规避监管 1042 | 倒掉 1043 | 配合查证 1044 | 弱爆了 1045 | 愧对 1046 | 尴尬 1047 | 被监听 1048 | 混淆视听 1049 | 推脱 1050 | 误区 1051 | 秒亏 1052 | 存疑 1053 | 负债率 1054 | 外欠债 1055 | 再遭 1056 | 王功伟 1057 | 摊上事 1058 | 臭大姐 1059 | 窘境 1060 | 颓势 1061 | 警惕 1062 | 受贿贪污 1063 | 挪去 1064 | 不长久 1065 | 逼死 1066 | 无奈 1067 | 挤兑 1068 | 上访无门 1069 | 能蒙就蒙 1070 | 龌龊 1071 | 不作为 1072 | 三观不正 1073 | 造了什么孽 1074 | 火灾 1075 | 剥削 1076 | 资本外流 1077 | 止损 1078 | 漏洞 1079 | 难题 1080 | 出事 1081 | 垮台 1082 | 差评 1083 | 傲慢无礼 1084 | 难熬 1085 | 异地被刷 1086 | 流氓 1087 | 假羊肉 1088 | 泄气 1089 | 跌到 1090 | 有后台 1091 | 负利率 1092 | 隐性失业潮 1093 | 巨震 1094 | 遭查 1095 | 被宣判 1096 | 鸡肋 1097 | 人不行 1098 | 刑拘 1099 | 离场 1100 | 违背承诺 1101 | 风光不再 1102 | 陷阱 1103 | 都是sb 1104 | 高烧 1105 | 失望 1106 | 非法集资 1107 | 劝阻 1108 | 清理 1109 | 赎罪 1110 | 关闭 1111 | 窃 1112 | 猝死 1113 | 围歼 1114 | 黑作坊 1115 | 凭什么 1116 | 吓哭 1117 | 利空出尽 1118 | 推卸责任 1119 | 吓唬谁 1120 | 遏制 1121 | 披露 1122 | 电梯困人 1123 | 滥竽充数 1124 | 饭桶 1125 | 哭晕 1126 | 黑中介 1127 | 被批捕 1128 | 开除党籍 1129 | 停滞 1130 | 被抓 1131 | 困局 1132 | 阻止 1133 | 救不了 1134 | 露出尾巴 1135 | 何去何从 1136 | 投诉举报 1137 | 大盘要倒 1138 | 风险加大 1139 | 缺口 1140 | 没货了 1141 | 遭伏击 1142 | 诈金花 1143 | 处分 1144 | 假的 1145 | 被砸 1146 | 撕逼 1147 | 劣质 1148 | 风险加剧 1149 | 被砍 1150 | 不堪 1151 | 亏损 1152 | 隐瞒 1153 | 围猎 1154 | 黑心开发商 1155 | 撕逼战 1156 | 鄙视链 1157 | 权益难保 1158 | 骂外地人 1159 | 能宰就宰 1160 | 失联 1161 | 失职 1162 | 贫穷 1163 | 断裂 1164 | 搞死 1165 | 盗刷 1166 | 非法施工 1167 | 无视人命 1168 | 彩金 1169 | 造假 1170 | 坑苦 1171 | 违规开户 1172 | 侵吞 1173 | 遭批 1174 | 被踢出局 1175 | 遇阻 1176 | 遭冻结 1177 | 退市 1178 | 无证施工 1179 | 岌岌可危 1180 | 套路满满 1181 | 越来越差 1182 | 梦想破灭 1183 | 无耻奸商 1184 | 遭驳回 1185 | 那么差 1186 | 怒喊 1187 | 连环套 1188 | 病了 1189 | 怒喷 1190 | 手无寸铁 1191 | 垃圾平台 1192 | 扩容之殇 1193 | 盗 1194 | 开门黑 1195 | 没有希望 1196 | 贻害 1197 | 被查 1198 | 跌个没完 1199 | 鬼怪蛇神 1200 | 告诫 1201 | 危桥 1202 | 大肆抛售 1203 | 损害 1204 | 吕锡文 1205 | 相爱相杀 1206 | 连跌 1207 | 低迷 1208 | 作废 1209 | 整治 1210 | 降息 1211 | 血汗钱 1212 | 自毁前程 1213 | 获刑 1214 | 不安全 1215 | 被批 1216 | 撤退 1217 | 系统故障 1218 | 没钱 1219 | 死撑 1220 | 司法不公 1221 | 公诉 1222 | 被打 1223 | 历史新低 1224 | 报假案 1225 | 之死 1226 | 缺德 1227 | 丧失人性 1228 | 不合理 1229 | 被套住 1230 | 虧損 1231 | 遭疑 1232 | 压力较重 1233 | 多事之秋 1234 | 坑骗 1235 | 残局 1236 | 破损 1237 | 暗藏玄机 1238 | 净亏损 1239 | 跌幅扩大 1240 | 贪腐 1241 | 挣扎 1242 | 股灾 1243 | 绝症 1244 | 更大风暴 1245 | 终成空 1246 | 卖房救急 1247 | 幺蛾子 1248 | 股票被套 1249 | 生变 1250 | 坏掉了 1251 | 头破血流 1252 | 狂风暴雨 1253 | 人身损害 1254 | 市场操纵 1255 | 霸王条款 1256 | 禁药 1257 | 曝光 1258 | 容易吗 1259 | 怒掀 1260 | 惹的祸 1261 | 受伤 1262 | 哭了 1263 | 假茅台 1264 | 撕破脸 1265 | 下狠手 1266 | 回光返照 1267 | 锐减 1268 | 算不上乐观 1269 | 寸步难行 1270 | 被双规 1271 | 被逮捕 1272 | 扰乱 1273 | sb 1274 | 三步倒 1275 | 一贫如洗 1276 | 沸沸扬扬 1277 | 骗钱 1278 | 舔血 1279 | 遇险 1280 | 能黑就黑 1281 | 酒驾 1282 | 犯罪 1283 | 开撕 1284 | 杀手 1285 | 杀跌 1286 | 潜规则 1287 | 哄抬价格 1288 | 侵犯 1289 | 逾期 1290 | 假结婚 1291 | 跌两成 1292 | 结局很惨 1293 | 疯狂透支 1294 | 降低 1295 | 地位不稳 1296 | 装逼 1297 | 抢孩子 1298 | 被清仓 1299 | 阴跌 1300 | 瘫痪 1301 | 套现 1302 | 真凶 1303 | 衰退 1304 | 埋伏 1305 | 丑陋 1306 | 悲观 1307 | 下跌风险 1308 | 发飙怒喷 1309 | 折腾死 1310 | 连阴 1311 | 发飙 1312 | 降级 1313 | 操控 1314 | 定罪 1315 | 止损出局 1316 | 黑榜 1317 | 毁 1318 | 无法登陆 1319 | 洗钱 1320 | 臭名远扬 1321 | 问题频出 1322 | 输掉 1323 | 换帅 1324 | 引发跳水 1325 | 黑客攻击 1326 | 无暇理会 1327 | 鄙视 1328 | 焦躁难耐 1329 | 花圈 1330 | 假牛市 1331 | 你也配 1332 | 车辆逆行 1333 | 空虚 1334 | 萧条 1335 | 暴跌 1336 | 黑洞 1337 | 空置率上升 1338 | 哀股 1339 | 遭拒 1340 | 跌了 1341 | 大盘失守 1342 | 山寨社团 1343 | 乱投放 1344 | 遗憾 1345 | 再曝 1346 | 失修 1347 | 失信 1348 | 连降 1349 | 无法律保障 1350 | 乌龙指 1351 | 跌的 1352 | 跌幅 1353 | 没亮点 1354 | 挥霍 1355 | 黑锅 1356 | 不良记录 1357 | 贿赂 1358 | 坠落 1359 | 不干满 1360 | 严查 1361 | 暗含深意 1362 | 输了 1363 | 一坨屎 1364 | 高仿 1365 | 偷 1366 | 卑鄙 1367 | 债台高筑 1368 | 坑人 1369 | 土鳖 1370 | 涉嫌违法 1371 | 起火 1372 | 诡异 1373 | 铝超标 1374 | 十面埋伏 1375 | 态度恶劣 1376 | 降两成 1377 | 痛批 1378 | 没戏 1379 | 被判 1380 | 黑车 1381 | 赔 1382 | 含泪 1383 | 仍跌 1384 | 作弊 1385 | 阴险 1386 | 不要脸 1387 | 大幅缩水 1388 | 出狱 1389 | 仍单薄 1390 | 欠薪 1391 | 砍杀 1392 | 大便 1393 | 包夜 1394 | 打压 1395 | 黄脸婆 1396 | 解散 1397 | 割伤 1398 | 流失 1399 | 奢靡浪费 1400 | 费用增加 1401 | 烦恼 1402 | 悲催 1403 | 扰乱市场 1404 | 傻眼 1405 | 铲除 1406 | 国资流失 1407 | 尼玛 1408 | 抛弃 1409 | 烂股 1410 | 涉嫌造假 1411 | 生死劫 1412 | 伪平台 1413 | 抢房假象 1414 | 坑 1415 | 严厉批评 1416 | 危险 1417 | 淫威 1418 | 炒作 1419 | 什么鬼 1420 | 司法腐败 1421 | 黑幕 1422 | 假冒 1423 | 惊人内幕 1424 | 调查 1425 | 打虎 1426 | 欠佳 1427 | 燃气泄漏 1428 | 愚人 1429 | 风波 1430 | 会哭 1431 | 急剧下滑 1432 | 被中介骗 1433 | 杀熟 1434 | 杀融资 1435 | 遭痛批 1436 | 甩卖 1437 | 法官不作为 1438 | 代开 1439 | 恶意做空 1440 | 猥琐 1441 | 恐怖袭击 1442 | 应急 1443 | 外欠 1444 | 坍塌事故 1445 | 涉赌 1446 | 监狱 1447 | 大幅萎缩 1448 | 非法侵占 1449 | 围堵 1450 | 形同虚设 1451 | 甲醛超标 1452 | 谁之过 1453 | 遭殃 1454 | 被爆 1455 | 耍大牌 1456 | 崩溃 1457 | 地雷 1458 | 问题平台 1459 | out 1460 | 首虎 1461 | 罪恶 1462 | 死亡 1463 | 未缴款 1464 | 被杀 1465 | 狗杂种 1466 | 炸裂脸 1467 | 死于 1468 | 狗逼 1469 | 转移脏款 1470 | 咬疼 1471 | 死了 1472 | 更坑更黑 1473 | 私开 1474 | 额度清零 1475 | 妄议 -------------------------------------------------------------------------------- /stock_prediction/django/myblog/blog/tendency_judge/model/tag.txt: -------------------------------------------------------------------------------- 1 | 中立 2 | 负面 -------------------------------------------------------------------------------- /stock_prediction/django/myblog/blog/tendency_judge/model/user_dic.txt: -------------------------------------------------------------------------------- 1 | NS 2 | NR 3 | NT 4 | 泪点狂飙 5 | 倒垃圾 6 | 可举报 7 | 库存下降 8 | 沪指 9 | A股 10 | a股 11 | 傻插 12 | 塌方 13 | 欠钱不还 14 | 亏了 15 | //@ 16 | 坠楼 17 | 异动 18 | 日了狗了 19 | 脚都断了 20 | 清空 21 | 违规经营 22 | 危机 23 | 热情大减 24 | 施压 25 | 假公章 26 | 卖假货 27 | 僵局 28 | 首负 29 | 违法 30 | 褪色 31 | 亏 32 | 警示牌 33 | 财大气粗 34 | 散了 35 | 被拒 36 | 离婚 37 | 喊冤 38 | 资产流失 39 | 有桩不能用 40 | 苗死 41 | 日了狗 42 | 辟谣 43 | 太烂 44 | 借口 45 | 质疑 46 | 被刑拘 47 | 双低 48 | 利润减少 49 | 被火烤 50 | 煞笔 51 | 不务正业 52 | 刻字留念 53 | 顽疾 54 | 低于预期 55 | 恐袭 56 | 坏了 57 | 老虎机 58 | 伪举牌 59 | 脱了裤子 60 | 权商勾结 61 | 炒楼 62 | 错杀 63 | 权倾朝野 64 | 检方指控 65 | 面如死灰 66 | 被套牢 67 | 倒闭 68 | 炸懵 69 | 卖淫 70 | 罢工 71 | 缺陷 72 | 衰落 73 | 行贿 74 | 宣判 75 | 千万别买 76 | 无法赎回 77 | 不负责任 78 | 恩怨 79 | 色情视频 80 | 禁营 81 | 被盗 82 | 跌 83 | 欺诈百姓 84 | 非正常死亡 85 | 骗取 86 | 拦路虎 87 | 天价学区 88 | 被叫停 89 | 重大阴谋 90 | 难处 91 | 心机 92 | 罢免 93 | 登录不上 94 | 目标冲突 95 | 结束 96 | 底儿掉 97 | 紧急干预 98 | 叛变 99 | 噪声 100 | 崇洋媚外 101 | 罪加一等 102 | 毒地风波 103 | 传销 104 | 暴乱 105 | 做空股市 106 | 疯抢 107 | 坍塌 108 | 不公平待遇 109 | 坏死 110 | 垫底 111 | 怒了 112 | 触目惊心 113 | 躺枪 114 | 心痛 115 | 全军覆没 116 | 小三 117 | 凶猛 118 | 侮辱 119 | 做假证 120 | 倒闭关门 121 | 无知 122 | 素质堪忧 123 | 打人 124 | 内忧外患 125 | 吃屎 126 | 闷棍 127 | 臭狗屎 128 | 道歉 129 | 内斗 130 | 信息泄露 131 | 绞杀 132 | 去向不明 133 | 人心搞散 134 | 打了 135 | 不给力 136 | 起诉 137 | 贪污腐败 138 | 诱惑 139 | 撞死 140 | 长城刻字 141 | 领罚 142 | 高抛 143 | 该死 144 | 变局 145 | 爆炸事故 146 | 诱骗 147 | 遭压 148 | 偏离 149 | 赃款 150 | 减弱 151 | 协助调查 152 | 无保障 153 | 被举报 154 | 被捕 155 | 快疯了 156 | 阴谋 157 | 公然撒谎 158 | 不舒服 159 | 赔了夫人又折兵 160 | 胆大妄为 161 | 敲诈勒索 162 | 蓝瘦 163 | 塌陷 164 | 利差收窄 165 | 堪忧 166 | 重大打击 167 | 摊上大事 168 | 霸占 169 | 断崖狂泻 170 | 内幕交易 171 | 指责 172 | 瑕疵 173 | 暗黑情节 174 | 不正常 175 | 威胁 176 | 拖欠 177 | 工资被扣 178 | 拒绝 179 | 捣毁 180 | 被捕入狱 181 | 去世 182 | 不乐观 183 | 可怕 184 | 下流 185 | 输得 186 | 可怜 187 | 打不开 188 | 替考抢手 189 | 炮轰 190 | 少缴税 191 | 效果很差 192 | 给我滚 193 | 重灾区 194 | 骗 195 | 离职 196 | 遭受 197 | 沉重一击 198 | 包养 199 | 退市风险 200 | 违心 201 | 无能 202 | 能力堪忧 203 | 被劫持 204 | 黑色 205 | 一怒之下 206 | 不好 207 | 遇袭 208 | 闪崩 209 | 挨板子 210 | 晦气 211 | 尾盘跳水 212 | 红绿灯问题 213 | 情操扫地 214 | 利润下滑 215 | 波动剧烈 216 | 撤离 217 | 挖鼻 218 | 之劫 219 | 买不起 220 | 涂鸦道歉 221 | 有点蠢 222 | 涉黑洗钱 223 | 洗劫 224 | 低端 225 | 维权 226 | 业绩惨淡 227 | 太烂了 228 | 裁员 229 | 挂了 230 | 保壳 231 | 场面混乱 232 | 沦陷 233 | 妖股 234 | 后遗症 235 | 亏钱 236 | 可惜 237 | 期债暴动 238 | 恶心 239 | 兴风作浪 240 | 障碍 241 | 破位 242 | 超期服役 243 | 撞断 244 | 担忧 245 | 跌掉 246 | 违章停车 247 | 天价学区房 248 | 监管函 249 | 大盗横行 250 | 车祸 251 | 砸玻璃 252 | 阵痛 253 | 污蔑 254 | 牛逼 255 | 不良 256 | 非法销售 257 | 监管措施 258 | 好差 259 | 重灾 260 | 认购不足 261 | 悲剧 262 | 生死线 263 | 埋雷 264 | 玩死你 265 | 抢走 266 | 装B 267 | 抛掉 268 | 妖魔鬼怪 269 | 围剿 270 | 封杀 271 | 生无可恋 272 | 接盘侠 273 | 赔偿纠纷 274 | 监管风暴 275 | 市值缩水 276 | 震荡跌 277 | 遭刺 278 | 失足 279 | 有难处 280 | 戴绿帽 281 | 尸体 282 | 狗血 283 | 叛国 284 | 被迫 285 | 大盘大跌 286 | 虚妄 287 | 背锅 288 | 被带走调查 289 | 变态 290 | 错失 291 | 出大事 292 | 亮黄牌 293 | 严处 294 | 坏消息 295 | 低估 296 | 网签瘫痪 297 | 迫害入狱 298 | 泡水 299 | 倾家荡产 300 | 举国震惊 301 | 下跌 302 | 抱怨 303 | 一塌糊涂 304 | 不雅事件 305 | 操你娘 306 | 发生火灾 307 | 太过分 308 | 急跌 309 | 边打边退 310 | 扫货 311 | 资产荒 312 | 雷区 313 | 网络诈骗 314 | 中招 315 | 恨透 316 | 血本无归 317 | 逃债 318 | 跌逾 319 | 弊端 320 | 可悲 321 | 施工扰民 322 | 追究 323 | 奸商 324 | 更毒 325 | 争夺 326 | 错误 327 | 捏造 328 | 有病 329 | 走狗 330 | 纠纷 331 | 下挫 332 | 山寨店 333 | 严重 334 | 认罪 335 | 欺诈 336 | 毁容 337 | 萨德 338 | 刁难 339 | 伏地痛哭 340 | 坑害业主 341 | 跌多涨少 342 | 双低股 343 | 黑社会 344 | 安全问题 345 | 跌停 346 | 三杀 347 | 赔了 348 | 风险较大 349 | 两难 350 | 情杀案 351 | 王八股 352 | 绊倒 353 | 星光黯淡 354 | 死法 355 | 受贿 356 | 管理不严 357 | 减少 358 | 泄露 359 | 假贵州茅台 360 | 砒霜 361 | 告吹 362 | 错 363 | 诈欺老百姓 364 | 剧震 365 | 下三滥 366 | 贪婪 367 | 很痛 368 | 被曝 369 | 坐牢 370 | 不准 371 | 牢笼 372 | 遭质疑 373 | 倒霉 374 | 怒斥 375 | 灾难 376 | 难 377 | 逃亡 378 | 跑都跑不了 379 | 回落 380 | 霸道 381 | 下杀 382 | 扰动 383 | 迟迟不涨 384 | 超低 385 | 骚动 386 | 工伤事故 387 | 背黑锅 388 | 拉低 389 | 投诉无门 390 | 散伙饭 391 | 丢人 392 | 领跌 393 | 高利贷 394 | 房价暴涨 395 | 低开 396 | 臭逼 397 | 惨痛教训 398 | 血洗 399 | 大降 400 | 倒下 401 | 耍流氓 402 | 急速下跌 403 | 多重打击 404 | 太失败了 405 | 不到位 406 | 跑步婊 407 | 贪官 408 | 新低 409 | 后尘 410 | 被罚款 411 | 管理混乱 412 | 毒性 413 | 溃败 414 | 黑天鹅扎堆 415 | 没牌照 416 | 拖后腿 417 | 浮亏 418 | 狗腿子 419 | 点名批评 420 | 抢匪 421 | 玩坏了 422 | 杀人 423 | 拐卖儿童 424 | 报复 425 | 痛悔 426 | 戳中痛点 427 | 太狗逼 428 | 起诉索赔 429 | 天价 430 | 至今未果 431 | 家庭矛盾 432 | 未严格执行 433 | 难持续 434 | 查处 435 | 黑平台 436 | 大幅回落 437 | 痛彻心扉 438 | 不靠谱 439 | 用电难 440 | 面临考验 441 | 猖獗 442 | 难现 443 | 惨 444 | 搅局 445 | 自负 446 | 三连阴 447 | 一死一伤 448 | 让人寒心 449 | 勾结 450 | 涉嫌违约 451 | 贪污 452 | 假酒 453 | 蒙人 454 | 移送司法 455 | 闯祸 456 | 涨不了 457 | 我他妈 458 | 畸形 459 | 侵害 460 | 霾腐 461 | 弱势 462 | 厮杀 463 | 黑心医院 464 | 波折不断 465 | 利益输送 466 | 骗了 467 | 走远 468 | 缺位 469 | 吃过亏 470 | 黑餐厅 471 | 不雅视频 472 | 罚金 473 | 谋套利 474 | 失足坠楼 475 | 涉案 476 | 烂尾 477 | 欺人太甚 478 | 被起诉 479 | 隐患 480 | 被诉 481 | 性侵 482 | 僵尸企业 483 | 不讲羞耻 484 | 不景气 485 | 夭折 486 | 罚单 487 | 造谣 488 | 异常波动 489 | 监禁 490 | 恶化 491 | 集体跳槽 492 | 无耻 493 | 怼 494 | 内购 495 | 地产深渊 496 | 暴动 497 | 请辞 498 | 之争 499 | 欺骗消费者 500 | 欺压 501 | 忧虑 502 | 突查 503 | 经济压力 504 | 几家愁 505 | 得罪 506 | 饭碗危机 507 | 偷工减料 508 | 崩盘 509 | 谩骂 510 | 投诉 511 | 更大炒作 512 | 遭资金撤离 513 | 经济纠纷 514 | 非法吸资 515 | 乱象 516 | 还跌 517 | 幕后黑手 518 | 大幅下挫 519 | 取缔 520 | 欠费 521 | 吞公款 522 | 短线弱势 523 | 草泥马 524 | 不敢作为 525 | 双降 526 | 负债 527 | 强烈抗议 528 | 受害人 529 | 伪劣 530 | 用不了 531 | 误导消费 532 | 债权逾期 533 | 险恶 534 | 夹缝中生存 535 | 对倒 536 | 乌烟瘴气 537 | 逼疯了 538 | 破产 539 | 忧伤 540 | 下滑 541 | 群起而攻之 542 | 在跌 543 | 开打 544 | 小贬 545 | 烂 546 | 股权争夺战 547 | 孤陋寡闻 548 | 重挫 549 | 溃不成军 550 | 惨遭 551 | 暴打 552 | 赌博 553 | 无赖 554 | 排污 555 | 操你妈 556 | 乱吵吵 557 | 无法实现 558 | 流氓事件 559 | 炸成两半 560 | 颓败 561 | 损失 562 | 麻烦 563 | 千疮百孔 564 | 冻结 565 | 虚假 566 | 股权大战 567 | 累及 568 | 哄抬 569 | 更坑 570 | 哄抢 571 | 吊销执照 572 | 重伤 573 | 游行抗议 574 | 挖坑 575 | 资金撤离 576 | 电影抄作业 577 | 大跳水 578 | 坚决反对 579 | 暴露 580 | 亮红灯 581 | 鸡肋行情 582 | 扭曲 583 | 难混 584 | 害得我 585 | 忏悔 586 | 质量问题 587 | 更低 588 | 唯利是图 589 | 拉仇恨 590 | 痛斥 591 | 被埋 592 | 账号被盗 593 | 违建 594 | 粗工烂造 595 | 诈骗 596 | 恶 597 | 不尊重 598 | 女老虎 599 | 关灯吃面 600 | 怪象 601 | 腐败 602 | 失算 603 | 失责 604 | 垄断 605 | 失败 606 | 成本悬殊 607 | 违约金 608 | 反对 609 | 调贬 610 | 放弃 611 | 误读 612 | 荒诞剧 613 | 谈崩 614 | 抄底 615 | 差劲 616 | 虚假宣传 617 | 關店 618 | 早夭 619 | 蒙骗 620 | 集体暴动 621 | 野蛮 622 | 要死不活 623 | 碰瓷 624 | 采取监管措施 625 | 减持 626 | 比特币 627 | 受阻 628 | 被罰 629 | 被爆料 630 | 盗窃 631 | 无人管理 632 | 被罚 633 | 素质差 634 | 涉嫌犯罪 635 | 妈的 636 | 猫腻 637 | 勒索 638 | 风险 639 | 离谱 640 | 绑架 641 | 忽悠 642 | 坑民股 643 | 学区房 644 | 中饱私囊 645 | 骗子 646 | 不知羞耻 647 | 狗日的 648 | 真可怕 649 | 减刑 650 | 拖垮 651 | 病毒 652 | 解禁 653 | 弃购 654 | 命悬一线 655 | 赔偿 656 | 炸了 657 | 学区房乱象 658 | 赌场 659 | 无商业道德 660 | 谬误 661 | 监管趋严 662 | 杀死 663 | 作死 664 | 上访无效 665 | 嫌疑 666 | 输光了 667 | 接受调查 668 | 走低 669 | 粗工滥造 670 | 污染 671 | 渣男 672 | 乱收费 673 | 贬值 674 | 像狗一般 675 | 证监会介入 676 | 败落 677 | 跳楼 678 | 看守所 679 | 被双开 680 | 负增长 681 | 抗议 682 | 说瞎话 683 | 莽撞 684 | 异常 685 | 跌破 686 | 幕后推手 687 | 降幅 688 | 下行 689 | 罚款 690 | 脏乱差 691 | 政商漩涡 692 | 变天 693 | 违规 694 | 惨淡 695 | 淘汰 696 | 傻逼 697 | 敲诈 698 | 被调查 699 | 缺欠 700 | 航班延误 701 | 没劲儿 702 | 素质低 703 | 豆腐渣 704 | 交易黑幕 705 | 熏死人 706 | 狠狠地 707 | 禁止 708 | 损坏 709 | 被骗 710 | 遭挑衅 711 | 侵权 712 | 病态 713 | 心寒 714 | 补刀 715 | 强拆 716 | 佛挡杀佛 717 | 不可理喻 718 | 双规 719 | 嗜血 720 | 谴责 721 | 不达标 722 | 隐忧 723 | 心酸 724 | 奇葩 725 | 立案侦查 726 | 接受组织调查 727 | 实名举报 728 | 缩水 729 | 阴损 730 | 囚犯 731 | 发霉 732 | 挪用 733 | 暗中 734 | 吓尿了 735 | 难以持续 736 | 停牌 737 | 狠心 738 | 高风险 739 | 急眼 740 | 逃票 741 | 质量差 742 | 铜臭味 743 | 预减 744 | 血腥 745 | 裤衩都没了 746 | 被套 747 | 出逃 748 | 长城刻字留名 749 | 吃亏 750 | 撑多久 751 | 处罚 752 | 苦不堪言 753 | 猪队友 754 | 夹击 755 | 骂娘 756 | 失控 757 | 致癌 758 | 胆寒 759 | 赶走 760 | 丧尽天良 761 | 白忙 762 | 走弱 763 | 透支 764 | 擅自更变 765 | 不实 766 | 底裤 767 | 奢侈浪费 768 | 你咋不上天呢 769 | 苦逼 770 | 不按时缴款 771 | 脑残 772 | 压坏 773 | 严重违纪 774 | 活该 775 | 不知情 776 | 少赚 777 | 认怂 778 | 休想 779 | 挟持 780 | 悲伤 781 | 逃避 782 | 不确定性 783 | 垃圾 784 | 白血病患儿 785 | 降到 786 | 疑惑重重 787 | 骗财骗色 788 | 安全隐患 789 | 戒烟令 790 | 收紧 791 | 添禁药 792 | 困境 793 | 遭罚 794 | 不翼而飞 795 | 太低 796 | 爆粗口 797 | 有心无力 798 | 财富损失 799 | 黑心 800 | 卖丢了 801 | 工资未发 802 | 漩涡 803 | 说谎 804 | 贬值幅度 805 | 官商勾结 806 | 菜啦 807 | 抓狂 808 | 圈养 809 | 郭广昌 810 | 中伤 811 | 有点亏 812 | 太失望 813 | 被质疑 814 | 创新低 815 | 违反 816 | 钓鱼执法 817 | 查了 818 | 亏掉 819 | 肇事 820 | 减仓 821 | 蛇鼠横行 822 | 滞后 823 | 撤出 824 | 受牵连 825 | 不满 826 | 难觅 827 | 放水 828 | 叛徒 829 | 水涨船高 830 | 负面 831 | 恐慌 832 | 领罚单 833 | 租不起 834 | 患儿 835 | 奸诈 836 | 悬了 837 | 踩雷 838 | 减薪 839 | 跑路 840 | 大跌 841 | 吐槽 842 | 犯傻 843 | 延误 844 | 坑害 845 | 拖欠工程款 846 | 最差 847 | 衰败 848 | 整垮 849 | 暗藏阴谋 850 | 脱实向虚 851 | 首堵 852 | 人气涣散 853 | 无语 854 | 退出 855 | 抄家 856 | 涨价 857 | 废话连篇 858 | 盗贼 859 | 小混混 860 | 遇冷 861 | 无证 862 | 老赖 863 | 萎缩 864 | 深跌 865 | 搞事情 866 | 遭调查 867 | 挂羊头卖狗肉 868 | 落马 869 | 失踪 870 | 火灾隐患 871 | 蝇头小利 872 | 被架空 873 | 猛跌 874 | 检讨 875 | 身亡 876 | 干部送礼 877 | 拖累 878 | 赝品 879 | 油老鼠 880 | 砸车 881 | 跳水 882 | 虚假人生 883 | 难以打破 884 | 股权之争 885 | 恶业 886 | 不顺利 887 | 不安因素 888 | 打破 889 | 龌蹉交易 890 | 逮捕 891 | 惊天大盗 892 | 瞎哔哔 893 | 全面降 894 | 逃跑 895 | 矛盾 896 | 信息披露 897 | 坑爹 898 | 开除 899 | 从未赚钱 900 | 严重背驰 901 | 故障 902 | 恶性 903 | 变脸真快 904 | 骗局 905 | 旅游骗局 906 | 感情破裂 907 | 垃圾股 908 | 理赔缩水 909 | 风水有问题 910 | 肆意妄为 911 | 豁开 912 | 忍不了 913 | 贫困 914 | 狗窝 915 | 封死 916 | 郁闷 917 | 一网打尽 918 | 洗牌 919 | 牢狱 920 | 非法窃取 921 | 横冲直撞 922 | 骗术 923 | 删除 924 | 躲闪 925 | 违约 926 | 老色鬼 927 | 违纪 928 | 狂飙 929 | 趁火打劫 930 | 欺骗 931 | 不安分 932 | 查纠 933 | 血案 934 | 连亏 935 | 抗议书 936 | 通报 937 | 不利 938 | 洗盘 939 | 疯狂 940 | 欠押金 941 | 新寡头 942 | 污小秽贴吧 943 | 净利双降 944 | 真是坑 945 | 遭遇 946 | 高不可攀 947 | 违规交易 948 | 跪了 949 | 惨谈 950 | 索贿 951 | 没脑子 952 | 眼泪 953 | 崩塌 954 | 噪音大 955 | 引爆 956 | 爆炸 957 | 受影响 958 | 气死 959 | 再批 960 | 转移赃款 961 | 跌幅居前 962 | 贷款逾期 963 | 强占 964 | 下行趋势 965 | 沉重打击 966 | 坑杀 967 | 人渣 968 | 贱卖 969 | 囚养 970 | 要脸吗 971 | 泥潭 972 | 烂逼 973 | 泣血 974 | 妖精 975 | 慌了 976 | 没啥 977 | 坏账 978 | 乱停车 979 | 退守 980 | 逼急了 981 | 夜间施工 982 | 抛售 983 | 暗雷 984 | 病逝 985 | 混的太差 986 | 理赔纠纷 987 | 严重不足 988 | 爆雷 989 | 打脸 990 | 质量真差 991 | 罕见异象 992 | 内幕 993 | 突降 994 | 延期 995 | 经济犯 996 | 堵死 997 | 变数 998 | TMD 999 | 吊销 1000 | 抄袭 1001 | 自杀 1002 | 被扣分 1003 | 欠款 1004 | 巨贪 1005 | 引争议 1006 | 惩罚 1007 | 臭死 1008 | 涉嫌 1009 | 难产 1010 | 黑名单 1011 | 被調查 1012 | 被炒 1013 | 打劫 1014 | 断粮 1015 | 股权争夺 1016 | 安全事故 1017 | 办假操作证 1018 | 交通事故 1019 | 滚 1020 | 太坏了 1021 | 拘留 1022 | 楼市泡沫 1023 | 套路 1024 | 违章 1025 | 圈得更多 1026 | 泄漏 1027 | 没法 1028 | 通报批评 1029 | 深套 1030 | 变盘 1031 | 一手遮天 1032 | 要案 1033 | 股价摧 1034 | 敌对势力 1035 | 元凶 1036 | 被警察带走 1037 | 说翻就翻 1038 | 换股 1039 | 撤销 1040 | 下降 1041 | 七连阴 1042 | 降至 1043 | 分歧 1044 | 陷入瓶颈 1045 | 死掉 1046 | 不足 1047 | 无力 1048 | 无良 1049 | 死了爹 1050 | 不忠 1051 | 陨落 1052 | 故意 1053 | 植物人 1054 | 吃里扒外 1055 | 群殴 1056 | 野蛮人 1057 | 举报 1058 | 被雷击 1059 | 辞职 1060 | 雪崩 1061 | 堵成粥 1062 | 哪里逃 1063 | 非法 1064 | 墨迹 1065 | 颤抖 1066 | 被困 1067 | 失守 1068 | 惨跌 1069 | 冲击 1070 | 出轨 1071 | 惹怒 1072 | 鞠瑾 1073 | 错了 1074 | 推诿扯皮 1075 | 认证不了 1076 | 人品太次 1077 | 报案 1078 | 财务作假 1079 | 立案调查 1080 | 初漏端倪 1081 | 藏雷 1082 | 致命 1083 | 暴雨袭来 1084 | 嫌 1085 | 恶意 1086 | 核辐射 1087 | 裸照 1088 | 骂人 1089 | 中毒 1090 | 规避监管 1091 | 倒掉 1092 | 配合查证 1093 | 弱爆了 1094 | 愧对 1095 | 尴尬 1096 | 被监听 1097 | 混淆视听 1098 | 推脱 1099 | 误区 1100 | 秒亏 1101 | 存疑 1102 | 负债率 1103 | 外欠债 1104 | 再遭 1105 | 王功伟 1106 | 摊上事 1107 | 臭大姐 1108 | 窘境 1109 | 颓势 1110 | 警惕 1111 | 受贿贪污 1112 | 挪去 1113 | 不长久 1114 | 逼死 1115 | 无奈 1116 | 挤兑 1117 | 上访无门 1118 | 能蒙就蒙 1119 | 龌龊 1120 | 不作为 1121 | 三观不正 1122 | 造了什么孽 1123 | 火灾 1124 | 剥削 1125 | 资本外流 1126 | 止损 1127 | 漏洞 1128 | 难题 1129 | 出事 1130 | 垮台 1131 | 差评 1132 | 傲慢无礼 1133 | 难熬 1134 | 异地被刷 1135 | 流氓 1136 | 假羊肉 1137 | 泄气 1138 | 跌到 1139 | 有后台 1140 | 负利率 1141 | 隐性失业潮 1142 | 巨震 1143 | 遭查 1144 | 被宣判 1145 | 鸡肋 1146 | 人不行 1147 | 刑拘 1148 | 离场 1149 | 违背承诺 1150 | 风光不再 1151 | 陷阱 1152 | 都是sb 1153 | 高烧 1154 | 失望 1155 | 非法集资 1156 | 劝阻 1157 | 清理 1158 | 赎罪 1159 | 关门 1160 | 关闭 1161 | 窃 1162 | 猝死 1163 | 围歼 1164 | 黑作坊 1165 | 凭什么 1166 | 吓哭 1167 | 利空出尽 1168 | 推卸责任 1169 | 吓唬谁 1170 | 遏制 1171 | 披露 1172 | 电梯困人 1173 | 滥竽充数 1174 | 饭桶 1175 | 哭晕 1176 | 黑中介 1177 | 被批捕 1178 | 开除党籍 1179 | 停滞 1180 | 被抓 1181 | 困局 1182 | 阻止 1183 | 救不了 1184 | 露出尾巴 1185 | 何去何从 1186 | 投诉举报 1187 | 大盘要倒 1188 | 风险加大 1189 | 缺口 1190 | 没货了 1191 | 遭伏击 1192 | 诈金花 1193 | 处分 1194 | 假的 1195 | 被砸 1196 | 撕逼 1197 | 劣质 1198 | 风险加剧 1199 | 被砍 1200 | 不堪 1201 | 亏损 1202 | 隐瞒 1203 | 围猎 1204 | 黑心开发商 1205 | 撕逼战 1206 | 鄙视链 1207 | 权益难保 1208 | 骂外地人 1209 | 能宰就宰 1210 | 失联 1211 | 失职 1212 | 贫穷 1213 | 断裂 1214 | 搞死 1215 | 盗刷 1216 | 非法施工 1217 | 无视人命 1218 | 彩金 1219 | 造假 1220 | 坑苦 1221 | 违规开户 1222 | 侵吞 1223 | 遭批 1224 | 被踢出局 1225 | 遇阻 1226 | 遭冻结 1227 | 退市 1228 | 无证施工 1229 | 岌岌可危 1230 | 套路满满 1231 | 越来越差 1232 | 梦想破灭 1233 | 睡了 1234 | 无耻奸商 1235 | 遭驳回 1236 | 那么差 1237 | 怒喊 1238 | 连环套 1239 | 病了 1240 | 怒喷 1241 | 手无寸铁 1242 | 垃圾平台 1243 | 扩容之殇 1244 | 盗 1245 | 开门黑 1246 | 没有希望 1247 | 贻害 1248 | 被查 1249 | 跌个没完 1250 | 鬼怪蛇神 1251 | 告诫 1252 | 危桥 1253 | 大肆抛售 1254 | 损害 1255 | 吕锡文 1256 | 相爱相杀 1257 | 连跌 1258 | 低迷 1259 | 作废 1260 | 關註 1261 | 整治 1262 | 降息 1263 | 血汗钱 1264 | 自毁前程 1265 | 获刑 1266 | 不安全 1267 | 被批 1268 | 撤退 1269 | 系统故障 1270 | 没钱 1271 | 死撑 1272 | 司法不公 1273 | 公诉 1274 | 被打 1275 | 历史新低 1276 | 报假案 1277 | 之死 1278 | 缺德 1279 | 丧失人性 1280 | 不合理 1281 | 被套住 1282 | 虧損 1283 | 遭疑 1284 | 压力较重 1285 | 多事之秋 1286 | 坑骗 1287 | 残局 1288 | 破损 1289 | 暗藏玄机 1290 | 净亏损 1291 | 跌幅扩大 1292 | 贪腐 1293 | 挣扎 1294 | 股灾 1295 | 绝症 1296 | 更大风暴 1297 | 终成空 1298 | 卖房救急 1299 | 幺蛾子 1300 | 股票被套 1301 | 生变 1302 | 坏掉了 1303 | 头破血流 1304 | 狂风暴雨 1305 | 人身损害 1306 | 市场操纵 1307 | 霸王条款 1308 | 禁药 1309 | 曝光 1310 | 容易吗 1311 | 怒掀 1312 | 惹的祸 1313 | 受伤 1314 | 哭了 1315 | 假茅台 1316 | 撕破脸 1317 | 下狠手 1318 | 回光返照 1319 | 锐减 1320 | 算不上乐观 1321 | 寸步难行 1322 | 被双规 1323 | 被逮捕 1324 | 扰乱 1325 | sb 1326 | 三步倒 1327 | 一贫如洗 1328 | 沸沸扬扬 1329 | 骗钱 1330 | 舔血 1331 | 遇险 1332 | 能黑就黑 1333 | 酒驾 1334 | 犯罪 1335 | 开撕 1336 | 杀手 1337 | 杀跌 1338 | 潜规则 1339 | 哄抬价格 1340 | 侵犯 1341 | 逾期 1342 | 假结婚 1343 | 跌两成 1344 | 结局很惨 1345 | 疯狂透支 1346 | 降低 1347 | 地位不稳 1348 | 装逼 1349 | 抢孩子 1350 | 被清仓 1351 | 阴跌 1352 | 瘫痪 1353 | 套现 1354 | 真凶 1355 | 衰退 1356 | 埋伏 1357 | 丑陋 1358 | 悲观 1359 | 下跌风险 1360 | 发飙怒喷 1361 | 折腾死 1362 | 连阴 1363 | 异动明显 1364 | 发飙 1365 | 降级 1366 | 操控 1367 | 定罪 1368 | 止损出局 1369 | 黑榜 1370 | 毁 1371 | 无法登陆 1372 | 洗钱 1373 | 臭名远扬 1374 | 问题频出 1375 | 输掉 1376 | 换帅 1377 | 引发跳水 1378 | 黑客攻击 1379 | 无暇理会 1380 | 鄙视 1381 | 困死了 1382 | 焦躁难耐 1383 | 花圈 1384 | 假牛市 1385 | 你也配 1386 | 车辆逆行 1387 | 空虚 1388 | 萧条 1389 | 暴跌 1390 | 黑洞 1391 | 空置率上升 1392 | 哀股 1393 | 遭拒 1394 | 跌了 1395 | 大盘失守 1396 | 山寨社团 1397 | 乱投放 1398 | 遗憾 1399 | 再曝 1400 | 失修 1401 | 失信 1402 | 连降 1403 | 无法律保障 1404 | 乌龙指 1405 | 跌的 1406 | 跌幅 1407 | 没亮点 1408 | 挥霍 1409 | 黑锅 1410 | 不良记录 1411 | 贿赂 1412 | 救赎 1413 | 坠落 1414 | 不干满 1415 | 严查 1416 | 暗含深意 1417 | 输了 1418 | 一坨屎 1419 | 高仿 1420 | 偷 1421 | 卑鄙 1422 | 债台高筑 1423 | 坑人 1424 | 异动股 1425 | 土鳖 1426 | 涉嫌违法 1427 | 起火 1428 | 诡异 1429 | 铝超标 1430 | 十面埋伏 1431 | 态度恶劣 1432 | 降两成 1433 | 痛批 1434 | 没戏 1435 | 被判 1436 | 黑车 1437 | 赔 1438 | 含泪 1439 | 仍跌 1440 | 作弊 1441 | 阴险 1442 | 不要脸 1443 | 大幅缩水 1444 | 出狱 1445 | 仍单薄 1446 | 欠薪 1447 | 砍杀 1448 | 大便 1449 | 包夜 1450 | 打压 1451 | 黄脸婆 1452 | 解散 1453 | 割伤 1454 | 流失 1455 | 奢靡浪费 1456 | 费用增加 1457 | 烦恼 1458 | 悲催 1459 | 扰乱市场 1460 | 傻眼 1461 | 铲除 1462 | 国资流失 1463 | 尼玛 1464 | 抛弃 1465 | 烂股 1466 | 涉嫌造假 1467 | 生死劫 1468 | 伪平台 1469 | 抢房假象 1470 | 坑 1471 | 严厉批评 1472 | 危险 1473 | 永远在路上 1474 | 淫威 1475 | 炒作 1476 | 什么鬼 1477 | 司法腐败 1478 | 黑幕 1479 | 假冒 1480 | 惊人内幕 1481 | 调查 1482 | 打虎 1483 | 欠佳 1484 | 燃气泄漏 1485 | 愚人 1486 | 风波 1487 | 会哭 1488 | 急剧下滑 1489 | 被中介骗 1490 | 杀熟 1491 | 杀融资 1492 | 遭痛批 1493 | 甩卖 1494 | 法官不作为 1495 | 代开 1496 | 老虎 1497 | 恶意做空 1498 | 猥琐 1499 | 恐怖袭击 1500 | 应急 1501 | 外欠 1502 | 坍塌事故 1503 | 涉赌 1504 | 监狱 1505 | 大幅萎缩 1506 | 非法侵占 1507 | 围堵 1508 | 形同虚设 1509 | 甲醛超标 1510 | 谁之过 1511 | 遭殃 1512 | 被爆 1513 | 耍大牌 1514 | 崩溃 1515 | 地雷 1516 | 问题平台 1517 | out 1518 | 首虎 1519 | 罪恶 1520 | 死亡 1521 | 未缴款 1522 | 被杀 1523 | 狗杂种 1524 | 炸裂脸 1525 | 死于 1526 | 狗逼 1527 | 转移脏款 1528 | 咬疼 1529 | 死了 1530 | 更坑更黑 1531 | 私开 1532 | 额度清零 1533 | 妄议 1534 | 地王之争 -------------------------------------------------------------------------------- /stock_prediction/django/myblog/blog/tendency_judge/pre1.xlsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhengguowei/stock_prediction/ee12d70c0cef25866e0c2c773a1a9492ce0622df/stock_prediction/django/myblog/blog/tendency_judge/pre1.xlsx -------------------------------------------------------------------------------- /stock_prediction/django/myblog/blog/tendency_judge/predict.txt: -------------------------------------------------------------------------------- 1 | 中立 [0.52766591, 0.47233415] 2 | 负面 [0.4223237, 0.57767624] 3 | -------------------------------------------------------------------------------- /stock_prediction/django/myblog/blog/tendency_judge/tf_util.py: -------------------------------------------------------------------------------- 1 | # coding=utf-8 2 | 3 | import tensorflow as tf 4 | 5 | ''' 6 | 本模块为tensorflow工具包 7 | function 8 | add_embedding -- 添加embedding 9 | data_mean -- 算句子的向量表示,用词算平均值的方式 10 | create_learning_rate -- 指数下降学习率 11 | check_accuracy -- 计算正确率 12 | train_optimizer -- 训练 13 | add_loss_op -- 添加损失函数操作 14 | ''' 15 | 16 | def add_embedding(embedding_matrix, x_ph_ids): 17 | ''' 18 | 添加embedding 19 | :param embedding_matrix: embedding矩阵 20 | :param x_ph_ids: x_placeholder 21 | :return: embedding变量和用embedding表示过得向量 22 | ''' 23 | embedding = tf.Variable(embedding_matrix, name='Embedding', trainable=True) 24 | x_ph_embedding = tf.nn.embedding_lookup(embedding, x_ph_ids) 25 | return embedding, x_ph_embedding 26 | 27 | 28 | def data_mean(x_batch, sent_len_batch, dim): 29 | ''' 30 | 算句子的向量表示,用词算平均值的方式 31 | :param x_batch:一批句子表示 32 | :param sent_len_batch: 句子长度 33 | :param dim: 轴 34 | :return: 一批句子向量 35 | ''' 36 | # 句子的限制长度 37 | limit_len = tf.shape(x_batch)[dim] 38 | # -------mask---------- 39 | mask = tf.sequence_mask(sent_len_batch, limit_len) 40 | mask_reshape = tf.reshape(mask, shape=(-1, limit_len, 1)) 41 | x_batch_mask = x_batch * tf.cast(mask_reshape, dtype=x_batch.dtype) 42 | # ------------------------ 43 | sum = tf.reduce_sum(x_batch_mask, dim) 44 | sent_len_batch_rank = tf.reshape(sent_len_batch, shape=(-1, 1)) 45 | avg = sum / (tf.to_float(sent_len_batch_rank) + 1e-20) 46 | return avg 47 | 48 | def create_learning_rate(learning_rate_start,global_step, decay_steps, decay_rate , staircase=True): 49 | ''' 50 | 指数下降学习率 51 | learning_rate = start_rate * (decay_rate)^(global_step/decay_steps) 52 | 53 | 公式中,learning_rate: 当前的学习速率 54 | start_rate:最初的学习速率 55 | decay_rate:每轮学习的衰减率,0300741: 37 | stock_flag='sh' 38 | else: 39 | stock_flag='sz' 40 | tmp_url='http://image.sinajs.cn/newchart/daily/n/%s%s.gif'%(stock_flag,stock_id) 41 | model.downImg(tmp_url,'/blog/static/blog/bootstrap/img','stock.gif') 42 | #preprocess the data 43 | try: 44 | train,target,remain_predict,five_test,five_true,last_price,data,year_test,year_true,base=model.preprocess_data() 45 | except: 46 | data_download=True 47 | #fit bp model 48 | if not data_download: 49 | fusion_model=model.bp_fit(train,target) 50 | # predict the bp value of the stock of next day 51 | bp_predict, fusion_predict=model.bp_predict(fusion_model,remain_predict) 52 | year_prediction=model.bp_predict(fusion_model,year_test) 53 | fusion_benifit=0.0 54 | lstm_benifit=0.0 55 | fusion_year_prediction,lstm_year_prediction=year_prediction[0].tolist(),year_prediction[1].tolist() 56 | 57 | for i in range(len(fusion_year_prediction)): 58 | if fusion_year_prediction[i]>base[i]: 59 | fusion_benifit+=(year_true[i]-base[i]) 60 | if lstm_year_prediction[i]>base[i]: 61 | lstm_benifit+=(year_true[i]-base[i]) 62 | #i=0 63 | # while i=base[i]: 65 | # continue 66 | # else: 67 | # fusion_benifit += (fusion_year_prediction[i] - year_true[i]) 68 | # if lstm_year_prediction[i]>base[i]: 69 | # lstm_benifit += (lstm_year_prediction[i] - year_true[i]) 70 | # i+=1 71 | 72 | five_bp,five_lstm=model.bp_predict(fusion_model,five_test) 73 | five_bp, five_lstm=five_bp.tolist(),five_lstm.tolist() 74 | five=[] 75 | predictions=[] 76 | for i in range(len(five_true)): 77 | predictions.append([five_true[i],five_bp[i],five_lstm[i]]) 78 | for i in range(len(five_bp)): 79 | recent = models.Prediction_com(data=data[i],true_date=round(five_true[i],2),bp_predict=round(five_bp[i],2),lstm_predict=round(five_lstm[i],2),bp_error=round(five_bp[i]-five_true[i],2),lstm_error=round(five_lstm[i]-five_true[i],2)) 80 | five.append(recent) 81 | # fit and predict the value) 82 | lstm_predict=None 83 | try: 84 | model_lstm=model.lstm_fit(train,target) 85 | lstm_predict = model.lstm_predict(model_lstm, remain_predict) 86 | except: 87 | lstm_predict=fusion_predict 88 | #judge the accuracy 89 | if lstm_predict/bp_predict>1.08 or lstm_predict/bp_predict<0.92: 90 | lstm_predict = fusion_predict 91 | lstm_predict,bp_predict=lstm_predict.tolist()[0],bp_predict.tolist()[0] 92 | else: 93 | # tmp_price=model.get_price(stock_flag,stock_id) 94 | # lstm_predict,bp_predict=model.get_api_price(tmp_price) 95 | lstm_predict, bp_predict=0.0,0.0 96 | print lstm_benifit,fusion_benifit 97 | prices=models.Prices(lstm_price=lstm_predict,bp_price=bp_predict) 98 | if flag: 99 | company_name=model.get_commpany_name(param) 100 | else: 101 | company_name=param 102 | tmp_name=company_name.replace("A","").replace("B","").replace("*","") 103 | related_news=model.get_related_news(tmp_name) 104 | tendency=None 105 | if related_news: 106 | tendency=model.get_news_tendency(related_news) 107 | news=[] 108 | result = model.get_result(bp_predict, lstm_predict, last_price,tendency) 109 | if type(company_name)==list: 110 | company_name=company_name[0] 111 | if tendency: 112 | for i in range(len(tendency)): 113 | new=models.News(title=related_news[i][0],url=related_news[i][1],tentency=tendency[i][0]) 114 | news.append(new) 115 | return render(request,'test1.html',{'prediction_prices':prices, 'news': news,'stock_id':stock_id,'company_name':company_name,'five':five,'last_price':last_price,'fusion_benifit':fusion_benifit,'lstm_benifit':lstm_benifit,'result':result}) 116 | else: 117 | return render(request,'nothing.html') 118 | -------------------------------------------------------------------------------- /stock_prediction/django/myblog/blog/views.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhengguowei/stock_prediction/ee12d70c0cef25866e0c2c773a1a9492ce0622df/stock_prediction/django/myblog/blog/views.pyc -------------------------------------------------------------------------------- /stock_prediction/django/myblog/db.sqlite3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhengguowei/stock_prediction/ee12d70c0cef25866e0c2c773a1a9492ce0622df/stock_prediction/django/myblog/db.sqlite3 -------------------------------------------------------------------------------- /stock_prediction/django/myblog/manage.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python 2 | import os 3 | import sys 4 | 5 | if __name__ == "__main__": 6 | os.environ.setdefault("DJANGO_SETTINGS_MODULE", "myblog.settings") 7 | try: 8 | from django.core.management import execute_from_command_line 9 | except ImportError: 10 | # The above import may fail for some other reason. Ensure that the 11 | # issue is really that Django is missing to avoid masking other 12 | # exceptions on Python 2. 13 | try: 14 | import django 15 | except ImportError: 16 | raise ImportError( 17 | "Couldn't import Django. Are you sure it's installed and " 18 | "available on your PYTHONPATH environment variable? Did you " 19 | "forget to activate a virtual environment?" 20 | ) 21 | raise 22 | execute_from_command_line(sys.argv) 23 | -------------------------------------------------------------------------------- /stock_prediction/django/myblog/myblog/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhengguowei/stock_prediction/ee12d70c0cef25866e0c2c773a1a9492ce0622df/stock_prediction/django/myblog/myblog/__init__.py -------------------------------------------------------------------------------- /stock_prediction/django/myblog/myblog/__init__.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhengguowei/stock_prediction/ee12d70c0cef25866e0c2c773a1a9492ce0622df/stock_prediction/django/myblog/myblog/__init__.pyc -------------------------------------------------------------------------------- /stock_prediction/django/myblog/myblog/settings.py: -------------------------------------------------------------------------------- 1 | """ 2 | Django settings for myblog project. 3 | 4 | Generated by 'django-admin startproject' using Django 1.11.10. 5 | 6 | For more information on this file, see 7 | https://docs.djangoproject.com/en/1.11/topics/settings/ 8 | 9 | For the full list of settings and their values, see 10 | https://docs.djangoproject.com/en/1.11/ref/settings/ 11 | """ 12 | 13 | import os 14 | 15 | # Build paths inside the project like this: os.path.join(BASE_DIR, ...) 16 | BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__))) 17 | 18 | 19 | # Quick-start development settings - unsuitable for production 20 | # See https://docs.djangoproject.com/en/1.11/howto/deployment/checklist/ 21 | 22 | # SECURITY WARNING: keep the secret key used in production secret! 23 | SECRET_KEY = 's4ja#3^$pt$k9!jwhmjwd0zuoa+ky=fv#vytu8)54n!yla_e3x' 24 | 25 | # SECURITY WARNING: don't run with debug turned on in production! 26 | DEBUG = True 27 | 28 | ALLOWED_HOSTS = [] 29 | 30 | 31 | # Application definition 32 | 33 | INSTALLED_APPS = [ 34 | 'django.contrib.admin', 35 | 'django.contrib.auth', 36 | 'django.contrib.contenttypes', 37 | 'django.contrib.sessions', 38 | 'django.contrib.messages', 39 | 'django.contrib.staticfiles', 40 | 'blog' 41 | ] 42 | 43 | MIDDLEWARE = [ 44 | 'django.middleware.security.SecurityMiddleware', 45 | 'django.contrib.sessions.middleware.SessionMiddleware', 46 | 'django.middleware.common.CommonMiddleware', 47 | 'django.middleware.csrf.CsrfViewMiddleware', 48 | 'django.contrib.auth.middleware.AuthenticationMiddleware', 49 | 'django.contrib.messages.middleware.MessageMiddleware', 50 | 'django.middleware.clickjacking.XFrameOptionsMiddleware', 51 | ] 52 | 53 | ROOT_URLCONF = 'myblog.urls' 54 | 55 | TEMPLATES = [ 56 | { 57 | 'BACKEND': 'django.template.backends.django.DjangoTemplates', 58 | 'DIRS': [], 59 | 'APP_DIRS': True, 60 | 'OPTIONS': { 61 | 'context_processors': [ 62 | 'django.template.context_processors.debug', 63 | 'django.template.context_processors.request', 64 | 'django.contrib.auth.context_processors.auth', 65 | 'django.contrib.messages.context_processors.messages', 66 | ], 67 | }, 68 | }, 69 | ] 70 | 71 | WSGI_APPLICATION = 'myblog.wsgi.application' 72 | 73 | 74 | # Database 75 | # https://docs.djangoproject.com/en/1.11/ref/settings/#databases 76 | 77 | DATABASES = { 78 | 'default': { 79 | 'ENGINE': 'django.db.backends.sqlite3', 80 | 'NAME': os.path.join(BASE_DIR, 'db.sqlite3'), 81 | } 82 | } 83 | 84 | 85 | # Password validation 86 | # https://docs.djangoproject.com/en/1.11/ref/settings/#auth-password-validators 87 | 88 | AUTH_PASSWORD_VALIDATORS = [ 89 | { 90 | 'NAME': 'django.contrib.auth.password_validation.UserAttributeSimilarityValidator', 91 | }, 92 | { 93 | 'NAME': 'django.contrib.auth.password_validation.MinimumLengthValidator', 94 | }, 95 | { 96 | 'NAME': 'django.contrib.auth.password_validation.CommonPasswordValidator', 97 | }, 98 | { 99 | 'NAME': 'django.contrib.auth.password_validation.NumericPasswordValidator', 100 | }, 101 | ] 102 | 103 | 104 | # Internationalization 105 | # https://docs.djangoproject.com/en/1.11/topics/i18n/ 106 | 107 | LANGUAGE_CODE = 'en-us' 108 | 109 | TIME_ZONE = 'UTC' 110 | 111 | USE_I18N = True 112 | 113 | USE_L10N = True 114 | 115 | USE_TZ = True 116 | 117 | 118 | # Static files (CSS, JavaScript, Images) 119 | # https://docs.djangoproject.com/en/1.11/howto/static-files/ 120 | 121 | STATIC_URL = '/static/' 122 | 123 | STATICFILES_DIRS = ( 124 | os.path.join(BASE_DIR, 'static').replace('\\', '/'), 125 | ) -------------------------------------------------------------------------------- /stock_prediction/django/myblog/myblog/settings.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhengguowei/stock_prediction/ee12d70c0cef25866e0c2c773a1a9492ce0622df/stock_prediction/django/myblog/myblog/settings.pyc -------------------------------------------------------------------------------- /stock_prediction/django/myblog/myblog/urls.py: -------------------------------------------------------------------------------- 1 | """myblog URL Configuration 2 | 3 | The `urlpatterns` list routes URLs to views. For more information please see: 4 | https://docs.djangoproject.com/en/1.11/topics/http/urls/ 5 | Examples: 6 | Function views 7 | 1. Add an import: from my_app import views 8 | 2. Add a URL to urlpatterns: url(r'^$', views.home, name='home') 9 | Class-based views 10 | 1. Add an import: from other_app.views import Home 11 | 2. Add a URL to urlpatterns: url(r'^$', Home.as_view(), name='home') 12 | Including another URLconf 13 | 1. Import the include() function: from django.conf.urls import url, include 14 | 2. Add a URL to urlpatterns: url(r'^blog/', include('blog.urls')) 15 | """ 16 | from django.conf.urls import url,include 17 | from django.contrib import admin 18 | 19 | urlpatterns = [ 20 | url(r'^admin/', admin.site.urls), 21 | url(r'^blog/', include('blog.urls',namespace='blog')) 22 | ] 23 | -------------------------------------------------------------------------------- /stock_prediction/django/myblog/myblog/urls.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhengguowei/stock_prediction/ee12d70c0cef25866e0c2c773a1a9492ce0622df/stock_prediction/django/myblog/myblog/urls.pyc -------------------------------------------------------------------------------- /stock_prediction/django/myblog/myblog/wsgi.py: -------------------------------------------------------------------------------- 1 | """ 2 | WSGI config for myblog project. 3 | 4 | It exposes the WSGI callable as a module-level variable named ``application``. 5 | 6 | For more information on this file, see 7 | https://docs.djangoproject.com/en/1.11/howto/deployment/wsgi/ 8 | """ 9 | 10 | import os 11 | 12 | from django.core.wsgi import get_wsgi_application 13 | 14 | os.environ.setdefault("DJANGO_SETTINGS_MODULE", "myblog.settings") 15 | 16 | application = get_wsgi_application() 17 | -------------------------------------------------------------------------------- /stock_prediction/django/myblog/myblog/wsgi.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhengguowei/stock_prediction/ee12d70c0cef25866e0c2c773a1a9492ce0622df/stock_prediction/django/myblog/myblog/wsgi.pyc -------------------------------------------------------------------------------- /stock_prediction/django/myblog/predict.xls: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhengguowei/stock_prediction/ee12d70c0cef25866e0c2c773a1a9492ce0622df/stock_prediction/django/myblog/predict.xls -------------------------------------------------------------------------------- /stock_prediction/django/myblog/presult.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhengguowei/stock_prediction/ee12d70c0cef25866e0c2c773a1a9492ce0622df/stock_prediction/django/myblog/presult.jpg -------------------------------------------------------------------------------- /stock_prediction/django/mysite/db.sqlite3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhengguowei/stock_prediction/ee12d70c0cef25866e0c2c773a1a9492ce0622df/stock_prediction/django/mysite/db.sqlite3 -------------------------------------------------------------------------------- /stock_prediction/django/mysite/manage.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python 2 | import os 3 | import sys 4 | 5 | if __name__ == "__main__": 6 | os.environ.setdefault("DJANGO_SETTINGS_MODULE", "mysite.settings") 7 | try: 8 | from django.core.management import execute_from_command_line 9 | except ImportError: 10 | # The above import may fail for some other reason. Ensure that the 11 | # issue is really that Django is missing to avoid masking other 12 | # exceptions on Python 2. 13 | try: 14 | import django 15 | except ImportError: 16 | raise ImportError( 17 | "Couldn't import Django. Are you sure it's installed and " 18 | "available on your PYTHONPATH environment variable? Did you " 19 | "forget to activate a virtual environment?" 20 | ) 21 | raise 22 | execute_from_command_line(sys.argv) 23 | -------------------------------------------------------------------------------- /stock_prediction/django/mysite/mysite/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhengguowei/stock_prediction/ee12d70c0cef25866e0c2c773a1a9492ce0622df/stock_prediction/django/mysite/mysite/__init__.py -------------------------------------------------------------------------------- /stock_prediction/django/mysite/mysite/__init__.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhengguowei/stock_prediction/ee12d70c0cef25866e0c2c773a1a9492ce0622df/stock_prediction/django/mysite/mysite/__init__.pyc -------------------------------------------------------------------------------- /stock_prediction/django/mysite/mysite/settings.py: -------------------------------------------------------------------------------- 1 | """ 2 | Django settings for mysite project. 3 | 4 | Generated by 'django-admin startproject' using Django 1.11.10. 5 | 6 | For more information on this file, see 7 | https://docs.djangoproject.com/en/1.11/topics/settings/ 8 | 9 | For the full list of settings and their values, see 10 | https://docs.djangoproject.com/en/1.11/ref/settings/ 11 | """ 12 | 13 | import os 14 | 15 | # Build paths inside the project like this: os.path.join(BASE_DIR, ...) 16 | BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__))) 17 | 18 | 19 | # Quick-start development settings - unsuitable for production 20 | # See https://docs.djangoproject.com/en/1.11/howto/deployment/checklist/ 21 | 22 | # SECURITY WARNING: keep the secret key used in production secret! 23 | SECRET_KEY = 's2ub@u$86x&g%4vq3@hf=r4fqaelvuulis*x5-w=g%^pb8zt(e' 24 | 25 | # SECURITY WARNING: don't run with debug turned on in production! 26 | DEBUG = True 27 | 28 | ALLOWED_HOSTS = [] 29 | 30 | 31 | # Application definition 32 | 33 | INSTALLED_APPS = [ 34 | 'django.contrib.admin', 35 | 'django.contrib.auth', 36 | 'django.contrib.contenttypes', 37 | 'django.contrib.sessions', 38 | 'django.contrib.messages', 39 | 'django.contrib.staticfiles', 40 | ] 41 | 42 | MIDDLEWARE = [ 43 | 'django.middleware.security.SecurityMiddleware', 44 | 'django.contrib.sessions.middleware.SessionMiddleware', 45 | 'django.middleware.common.CommonMiddleware', 46 | 'django.middleware.csrf.CsrfViewMiddleware', 47 | 'django.contrib.auth.middleware.AuthenticationMiddleware', 48 | 'django.contrib.messages.middleware.MessageMiddleware', 49 | 'django.middleware.clickjacking.XFrameOptionsMiddleware', 50 | ] 51 | 52 | ROOT_URLCONF = 'mysite.urls' 53 | 54 | TEMPLATES = [ 55 | { 56 | 'BACKEND': 'django.template.backends.django.DjangoTemplates', 57 | 'DIRS': [], 58 | 'APP_DIRS': True, 59 | 'OPTIONS': { 60 | 'context_processors': [ 61 | 'django.template.context_processors.debug', 62 | 'django.template.context_processors.request', 63 | 'django.contrib.auth.context_processors.auth', 64 | 'django.contrib.messages.context_processors.messages', 65 | ], 66 | }, 67 | }, 68 | ] 69 | 70 | WSGI_APPLICATION = 'mysite.wsgi.application' 71 | 72 | 73 | # Database 74 | # https://docs.djangoproject.com/en/1.11/ref/settings/#databases 75 | 76 | DATABASES = { 77 | 'default': { 78 | 'ENGINE': 'django.db.backends.sqlite3', 79 | 'NAME': os.path.join(BASE_DIR, 'db.sqlite3'), 80 | } 81 | } 82 | 83 | 84 | # Password validation 85 | # https://docs.djangoproject.com/en/1.11/ref/settings/#auth-password-validators 86 | 87 | AUTH_PASSWORD_VALIDATORS = [ 88 | { 89 | 'NAME': 'django.contrib.auth.password_validation.UserAttributeSimilarityValidator', 90 | }, 91 | { 92 | 'NAME': 'django.contrib.auth.password_validation.MinimumLengthValidator', 93 | }, 94 | { 95 | 'NAME': 'django.contrib.auth.password_validation.CommonPasswordValidator', 96 | }, 97 | { 98 | 'NAME': 'django.contrib.auth.password_validation.NumericPasswordValidator', 99 | }, 100 | ] 101 | 102 | 103 | # Internationalization 104 | # https://docs.djangoproject.com/en/1.11/topics/i18n/ 105 | 106 | LANGUAGE_CODE = 'en-us' 107 | 108 | TIME_ZONE = 'UTC' 109 | 110 | USE_I18N = True 111 | 112 | USE_L10N = True 113 | 114 | USE_TZ = True 115 | 116 | 117 | # Static files (CSS, JavaScript, Images) 118 | # https://docs.djangoproject.com/en/1.11/howto/static-files/ 119 | 120 | STATIC_URL = '/static/' 121 | -------------------------------------------------------------------------------- /stock_prediction/django/mysite/mysite/settings.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhengguowei/stock_prediction/ee12d70c0cef25866e0c2c773a1a9492ce0622df/stock_prediction/django/mysite/mysite/settings.pyc -------------------------------------------------------------------------------- /stock_prediction/django/mysite/mysite/urls.py: -------------------------------------------------------------------------------- 1 | """mysite URL Configuration 2 | 3 | The `urlpatterns` list routes URLs to views. For more information please see: 4 | https://docs.djangoproject.com/en/1.11/topics/http/urls/ 5 | Examples: 6 | Function views 7 | 1. Add an import: from my_app import views 8 | 2. Add a URL to urlpatterns: url(r'^$', views.home, name='home') 9 | Class-based views 10 | 1. Add an import: from other_app.views import Home 11 | 2. Add a URL to urlpatterns: url(r'^$', Home.as_view(), name='home') 12 | Including another URLconf 13 | 1. Import the include() function: from django.conf.urls import url, include 14 | 2. Add a URL to urlpatterns: url(r'^blog/', include('blog.urls')) 15 | """ 16 | from django.conf.urls import url 17 | from django.contrib import admin 18 | 19 | urlpatterns = [ 20 | url(r'^admin/', admin.site.urls), 21 | ] 22 | -------------------------------------------------------------------------------- /stock_prediction/django/mysite/mysite/urls.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhengguowei/stock_prediction/ee12d70c0cef25866e0c2c773a1a9492ce0622df/stock_prediction/django/mysite/mysite/urls.pyc -------------------------------------------------------------------------------- /stock_prediction/django/mysite/mysite/wsgi.py: -------------------------------------------------------------------------------- 1 | """ 2 | WSGI config for mysite project. 3 | 4 | It exposes the WSGI callable as a module-level variable named ``application``. 5 | 6 | For more information on this file, see 7 | https://docs.djangoproject.com/en/1.11/howto/deployment/wsgi/ 8 | """ 9 | 10 | import os 11 | 12 | from django.core.wsgi import get_wsgi_application 13 | 14 | os.environ.setdefault("DJANGO_SETTINGS_MODULE", "mysite.settings") 15 | 16 | application = get_wsgi_application() 17 | -------------------------------------------------------------------------------- /stock_prediction/django/mysite/mysite/wsgi.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhengguowei/stock_prediction/ee12d70c0cef25866e0c2c773a1a9492ce0622df/stock_prediction/django/mysite/mysite/wsgi.pyc --------------------------------------------------------------------------------