发明内容
为解决现有技术的不足,本发明的目的在于提供一种农产品价格趋势预测方法。
为了实现上述目标,本发明采用如下的技术方案:
农产品价格趋势预测方法,其特征在于,包括如下步骤:
步骤一:通过计算机自动采集程序从互联网网站定时采集与农产品价格相关的且带有专家预测性观点的文章;
步骤二:对采集的文章进行去重;
步骤三:从去重后的文章中提取并保存文章要素,所述文章要素包括文章标题、文章正文内容、文章来源、文章发表时间、文章中带有专家预测性观点的语句;
步骤四:根据文章标题和文章正文内容对文章中描述的农产品所属区域进行识别;
步骤五:根据文章中带有专家预测性观点的语句,利用文本挖掘技术分析出专家对农产品的预测性观点,并将所述预测性观点进行量化和保存;
步骤六:根据文章发表时间、农产品所属区域、农产品种类以及量化的趋势预测观点进行计算机建模,利用建立的模型对农产品价格进行趋势预测。
前述的农产品价格趋势预测方法,其特征在于,所述步骤一包括:
步骤1a:设置采集定时器;
步骤1b:设定要采集的互联网网站所对应的入口URL,并将入口URL进行保存,根据采集定时器为所述入口URL分配定时采集任务;
步骤1c:对设定要采集的互联网网站所对应的入口URL进行网页内容下载;
步骤1d:根据网页内容中的HTML标签,定位需要采集的文章对应的URL;
步骤1e:根据需要采集的文章对应的URL,对文章对应的网页内容进行下载并保存。
前述的农产品价格趋势预测方法,其特征在于,所述步骤2b包括:将入口URL保存到本地的XML文件或本地数据库。
前述的农产品价格趋势预测方法,其特征在于,所述步骤二包括:
步骤2a:对每一篇文章对应的URL字符串利用MD5算法进行加密,计算得到所述文章对应的URL的信息指纹;
步骤2b:进行指纹比对,对于信息指纹相同的文章,只保留其中的一篇;
步骤2c:对步骤2b处理后保留的文章按照发表时间的先后进行排序,选择时间最靠前的文章作为基点文章,将基点文章和剩余的文章分别进行两两比对,依次计算基点文章与剩余的文章之间的标题相似度;如果标题相似度大于阈值,则认为二者标题相似,赋予该篇文章与基点文章相同的相似度标识,否则,取其余剩余文章继续与基点文章进行比较,直到剩余全部文章与基点文章比较结束;
步骤2d:比较结束后,若还有未赋予相似度标识的文章,则选择时间最靠前的文章为新的基点文章,并为该篇文章赋予新的相似度标识,剩余的未赋予相似度标识的文章依次与其进行比较;
步骤2e:重复步骤2d,直至不存在未赋予相似度标识的文章;
步骤2f:对于相似度标识相同的文章,只保留其中的一篇。
前述的农产品价格趋势预测方法,其特征在于,所述步骤2c包括:通过相似度计算公式:计算所述标题相似度,其中Sx,y表示基点文章与剩余的文章之间的标题相似度,Nx,y表示基点文章与剩余的文章两者标题中含有的相同的字符数目,Nx表示基点文章标题中含有的字符的总数目;所述阀值为0.9。
前述的农产品价格趋势预测方法,其特征在于,所述步骤三包括:
步骤3a:读取保存的网页内容;
步骤3b:根据网页字符编码对网页内容中的HTML标签进行解析;
步骤3c:根据文章标题、文章正文内容、文章来源、文章发表时间在网页HTML标签中的位置进行相应的提取;
步骤3d:根据文章正文内容和专家观点关键词对文章中带有专家预测性观点的语句进行提取;
步骤3e:保存提取的相关文章要素。
前述的农产品价格趋势预测方法,其特征在于,所述步骤四包括:
步骤4a:读取区域数据库;
步骤4b:根据区域数据库建立区域映射规则;
步骤4c:读取保存的文章标题和文章正文内容;
步骤4d:从文章标题中搜索县区、市区或省份所对应的关键词;若搜索到,则通过映射规则定位并保存所述县区、市区或省份所对应的省份;若没有搜索到,进一步读取保存的文章正文内容,从文章正文内容中搜索县区、市区或省份对应的关键词;若搜索到,则通过映射规则定位并保存所述县区、市区或省份所对应的省份,否则,将该篇文章所属区域设定为全国。
前述的农产品价格趋势预测方法,其特征在于,所述步骤五包括:
步骤5a:读取文章中带有专家预测性观点的语句;
步骤5b:利用文本挖掘技术中的成分句法分析方法对文章中带有专家预测性观点的语句进行分析;
步骤5c:读取农产品种类关键词和趋势关键词;
步骤5d:根据文章中带有专家预测性观点的语句中句子的成分、农产品种类关键词、趋势关键词分析出文章中带有专家预测性观点的语句所描述的农产品种类及专家对农产品的预测性观点;
步骤5e:根据趋势映射规则将专家对农产品的预测性观点进行量化;
步骤5f:保存农产品种类及专家对农产品的预测性观点。
本发明的有益之处在于:本发明的农产品价格趋势预测方法相较于现有技术来说,所用的数据的搜集周期更短,收集成本几乎为零,能够对未来一段时间的农产品价格的整体趋势进行预测,预测的准确性和可靠性更高。
具体实施方式
以下结合附图和具体实施例对本发明作具体的介绍。
参照图1所示,本发明农产品价格趋势预测方法,包括如下步骤:
步骤一:通过计算机自动采集程序从互联网网站定时采集与农产品价格相关的且带有专家预测性观点的文章;
步骤二:对采集的文章进行去重;
步骤三:从去重后的文章中提取并保存文章要素,文章要素包括文章标题、文章正文内容、文章来源、文章发表时间、文章中带有专家预测性观点的语句;
步骤四:根据文章标题和文章正文内容对文章中描述的农产品所属区域进行识别;
步骤五:根据文章中带有专家预测性观点的语句,利用文本挖掘技术分析出专家对农产品的预测性观点,并将预测性观点进行量化和保存;
步骤六:根据文章发表时间、农产品所属区域、农产品种类以及量化的趋势预测观点进行计算机建模,利用建立的模型对农产品价格进行趋势预测。
具体来说,如图1所示,本发明首先利用计算机自动采集程序从互联网一些权威的、可信度高的涉农网站上采集与农产品价格相关的带有专家预测性观点的文章,然后将采集的文章网页信息保存到本地,通过去重功能过滤那些内容重复的文章,从而减少计算机分析和计算的时间。对于去重后的文章,根据其网页的HTML标签和自定义的专家规则来定位和提取文章的文章要素,包括文章标题、文章正文内容、文章来源、文章发表时间、文章中带有专家预测性观点的句子或段落。接着,从提取的文章标题和正文内容中利用区域数据库和区域映射规则识别出该文章所描述的是哪个区域(省份)的农产品。然后,利用文本挖掘技术中的成分句法分析方法对带有专家预测性观点的句子或段落结合专家规则从中分析出农产品的种类以及专家对该类农产品价格的未来趋势持什么样的观点,并对该趋势进行量化和保存以用于后续的数学建模。在对所有文章进行趋势分析和量化之后,会得到多个区域的多种农产品的多个预测观点。分别针对每个区域的每种农产品的相关文章所发表的时间及量化趋势进行计算机建模,并利用建立的模型预测最终的趋势。
图2给出了整个计算机自动采集文章的工作流程。其实际工作原理可以通过包括下述步骤来实现:
步骤1a:设置采集定时器;
步骤1b:设定要采集的互联网网站所对应的入口URL,并将入口URL进行保存,根据采集定时器为入口URL分配定时采集任务;
步骤1c:对设定要采集的互联网网站所对应的入口URL进行网页内容下载;
步骤1d:根据网页内容中的HTML标签,定位需要采集的文章对应的URL;
步骤1e:根据需要采集的文章对应的URL,对文章对应的网页内容进行下载并保存。
为了提高预测的准确性和可靠性,本发明在采集文章的过程中对采集的涉农网站进行了有效筛选和过滤,采集的网站具备了以下几个特点:1)可信度高;2)网站内容更新及时;3)网站发布的栏目中有多篇针对某类农产品价格进行趋势预测的文章。根据上述特点,从涉农网站中挑选了几十个最为稳定的网站作为采集源。例如,由农业部主持的“中国农业信息网”中的“市场动态”栏目,每天都会发布一些具备上述特点的文章,因此可以作为一个重要采集源。采集工作的第一步是选取采集源网站相关栏目的入口URL,并将其保存到本地(优选既可以保存到XML文件,也可以保存到本地数据库)。计算机采集程序首先会读取本地保存的入口URL,将其作为采集的起始地址。通过计算机编程语言提供的网络通讯工具包可以将上述URL对应的网页下载到本地,该网页是一个含有HTML标签的文本文件。网页的内容类似如下格式:
<html>
<head>
<title>中国农业信息网</title>
...
</head>
<body>
<tableid="list">
<tr>
<td>
<ahref="http://www.agri.gov.cn/v20/sc/scdt/201310/t20131010_3625085.htm">合肥周谷堆市场:9月份农产品市场行情分析</a>
</td>
<td>
(2013-10-10)
</td>
</tr>
...
</table>
</body>
</html>
根据上述网页内容,利用HTML解析工具或编程语言提供的字符串工具包,可以从中提取到文章对应的URL和文章要素。在上面的例子中,文章对应的URL为"http://www.agri.gov.cn/V20/SC/scdt/201310/t20131010_3625085.htm",文章的标题为“合肥周谷堆市场:9月份农产品市场行情分析”,文章的发表时间为“2013-10-10”。通过对所有入口URL对应的网页内容进行采集,可以提取对应网站栏目下所有文章的URL、标题和发表时间,并将这些要素保存到本地数据库。
由于各个网站发表的文章存在相互转载的情形,为了降低重复采集所带来的额外的分析和计算代价,本发明对文章进行了去重处理。整个的文章去重处理流程如图3所示。其实际工作原理可以通过包括下述步骤来实现:
步骤2a:对每一篇文章对应的URL字符串利用MD5算法进行加密,计算得到文章对应的URL的信息指纹;
步骤2b:进行指纹比对,对于信息指纹相同的文章,只保留其中的一篇;
步骤2c:对步骤2b处理后保留的文章按照发表时间的先后进行排序,选择时间最靠前的文章作为基点文章,将基点文章和剩余的文章分别进行两两比对,依次计算基点文章与剩余的文章之间的标题相似度;如果标题相似度大于阈值,则认为二者标题相似,赋予该篇文章与基点文章相同的相似度标识,否则,取其余剩余文章继续与基点文章进行比较,直到剩余全部文章与基点文章比较结束;
步骤2d:比较结束后,若还有未赋予相似度标识的文章,则选择时间最靠前的文章为新的基点文章,并为该篇文章赋予新的相似度标识,剩余的未赋予相似度标识的文章依次与其进行比较;
步骤2e:重复步骤2d,直至不存在未赋予相似度标识的文章;
步骤2f:对于相似度标识相同的文章,只保留其中的一篇。
去重处理包括两个主要步骤,第一步是对URL进行去重。对于具有相同URL的文章只保留其中的一篇(为了及时获取新的文章,采集程序需要对同一个网站的栏目进行有间隔重复采集,因此,对于同一个栏目下的文章,一天内可能会出现重复采集的情形)。本发明利用MD5算法将每篇文章的URL进行信息指纹映射(映射后的字符串更短,计算机分析和计算的代价更小):furl=MD5(url),然后进行信息指纹比对,对于信息指纹相同的文章,只保留其中的一篇;第二步是根据文章的标题进行去重。对于具有相同或相似标题的文章,我们认为其正文内容也相同或相似。对于第一步处理后保留的所有文章按照发表时间进行由近及远排序。选择时间最靠前的文章作为基点文章(被其余文章依次两两比较的文章),为其分配相似度标识(初始相似度标识分配为1,以后为新的基点文章按依次递增顺序设定新的标识),剩余的文章依次计算其与基点文章的标题相似度,相似度计算公式为:
其中,Sx,y表示二者标题的相似度,Nx,y表示二者标题中含有的相同的字符数目,Nx表示基点文章标题中含有的字符的总数目。如果二者的标题相似度大于阈值0.9,则认为二者标题相似,赋予该篇文章与基点文章相同的相似度标识,否则,取剩余文章继续与基点文章进行比较,直到剩余全部文章与基点文章比较结束。此时,若还有未赋予相似度标识的文章,则选择时间最靠前的文章为新的基点文章,并为该篇文章赋予新的相似度标识,剩余的未赋予相似度标识的文章依次与其进行比较,重复上述比较和赋值过程,直至不存在未赋予相似度标识的文章,则整个过程结束。对于相似度标识相同的文章只保留一篇,其余全部滤除,从而实现对文章标题的去重处理。
图4给出了对文章要素进行提取和保存的整个流程。其实际工作原理可以通过包括下述步骤来实现:
步骤3a:读取保存的网页内容;
步骤3b:根据网页字符编码对网页内容中的HTML标签进行解析;
步骤3c:根据文章标题、文章正文内容、文章来源、文章发表时间在网页HTML标签中的位置进行相应的提取;
步骤3d:根据文章正文内容和专家观点关键词对文章中带有专家预测性观点的语句进行提取;
步骤3e:保存提取的相关文章要素。
文章要素包括文章标题、文章来源、文章发表时间、文章正文内容、带有专家预测性观点的句子或段落。首先读取保存的文章的网页内容,根据配置文件中预先设置的网页字符编码对网页内容中的HTML标签进行解析,并根据文章标题、文章来源、文章发表时间和文章正文内容在网页HTML标签中的位置对这些要素进行提取和保存。对带有专家预测性观点的句子或段落的提取需要从提取的文章正文内容中进一步分析得到。为此,本发明设计了一套专家规则,专家规则定义如下:
根据以上定义的专家规则,可以从文章正文内容中定位和提取带有专家预测性观点的句子或段落,最后将其保存到本地数据库。
考虑到农产品价格的趋势波动会受到地理位置因素的影响,本发明对所要分析的文章进行了区域识别和提取。例如,某篇文章描述“专家预测,未来一段时间,江苏省的西红柿价格将进一步上涨”,则我们将该篇文章所描述的农产品归类到江苏省,在后续建模时会针对不同省份分别进行建模,以获取更高的预测准确率和可靠性。为了达到上述目的,本发明首先建立了全国34个省份的区域数据库,并设计了相应的映射规则,映射规则定义如下:
规则1:县区->省份
规则2:市区->省份
规则3:省份->省份
规则4:未匹配->全国
根据上述映射规则,首先读取保存的文章标题,从标题中搜索县区、市区、省份对应的关键词,若找到,则通过映射规则定位并保存省份,否则,进一步读取保存的文章正文内容,从内容中搜索县区、市区、省份对应的关键词,若找到,则通过映射规则定位并保存省份,否则,将该篇文章所属区域设定为“全国”。通过对每篇文章进行读取和分析,可以实现对所有文章的所属区域进行识别和保存。图5描述了对文章所属区域进行识别的整个流程,其实际工作原理可以通过包括下述步骤来实现:
步骤4a:读取区域数据库;
步骤4b:根据区域数据库建立区域映射规则;
步骤4c:读取保存的文章标题和文章正文内容;
步骤4d:从文章标题中搜索县区、市区或省份所对应的关键词;若搜索到,则通过映射规则定位并保存县区、市区或省份所对应的省份;若没有搜索到,进一步读取保存的文章正文内容,从文章正文内容中搜索县区、市区或省份对应的关键词;若搜索到,则通过映射规则定位并保存县区、市区或省份所对应的省份,否则,将该篇文章所属区域设定为全国。
图6给出了利用文本挖掘技术中的成分句法分析方法对带有专家预测性观点句子或段落进行分析和处理的整个流程。其实际工作原理可以通过包括下述步骤来实现:步骤5a:读取文章中带有专家预测性观点的语句;
步骤5b:利用文本挖掘技术中的成分句法分析方法对文章中带有专家预测性观点的语句进行分析;
步骤5c:读取农产品种类关键词和趋势关键词;
步骤5d:根据文章中带有专家预测性观点的语句中句子的成分、农产品种类关键词、趋势关键词分析出文章中带有专家预测性观点的语句所描述的农产品种类及专家对农产品的预测性观点;
步骤5e:根据趋势映射规则将专家对农产品的预测性观点进行量化;
步骤5f:保存农产品种类及专家对农产品的预测性观点。
成分句法分析方法是一种层次化结构分析句子语法成分的方法,具有形式简单,易于表示的优点。该方法可以将句子结构分析成如下一般形式:(定)主+[状]谓<补>+(定)宾。首先读取保存的带有专家预测性观点的句子或段落,对其进行成分句法分析得到句子的各个成分,提取其中的宾语部分。读取农产品分类关键词和趋势关键词,根据分类关键词对宾语部分进行搜索匹配,从而确定农产品的种类,根据趋势关键词对宾语部分进行搜索匹配,从而确定农产品的价格趋势。例如,带有专家预测性观点的句子为“专家预测,未来一段时间西红柿价格将进一步上涨”,对句子进行成分分析得到:主语<-专家;谓语<-预测;宾语<-西红柿价格将进一步上涨,根据农产品分类关键词“西红柿”对宾语部分进行搜索匹配得到农产品的种类为“西红柿”,根据趋势关键词“上涨”对宾语部分进行搜索匹配得到未来价格趋势为“看涨”。经过上述处理,可以得到当前文章的预测性观点:西红柿的未来价格趋势为看涨。通过对保存的每一篇文章进行分析和处理,可以得到多种农产品的多个预测观点。将得到的预测性观点进行量化处理:看涨->1;看平->2;看跌->3,最后保存到本地数据库。
经过上述步骤的分析处理,本地数据库中已经保存了35个区域(34个省份+全国)的多个农产品种类对应的多个专家的量化预测观点。从本地数据库读取最近一个月的量化预测观点,分别针对每个区域的每一种农产品进行如下过程的建模:
设对于某区域某农产品种类所对应的待预测样本为x,x可以描述为一个三元组:(location,type,prediction),其中,location是农产品所属的区域,type是农产品的种类,prediction是农产品价格的预测趋势。prediction对应的预测趋势集合C表示为{C1,C2,...,CL}(L=3),对应的量化数据为{1,2,3},即C1=1,C2=2,C3=3,分别表示预测趋势看涨、看平及看跌三种情况。取最近一个月的文章,按照时间范围将其划分为三组:最近10天的文章为第一组,最近20天到最近10天的文章为第二组,最近一个月到最近20天的文章为第三组。上述时间范围构成的集合T表示为{T1,T2,...,TI}(I=3)。对于x,定义如下二进制函数:
公式中,Cij(x)表示在Ti时间范围内的第j篇文章对应的x样本的趋势预测函数。Cl表示趋势预测结果。该公式表示在某时间范围内有某篇文章对x做出了某种趋势的预测,则样本x关于该种趋势的二进制函数结果为1,否则为0。为了表示时间因素对预测结果的影响程度,为不同的时间范围设定了不同的权重,对应的权重集合W表示为{W1,W2,...WI}(I=3)。根据不同的权重结合上面定义的二进制函数对样本x的最终趋势做出如下预测:
上述公式的主要计算过程为:1)针对每一种趋势分别计算其对应的不同时间范围内的文章篇数;2)结合时间范围的权重进一步求积;3)累加求积后的结果;4)比较求积结果,取最大结果对应的趋势作为预测的最终趋势。
对35个区域的每种农产品进行上述过程的建模分析,可以得到所对应的多个区域多个农产品种类的预测趋势。对每天采集的文章进行上述过程的建模分析,可以得到每天的农产品价格趋势的最新的预测结果。
本发明所用于分析建模的数据并非离散的农产品市场价格数据,而是来自互联网权威涉农网站发表的带有专家预测性观点的文章,相较于农产品市场价格数据的搜集难度大、搜集周期长以及搜集成本高等缺点,本发明利用自动采集程序从互联网上自动搜集相关文章更加容易,搜集周期更短,且成本几乎为零。本发明能够对未来一段时间的农产品价格的整体趋势进行预测,而不是对短期的离散的价格数据进行预测,因而,本发明在现实中往往更加实用。本发明所做的分析是建立在综合多篇文章多个专家预测观点基础之上的,相较于仅依靠单个专家经验的定性预测方法,预测的准确性和可靠性更高。
以上显示和描述了本发明的基本原理、主要特征和优点。本行业的技术人员应该了解,上述实施例不以任何形式限制本发明,凡采用等同替换或等效变换的方式所获得的技术方案,均落在本发明的保护范围内。