模块url举办重写,空格无法轮番

2019-12-06 03:09栏目:专项工作
TAG:

  硕士毕业之前曾经对基于LSTM循环神经网络的股价预测方法进行过小小的研究,趁着最近工作不忙,把其中的一部分内容写下来做以记录。

    一次坑爹的小bug。读取一段文字(编码utf-8),想替换掉空格,str_replace(" "..)、preg_replace("/s/"..)都不起作用。

1、在apache中,当我们利用Apache的rewrite模块对URL进行重写时,rewrite规则会写在 .htaccess 文件里。

 

<?php

// 替换<p>后4个空格
$str = file_get_contents("http://m.ts.cn/new/99cms_ts/api.php?s=/News/getNewsInfoTmp/Nid/51089");
$str = str_replace(" ", "-", $str);
$str = preg_replace("/s/", "-", $str);
echo $str;  // 不起作用

要使 apache 能够正常的读取.htaccess 文件的内容,就必须对.htaccess 所在目录进行配置。

  此次股票价格预测模型仅根据股票的历史数据来建立,不考虑消息面对个股的影响。曾有日本学者使用深度学习的方法来对当天的新闻内容进行分析,以判断其对股价正面性/负面性影响,并将其与股票的历史数据相结合,各自赋予一定的权重来对近日的股价进行预测[1]。该预测方法取得了一定的效果。

  没办法,将替换不了的空格ord()下才看到,这个utf-8空格比较特殊。ASCII 194 + 160出来的。

但由于安全性考虑,根目录的AllowOverride属性一般都配置成不允许任何**Override,如

  而这里我没有引入消息面的影响,主要出于以下几点考虑:

<?php

// 替换<p>后4个空格
$str = file_get_contents("http://m.ts.cn/new/99cms_ts/api.php?s=/News/getNewsInfoTmp/Nid/51089");
$str = str_replace(chr(194) . chr(160), "-", $str);  // 解决方法
echo $str;  // OK

  1.消息的及时性难以保证:很多时候,在一只股票的利好/利空消息出来之前,其股价已经有了较大幅度的增长/下跌。信息的不对称性导致普通群众缺乏第一手消息源。

  实验下这个空格。

<Directory />  
    Options FollowSymLinks  
    AllowOverride None
    Order allow,deny  
    Allow from All  
</Directory> 

  2.消息的准确性难以保证:互联网上信息传播速度极快,媒体之间经常会出现相互抄袭新闻的情况,而这种抄来的新闻(非原创新闻)往往没有经过严格的审核,存在着内容虚假,夸大宣传的可能性。一旦分析模型错用了某条谣言或真实性不高的新闻,很有可能得出错误的预测结果。

<?php

// utf-8无bom文件下,四个空格
$s1 = chr(194) . chr(160);
$s2 = chr(32);
$s3 = " ";
$s4 = " ";  // 全角空格
$s = $s1 . $s2 . $s3 . $s4;

// 判断
$r  = '';
if ($s1 == $s2) $r .= 1;
if ($s1 == $s3) $r .= 2;
if ($s1 == $s4) $r .= 3;
if ($s2 == $s3) $r .= 4;
if ($s2 == $s4) $r .= 5;
if ($s3 == $s4) $r .= 6;

// 结果
echo $s, "#####", $r, "####", str_replace(" ", "-", $s), "####", preg_replace("/s/", "-", $s);

【注】AllowOverride从字面上解释是允许覆盖的意思,即Apache允许另一配置文件覆盖现有配置文件。

  3.语言的歧义性:一条新闻,其正面性/负面性往往存在着多种解读。例如“习主席宣布中国将裁军30万”——新华每日电讯2015.09.04。这条新闻一般意义上可以解读为:中央政府深入推进改革,精兵简政,大力发展国防军工事业。这是一种正面性的解读。而在使用机器学习模型时,如传统的奇异值分解算法(SVD),很有可能会判定其与“去年五大行裁员近3万”这种新闻具有较高的相似度,因而将其划分为负面新闻。

  结果:为方便书写,|代表空格,|代表全角空格。

 

  4.技术实现较为繁杂:这其实是一个非常重要的原因啦~,获取正确的信息并进行NLP操作,往往需要经过以下流程:人工浏览网页确定稳定可靠的信息源→设计爬虫实现有效信息的获取→设计新闻裁剪(填充)方案以应对不同长度的新闻→人工标注新闻的正/负性(也可以用当日股价涨跌来标注)→设计网络模型→训练及验证模型。其中的每一步都非常麻烦耗时,而且对于个股来说,并不是每天都会有新闻出现。

  ||||####4####|--|####|--|

