使用POI数据挖掘区域功能并在网页端显示

使用POI数据挖掘区域功能并在网页端显示

    最近在做一个创新项目,其中包含区域功能挖掘的部分。前期我们使用了路网数据对上海市进行了区域的划分,并为每个POI加上了所属的区域标签。之后便使用此数据进行区域功能挖掘部分的展示。

一。使用TF_IDF算法挖掘出每个区域对应的功能,此处我们分了六大功能,分别是住宅,工作,教育,商业,公共服务,景点

   有如下几个子步骤
  (1)根据poi的三级目录将poi数据划分到六种poi类别
  (2)统计TF_IDF算法使用到的中间结果
  (3) 使用TF_IDF挖掘出每个区域的功能,并记录相关结果

代码如下
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;

/*
 * poi.csv 原始经处理的poi,而且已经加上了区域编号,式例如下图
 * "241076","永生餐饮","121.603927","31.235058","餐饮服务;中餐厅;中餐厅","275"
 * 
 * 将操作合并起来,包括向poi中添加类,保留统计中间结果到result.txt
 * 和计算TF_IDF大小,并最终得到每个区域的功能,
 * 
 * poiRange.csv 提取有用的信息(名称,经度,纬度,poi类别,所属区域)
 * result.txt(各个poi类别的数量,每个区域含有的poi数量)
 * TF_IDF1/2.txt 记录两种IDF算法产生的TF_IDF大小
 * function1/2.txt 记录两种算法分别对应的每种功能区的区域数量
 * 每个功能区包含的区域编号存储在poi_label.txt文件中
 */
public class POI_Func {
	public static String [][] CC;//代表class的数量
    public static String [][] CC2;//代表SecondClass的数量
    public static int ccc=0;
	public static int getPoiClass(String type) {
		int num=-1;
		int flag=0;
		for (int i = 0; i < CC.length; i++) {
			if (flag==1) {
				flag=0;
				break;
			}
			for (int j = 0; j < CC[i].length; j++) {
				if (CC[i][j]==null) {
					break;
				}
				else if(CC[i][j].equals(type)){
					num=i;
					flag=1;
					break;
				}
			}
		} 
		return num;
	}
	public static int getSecondPoi(String type) {
		int num=-1;
		int flag=0;
		for (int i = 0; i < CC2.length; i++) {
			if (flag==1) {
				flag=0;
				break;
			}
			for (int j = 1; j < CC2[i].length; j++) {
				if (CC2[i][j]==null) {
					break;
				}
				else if(CC2[i][j].equals(type)){
					num=Integer.parseInt(CC2[i][0]);
					ccc++;
					flag=1;
					break;
				}
			}
		} 
		return num;
	}
	public static void main(String[] args) throws IOException{
		// TODO Auto-generated method stub
		
		/*第一步:对原始数据poi.csv添加class.txt 中的poi类别,提取有用信息,
		并将结果保存在poiRange.csv文件中*/
		String path1 = "class5.txt";
		String path2 = "poi.csv";
		String path3 = "poiRange.csv";
		String path4="result.txt";
		int classLength=6;//记录poi类别的数量
		int secondLength=3;//记录第二级目录的分类
		int bigClass=19;//大类的数量
		int secondClass=11;
		int rangeNum=542;
		String[] d1=null;
		String[] d2=null;
		String line=null;
		String line2=&#
  • 1
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值