昨个立秋,24个节气里排行13,按农历算,一年过了54.16666667%。暑热气慢慢散去了,浮躁的心也该收敛些了,找点正经事做做。语料库准备好了,词向量计算得了,用全网词组生成一份IDF配置表单。这就好比每位大厨都有一份私藏秘制的高汤和酱料,上桌前浇上一勺,米其林餐厅和路边大排档立分高下。
第一步语料:把机学走起第一式的输出作为当前输入,一个DOC一行,词语间以空格分隔;
中 广 网 唐山 消息 记者 汤一亮 庄胜春 据 中国 之 声 新闻 晚 高峰 报道 今天 上午 公安 机关 枪 制 爆 专项 行动 统一 销毁 非法 枪 爆 物品 活动 在 河北 唐山 正式 启动 非法 枪支 炸药 在 全国 城市 被 统一 销毁 黄明 现在 我 宣布 全国 枪 制 爆 统一 销毁 行动 开始 随着 公安部 副 部长 黄明 一声令下 仿制 式 枪 以及 猎枪 火药 枪 气枪 在 河北 唐山 钢铁 厂 被 投入 炼钢炉 与此同时 在 全国 各省 区 市 城市 破案 追缴 和 群众 主动 上 缴 的 非法 枪支 被 集中 销毁 在 全国 各 指定 场所 炸药 被 分别 销毁 公安部 治安 局 局长 刘绍武 介绍 这次 销毁 的 非法 枪支 来源于 方面 刘绍武 打击 破案 包括 涉 黑 涉 恶 的 团伙 犯罪 毒品 犯罪 还 有 从 境外 非法 走私 的 枪支 爆炸物 在 销毁 现场 记者 看到 了 被 追缴 和 上 缴 的 各式各样 的 枪支 刘绍武 也 包括 制式 枪 有的是 军用 枪 仿制 的 制式 抢 还 有 猎枪 私 制 的 火药 枪 等等 按照 我国 的 枪支 管理 法 这些 都 >是 严厉 禁止 个人 非法 持有 的 中国 是 世界 上 持枪 犯罪 的 犯罪率 最低 的 国家 之一 中 美 联手 破获 特大 跨国 走私 武器 弹药 案 近日 中 美 执法 部门 联手 成功 破获 特大 跨国 走私 武器 弹药 案 在 中国 抓获 犯罪 嫌疑人 缴获 各类 枪支 子弹 及 枪支 配件 在 美国 抓获 犯罪 嫌疑人 缴获 各类 枪支 这 是 公安部 与 美国 移民 海关 执法 局 通过 联合 调查 方式 侦破 重大 跨国 案件 的 又 成功 案例 上海 浦东 国际 机场 海关 在 对 美国 纽约 发 往 浙江 台 州 申报 品名 为 扩音器 音箱 的 快件 进行 查验 时 发现 货物 >内 藏 有 手枪 枪支 配件 长枪 部件 经 检验 这些 都 是 具有 杀伤力 的 制式 枪支 及其 配件 这 引起 了 公安部 和 海关总署 的 高度 重视 公安部 刑侦 局 局长 刘安成 因为 是 >从 海关 进口 的 货物 中 检查 出来 夹带 说明 来源 地 是 境外 或是 说 国外 这 应该 是 一起 特 大 跨国 走私 武器 弹药 的 案件 上海市 公安局 和 上海 海关 缉私 局 成立 联合 专案组 迅速 开展 案件 侦查 专案组 于 在 浙江 台州 取 件 处 将 犯罪 嫌疑人 王挺 男 台州市 人 抓获 王挺 交代 他 通过 境外 网站 上 认识 了 上家 林志 富 以来 林志富 长期 居住 美国 他 通过 互联网 组建 了 走私 贩卖 私藏 枪支 弹药 的 群体 通过 网络 在 国内 寻找 枪支 弹药 买 家 并 通过 美国 联邦 速递 公司 将 枪支 弹药 从 纽约 快递 给 类似 王挺 的 中间人 再 通过 中间人 发送 给 国内 买 家 此案 中 犯罪分子 依托 虚拟 网络 进行 犯罪 交易 隐蔽性 强 涉案人员 使用 的 身份 地址 联系 方式 都 是 虚构 的 侦查 难度 很 大 刘安成 说 此案 体现 了 是 新型 犯罪 特别 是 现代 犯罪 的 新 特点 刘安成 他 不 受 距离 的 限制 经常 是 跨国 跨 境 甚至 是 跨 甚至 国家 这种 犯罪 手法 的 改变 和 >新型 犯罪 的 特点 要求 我们 各国 警方 充分 合作 作者 汤一亮 庄胜春
第二步统计:用文档总数除以命中数量再取个对数,统计过程缓存在容器中,遍历的时候恒大于零所以未加一,具体看个人实现,提醒注意double数据类型初始化对结果精度的影响,需要说明的是一个词在一篇文章中出现多次仅记录一次,记录多次将导致IDF值误差并进而影响TF-IDF结果;
public class XxIdfs {
private static final int XX_DOCS = 1294233;
private static final String XX_FSRC = "./dat/sougou.dst";
private static final String XX_FDST = "./dat/sougou.idf";
public static class XxCnt {
public int doc;
public int num;
public XxCnt (int d) {doc = d; num = 1;}
public XxCnt (int d, int n) {doc = d; num = n;}
public XxCnt XxCnt Plus(int d) {return d != doc ? new XxCnt(d, num + 1) : this;}
}
public static void main(String[] args) {
try {
int doc = 1;
XxCnt cnt = null;
String buf = new String();
Map<String, XxCnt > map = new HashMap<String, XxCnt >();
BufferedReader br = new BufferedReader(new FileReader(CM_FSRC));
BufferedWriter bw = new BufferedWriter(new FileWriter(CM_FDST));
while (null != (buf = br.readLine())) {
for (String v : buf.split(" ")) {
map.put(v, null != (cnt = map.get(v)) ? cnt.XxCntPlus(doc) : new XxCnt(doc));
}
++ doc;
}
for (Map.Entry<String, XxCnt > v : map.entrySet()) {
// IDF = log(文档总数 / (命中数量 + 1))
double inv = CM_DOCS / Double.valueOf(v.getValue().num);
double idf = Math.log(inv) / Math.log(10);
bw.write(v.getKey() + "\t" + idf + "\n");
}
br.close();
bw.close();
} catch (Exception e) {
e.printStackTrace();
}
}
}
第三步排序:执行sort sougou.idf -k -n > sougou.idf.sorted,对结果按照IDF值升序排序,这样看着舒服并非强制需要;
的 0.09209855782273137
在 0.15114515682005472
和 0.22887306870431492
了 0.26199822759498903
是 0.26933771591659467
有 0.3015279183694748
为 0.35217018640940767
中 0.35675902275328275
对 0.3712961710547845
(其余显示省略......)
第四步部署:将结果文件保存至项目配置路径,在启动的时候加载,方便计算TF-IDF终值;
预告:《机学走起第三式:发射》之TF-IDF算法与实现, 切勿期待!