2、对于 URL rewrite 来说,至少需要把目录设置为 

 

  改下浏览器编码为gbk,结果:聽 銆€#####4####聽--銆€####聽--銆€

AllowOverride FileInfo

  上面说了这么多,还没有开始对我这个预测模型进行介绍,下面开始进入正题。在决定排除消息面的考量之后,我开始思考股价涨跌的本质,我认为股价就是资金博弈结果的体现。这次建立的预测模型,朴素的想法是通过深度学习模型来洞悉庄家的操作规律,对拉升、砸盘的情况进行预测。为了达到以下目的,我决定选取以下七个特征来构建网络模型,即:

 

 

涨跌幅  最高涨幅  最低跌幅  大单净流入  中单净流入  小单净流入  换手率

  问题的根源,在于UTF-8这种编码里面,存在一个特殊的字符,其编码是“0xC2 0xA0”(194 160),转换成字符的时候,表现为一个空格,跟一般的半角空格(ASCII 0x20)一样,唯一的不同是它的宽度不会被压缩,因此比较多的被用于网页排版(如首行缩进之类)。而其他的编码方式如GB2312、Unicode之类并没有这样的字符。

另附:AllowOverride参数:**

使用这七个特征来对股票的涨跌情况以及资金的流动情况建立适当的模型。此外,其他的指标类似MACD、均线等也是通过一些基础数据的运算得出,在构建模型时并没有将其纳入考量范围。

  总结下来就是:替换不了的字符,打印出ASCII码来总能替换掉吧。

AuthConfig

 

 

允许使用与认证授权相关的指令(AuthDBMGroupFile, AuthDBMUserFile, AuthGroupFile, AuthName, AuthType, AuthUserFile, Require, 等)。

一.源数据及其预处理

参考:解决采集UTF-8网页空格变成问号乱码  诡异的UTF8空格

FileInfo

  通过某股票交易软件,我获得的源数据约有20来个特征,包括:涨幅、现价、涨跌、买入、卖价、成交量等等。为了得到上面所述的七种特征,挑选出涨跌幅、大单净流入、中单净流入、小单净流入、换手率这5个特征,并计算最高涨幅、最高跌幅两个特征。通过下列公式计算获得。

允许使用控制文档类型的指令(DefaultType, ErrorDocument, ForceType, LanguagePriority, SetHandler, SetInputFilter, SetOutputFilter, mod_mime中的 Add* 和 Remove* 指令等等)、控制文档元数据的指令(Header, RequestHeader, SetEnvIf, SetEnvIfNoCase, BrowserMatch, CookieExpires, CookieDomain, CookieStyle, CookieTracking, CookieName)、mod_rewrite中的指令(RewriteEngine, RewriteOptions, RewriteBase, RewriteCond, RewriteRule)和mod_actions中的Action指令。

图片 1

Indexes

经过处理的股票特征数据存储在 股票名.csv文件中,类似下图:

允许使用控制目录索引的指令(AddDescription, AddIcon, AddIconByEncoding, AddIconByType, DefaultIcon, DirectoryIndex, FancyIndexing, HeaderName, IndexIgnore, IndexOptions, ReadmeName, 等)。

 图片 2

Limit

图中的特征顺序为:日期,大单净流入,中单净流入,小单净流入,涨跌幅,最高涨幅,最高跌幅,换手率,股价。股价在这里的用处是拼接训练样本输出时,计算多日的总涨跌幅。

允许使用控制主机访问的指令(Allow, Deny, Order)。

注:在对源数据进行处理的时候,经常会遇到空值问题:即,有些特征值为0的时候,系统给出的源数据为”-”或”“。需要进行特殊处理。(经常遇见新股第一天的涨跌幅为空,或某交易日大单净流入为空。)

Options[=Option,...]

版权声明:本文由ag真人发布于专项工作,转载请注明出处:模块url举办重写,空格无法轮番