In [1]:
#encoding=utf-8
import codecs
import sys
import os
import pandas as pd
import numpy as np

In [2]:
from pprint import pprint

In [56]:
f = codecs.open(r"E:\active_project\UnzipData\q2q_sim_all.txt", "r", "utf-8")
lines = f.readlines()

In [57]:
cell_list = []
for i, line in enumerate(lines):
    t = line.strip().split("\t")
    if(len(t)) !=4:
        print(line)
        continue
    t[0] = float(t[0])
    t[1] = float(t[1])
    cell_list.append(t)


l 这个 用 中文 怎么 读 , 不是 翻译 , 是用 中文 形式 读

0.804848	0.920335	do you remember what you were doing ? people o
 en remember what they were doing when they heard the news of important events in history . in america , for example , many people remember what they were doing on april 4 , 1968 . 
 is was an important event in american history . on this day , dr . martin luther king was killed . although some people may not remember who killed him , they remember what they were doing when they heard the news . robert allen is now over 50 , but he was a school pupil at that time . “ i was at home with my parents , ” robert remembers . “ we were eating dinner in the kitchen when we heard the news on the radio . 
 e news reporter said , ‘ dr . king died just 10 minutes ago . ’ my parents were completely shock ed ! my parents did not talk a
 er that , and we finished the rest of our dinner in silence . ” more recently , most americans remember what they were doing when the world trade center in new york was taken down by terrorists . even the date — september 11 , 2001 — has meaning to most americans . 
 is was a	我要 do you remember what you were doing ? 的 人 译



 1 gb





 是 真的 不 ?

 是 真的 不 ?

 桥接 之后 无法 登陆 管理 界面





 价格 是 多少

 是 真的 不 ?

0.908290	0.920335	my summer 
 ? holiday	my summer holiday



 装 的 呢 
 ? 那里 怎么样 啊


 仿 

 手 



 表 

 的 

 商家 啊 ? 谁能告诉我



 农村 集体土地 房屋拆迁补偿 标准 是 多少 ?





 《 钢铁是怎样炼成的 》 《 骆驼祥子 》 每章 写 主要内容 ( 100 字 左右 ) 、 好词 ( 注音 五 个 ) 、

 500 字










 仿 

 手 



 表 

 的 

 商家 啊 ? 谁能告诉我

 , 我是 一个 gay 吗 男 , 15 岁









 ? ( 续贷 )

 500 字






 较 好 啊 ? 特点 都 是什么 啊 ?


 较 好 啊 ? 特点 都 是什么 啊 ?


 么 

 样 ? 理 

 财 靠 

 谱 

 不 ?



 500 字



s 先生 、 p 先生 、 q 先生 他们 知道 桌子 的 抽屉 里 有 16 张 扑克牌 : 红桃 a 、 q 、 4 黑桃j 、







0.917940	0.920335	洛克王国 qq群	
 洛克王国 qq群 




 赁 了 八 亩 土地 . 承包 期 为 二十 年 . 现在 农场 要 收回 土地 . 我们 只 种植 了 八年 . 还有 十二 年 的 合 . . .






 全 

 吗 ? 温 商贷 呢 安 

 全 

 吗 ? 求 大神 说下


 少 ?

 啼 时 惊 妾 梦 , 不得 到 辽西 。 中的 儿 应该 怎么 读 ?


 么 收费 的 ?


 肤 

 系 

 列 适 

 合 

 什 

 么 肤 

 质 使用 ? 我想知道


 训 课程 哪 的 收费标准 低 ?

 到 付 
 款 么 ? 能 在 网上 买 
 吗 



 家 比 

 较 好 ?


 个 

 理 

 财 

 网 

 站 靠 

 谱 么 ?

 一个 小女生 ( 12 岁 的 样子 ) 向 一个 小男孩 ( 7 岁 的 样子 ) 猥亵 , 求 电影名









 小时 之后 可 恢复 使用 。 微信 的 提示 , 该 怎么办 微信 提示


 较 靠 

 谱 , 寻 钱网 有 

 很多 , 哪 

 个是 真的

 小时 之后 可 恢复 使用 。 微信 的 提示 , 该 怎么办 微信 提示



 查 
 询 
 酒店 开房间 的 
 记 
 录 , 我想 
 查 
 一 
 查

 , 还有 等到 什么时候

 查 
 询 
 酒店 开房间 的 
 记 
 录 , 我想 
 查 
 一 
 查

 , 我是 各种 家具 安装 师傅





 查 
 自己 的 身份证 
 登 
 记 
 的 住宿 宾馆 
 记 
 录



 查 
 询 
 个人 住店 
 记 
 录





 。








 么 样 谁能告诉我



 做法





 删 
 开房 
 登 
 记 
 的 
 信 
 息









 查 
 别 
 人 
 的 
 开 
 房 
 记 
 录

 对 人体 有 影响 么


In [58]:
df = pd.DataFrame(cell_list, columns=["bi", "lr", "source", "target"])

In [115]:



Out[115]:
5564165

In [86]:
sdf = df[ (df["bi"] >= 0.918) & (df["lr"] >= 0.95) ]

In [99]:
sdf = df[ (df["lr"] >= 0.9901) ]
sdf


Out[99]:
bi lr source target
385 0.188660 0.990725 我的家乡 大草原 作文 300 zzzzzzzzzzzzzzzzzzzzzzzzzzzzzz... 我的家乡 新疆 460 字 的 写 杏花沟 和 大草原 的 作文
803 0.219407 0.990725 http : // user . qzone . qq . com/874980828/bl... 谁 有 《 典范英语 6 》 的 18 本 中文翻译 , 哪位 热心 人士 帮 解答 下 ,...
995 0.232073 0.990725 简单 立体 贺卡制作 图解 http : // www . rouding . com/sh... 中国 住 别墅 的 人 多 吗
1214 0.245053 0.990725 像 豆苗 一样 叶 上 有 白 纹 是什么 有没有 人 知道 这种 像 豆苗 的 一种 植物 是什么 , 我想 种 。 http : /...
1320 0.251022 0.990725 鬼作 / 臭作 / 遗作 【 动画 】 全集 在线 观看 下载地址 : http : // ... 求 臭作 鬼作 遗作 动漫 全集 要 中文字幕 的 谢谢
1321 0.251022 0.990725 鬼作 / 臭作 / 遗作 【 动画 】 全集 在线 观看 下载地址 : http : // ... 求 遗作 , 鬼作 , 臭作 三部 全集 中文字幕 版 动漫
1625 0.267548 0.990725 孩子 和 蜗牛 第二 自然段 http : // zhidao . baidu . com/... 跪求 《 孩子 和 蜗牛 》 阅读题 答案
1704 0.270734 0.990725 快 玩 侠盗猎车手 之 罪恶都市 怎么 联机 侠盗飞车 罪恶都市 在 快 玩 怎么 联机 g fds fsd erw erw e efs ...
1754 0.273115 0.990725 " 1012188280 " 你好 ! 我是 一名 初一 的 学生 。 我的梦想 是 成为 设计师 , 然后 咨询 了 一...
1930 0.282575 0.990725 " 15915548283 " 汕头 ( 市区 内 ) 哪里 有得 印 t恤 的 ? 黑色 t恤
1932 0.282624 0.990725 青云志 广告 歌曲 米兰达 可儿 施华洛世奇 广告 歌曲 http : // www . pinshan . c...
2092 0.289801 0.990725 如果 你 下载 后 安装 出现 问题 参考 : http : // jingyan . ba... 怎样 在 电脑 里 看 朋友圈
2277 0.298122 0.990725 zz1228 . com 我 17 岁 , 不知道 为什么 喜欢 学 别人 的 坏 毛病 , 这 让我 很 烦恼
2386 0.303051 0.990725 http : // www . aipai . com/c13/pz8hicunicxqjw... 歌词 中 大概 是 这样 的 : 飞吧 张开 你 的 翅膀 乘着 风儿 去远方 追 吧 穿过...
2442 0.305562 0.990725 cctv rrs 比如 , 钱 咖 , 试客 小兵 这样 的 赚钱 软件 , 会不会 泄漏 个人隐私 , 比如...
2452 0.305897 0.990725 世界上 只有 一个 罗纳尔多 歌曲 世上只有 一个 罗纳尔多 开头 音乐 http : // www . tudou . com...
2489 0.307519 0.990725 hu uuo oooooooo ooh u oh u oh u 求 gta 5 中的 一 首 电台 歌曲 , 好像 是 一个 女 的 在 呻吟 , 大多数 ...
2556 0.310110 0.990725 wnd mmd 我们 为什么 要 加盟 ? 市场 运作 培训 主要 是 市场开发 和 维护 的 培训 , 加...
2576 0.310815 0.990725 6688958 . top 谁 有 《 绝地逃亡 》 2016 的 百度 云盘 ? 求 真实 链接 !
2626 0.312757 0.990725 kan hh 超 超级 色 的 动画 , 男主角 要是 很 色 , 是 日本动画
2637 0.313099 0.990725 http : // zhidao . baidu . com/question/201200... 本人 25 岁 , 想开 个 小店 , 请 大神 赐教 , 具体 什么 店 好 ? 一个人 ...
2648 0.313466 0.990725 tz yxhh 我 用 生死狙击 好 号 换 特战 英雄 好 号 , 要 换 快点 , 在线 等 ! ( 密...
2657 0.313841 0.990725 python csv 女人 到了 50 岁 月经期 长 , 流 多 , 附带 小 血块 什么 原因 ?
2661 0.314126 0.990725 yinweishushizhishidesheng mo 我们 要 读 有益 的 书 , 因为 书 是 知识 的 ( ) , 力量 的 ( ) , 智...
2805 0.319562 0.990725 www 558 uu 帝国时代 3 亚洲王朝 : 家乡 城市 一 建立 就 10 级 怎么回事 , 并且 为什么 ...
2857 0.321600 0.990725 玩具 开 版 软件 求 一 款 软件 : 这个 软件 是什么 软件 ? 谢谢 啦 http : // www ....
2968 0.325470 0.990725 www . id8888 . com/ykt 我 用 我的 娱乐 一卡通 买 了 10 元 的 百游 一卡通 但 我 在 那里 冲 点卡 ...
3007 0.327152 0.990725 ( 582338598 ) 我 爸 10 多岁 时 , 我 奶奶 才 得了 白癜风 , 那 我 爸 体内 有 白癜风 遗...
3099 0.330461 0.990725 code veronica 求 各位 大虾 同志 们 , 给 偶 个 生化危机 代号 维罗妮卡 的 游戏 文件 , 模拟...
3101 0.330507 0.990725 映客 直播 广告 音乐 跪求 这个 视频 的 背景音乐 , 谢谢 ! http : // www . tudou ....
... ... ... ... ...
5564014 0.918305 0.990725 到 新加坡 旅游 15 天 需要 多少 钱 成都 去 新加坡 自助 旅游 15 天 大概 费用
5564018 0.918305 0.990725 野鸡 会 在 固定 地方 过夜 吗 这 几 天 野鸡 爱在 什么 地方 过夜
5564022 0.918305 0.990725 空调 导 风 板 开 了 空调 就 关 关 了 就 开 美的 空调 关机 状态 下 我 把 导 风 板板 到 中间 位置 了 , 导致 开机 再 关...
5564023 0.918305 0.990725 盘锦北距离兴隆台 盘锦 北 到 兴隆台 有 多远 啊
5564037 0.918305 0.990725 网银 赚钱 名字 对 了 卡号 错了 钱能 转 出去 吗 手机 银行转账 名字 对 卡号 错了 钱能 退 吗
5564038 0.918305 0.990725 梦幻 西游 中 节日 活动 上交 什么 烹饪 梦幻西游 一年 内 的 所有 活动 。
5564040 0.918305 0.990725 关于 华东 一区 的 游戏 有 那些 炫舞 华东 一区 聘 个 游戏 情侣 、 纯属 娱乐 、 不 现实 。
5564043 0.918305 0.990725 天王补心丸 的 功效 与 作用 柏子养心丸 和 天王补心丸 效果 一样 吗
5564046 0.918305 0.990725 cf 戒指 怎么 被 人 打了 不 显示 穿越火线 银蛇 戒指 戴 了 为什么 不 显示 伤害
5564049 0.918305 0.990725 有关 霸爱邪君 一 系列 小说 和 【 霸爱邪君 】 同一 本 小说 的 另外 一篇 小说 叫 什么 名字 啊
5564055 0.918305 0.990725 2 个 月前 申请 的 浦发 信用卡 通过 了 但是 忘记 当时 填写 的 资料 5 月 5 号 我 填写 资料 申请 了 浦发银行 的 wow 信用卡 多长 时间 能 办 ...
5564065 0.918305 0.990725 召唤 带 琳恩 的 雏 女 杖 还是 咒术师 的 扭曲 之 手 好 dnf 琳恩 的 雏 女 杖 和 咒术师 的 扭曲 之 手 那个 好
5564073 0.918305 0.990725 红警 核战争 盟军 任务 攻略 红警2 的 核战争 任务 关 的 盟军 第二 关 怎么过 呀
5564075 0.918305 0.990725 下雨 的 天空 突然 雷声 轰隆隆 下雨 的 天空 , 总是 雷声 轰隆隆 , 有 谁知道 我 心痛 。 。 。 。 。 。 。...
5564090 0.918305 0.990725 七日杀 游戏界面 是 红字 什么 意思 请问 七日杀 游戏 怎么 开始 啊 找不到 开始 键
5564091 0.918305 0.990725 问道 异兽 熔炼 怎么 弄 问道 异宠 熔炼 材料 在哪里
5564093 0.918305 0.990725 精炼 的 混沌 魔石 项链 与 精炼 手镯 有 冲突 吗 dnf , 剑帝 , 带 这个 巨剑 还是 释 魂 光剑 , 跟 精炼 的 混沌 魔石 项链...
5564101 0.918305 0.990725 员工 绩效 辅导 怎么 做 主管 如何 对 下属 进行 绩效 辅导
5564102 0.918305 0.990725 广西 护士门 南宁 护士门 事件 是 怎么回事
5564104 0.918305 0.990725 轻质 氧化镁 有 哪些 成份 氧化镁 是用 什么 做 的
5564105 0.918305 0.990725 桜 の 栞 空间 背景音乐 视频 里 的 背景音乐 是什么
5564107 0.918305 0.990725 美国 短发 女人 演 香港电影 香港电影 短发 女人 头 上 长 出 了 一个 头 然后 男 的 将 两个 头 一起 砍掉 ...
5564110 0.918305 0.990725 干部 编 比 工人 编 退休 工资 高 吗 机关 事业单位 退休 工资 工人 和 干部 比例 一样 吗
5564115 0.918305 0.990725 生 完 宝宝 三天 奶 涨 喝 不 出来 怎么办 生 完 宝宝 三天 了 , 乳房 涨 的 疼 , 但是 宝宝 还 喝 不 出来 多少 奶
5564121 0.918305 0.990725 一般 在 济南封阳台 的 价格 有没有 人 可以 跟 我 交流 一下 封阳台 的 事 ~ ~
5564123 0.918305 0.990725 人民 调解员 笔录 签字 后 反悔 二次 起诉 离婚 , 双方 对 财产分割 上 达成 一致 , 再 调解 笔录 上 签字 按 ...
5564144 0.918305 0.990725 dnf 中 如何 获得 魔龙 之 怒 该 刷 哪个 图 地下城与勇士 被 压抑 的 魔龙 之 怒 怎么 刷
5564150 0.918305 0.990725 我的世界 神秘 二 制 练 炉 咋 建 视频 我的世界 神秘 时代 练 金 炉 怎么 造 视频
5564155 0.918305 0.990725 新人 颁奖词 婚礼 上 , 仿照 “ 感动中国 ” 给 父母 还有 新郎新娘 写 几 句 颁奖词
5564164 0.918305 0.990725 证明 某人 家庭 困难 的 单位 负 法律责任 吗 收入证明 上本 单位 保证 该 证明 真实 有效 要 负 法律责任 吗

1208319 rows × 4 columns


In [103]:
def

In [12]:
def q2q_ok(s, t, min_tokens=3, max_tokens=15):
    
    chinese_non_stops = u'"#$%&'()*+,-/:;<=>@[\]^_`{|}~⦅⦆「」、、〃》「」『』【】〔〕〖〗〘〙〚〛〜〝〞〟〰〾〿–—‘’‛“”„‟…‧﹏'
    chinese_stops = u"!?。。"
    chinese_punctuations = chinese_non_stops + chinese_stops
    if s == t:
        return False
    
    s_token = s.split(" ")
    t_token = t.split(" ")
    
    s_set_token = set(s_token)
    t_set_token = set(t_token)
    
    if len(s_token) < min_tokens or len(s_token) > max_tokens:
        return False
    if len(t_token) < min_tokens or len(t_token) > max_tokens:
        return False
    
    return True
def read_write_q2q_80w(path):
    f = codecs.open(path, "r", "utf-8")
    lines = f.readlines()
    print(len(lines))
    gold_dict = {}
    train_dev_dict = {}
    for i, line in enumerate(lines):
        st = line.strip().split("\t")
        s = st[0].strip()
        t = st[1].strip()
        x = q2q_ok(s,t)
        if not x:
            continue
        s = s.replace(". . .", "").strip()
        t = t.replace(". . .", "").strip()
        if len(st) == 3:
            if s not in train_dev_dict:
                train_dev_dict[s] = []
            train_dev_dict[s].append(t)
        else:
            if s not in gold_dict:
                gold_dict[s] = []
            gold_dict[s].append(t)
    return gold_dict, train_dev_dict
gold_dict, t_dict = read_write_q2q_80w(r"E:\active_project\UnzipData\q2q_80w.txt")


811460

In [15]:
save_q2q_dict(fetch_q2q_dict(gold_dict, top=1), r"E:\active_project\UnzipData\query_rewrite\test\gold_test.txt")

In [7]:
print(len(gold_dict))
sum([len(gold_dict[k]) for k in gold_dict])


27804
Out[7]:
94220

In [112]:



Out[112]:
520710

In [121]:
t_dict[ list(t_dict.keys())[0] ]


Out[121]:
['今年 八 月份 有 谁 在北京 开 演唱会 ?']

In [124]:
cnt = 0
for key in t_dict:
    print("{}\t{}".format(key, t_dict[key][0]))
    cnt += 1
    if cnt >= 20:
        break


2016 八 月份 北京演唱会	今年 八 月份 有 谁 在北京 开 演唱会 ?
造 梦西游 4 锐 换 密码 是什么	造 梦西游 4 豪华 礼包 兑换 码
联想 g 555 笔记本 主板 电池 在 哪	联想 笔记本 的 主板 电池 在 哪
企业 招投标 条件	企业 招标 一般 有 哪些 要求 ?
固铂 轮胎 怎么样	固铂 轮胎 怎么样 ? 最近 看到 一家 固铂 轮胎 的 专卖店 , 不知道 质量 如何 ?
减值准备 对方 科目 是什么	固定资产 减值准备 的 对方 科目 是什么 ?
陈长生 和 徐有容 相认	择 天记 , 在 周园 , 陈长生 在 第 几 章 知道 秀 玲 族 那个女孩 是 徐有容
吹 空调 为什么 会 头疼	吹 空调 为什么 会 头疼 ?
左 的 错误 倾向 的 主要 特征 是什么	什么 是 “ ‘ 左 ’ 的 错误 ” ?
我的世界 服务器 删除 监狱 指令	我的世界 监狱 指令 是什么 ?
丑八怪 歌词 赏析	丑八怪 薛之谦 歌曲 评论
关于 蒙古族 的 手抄报	蒙古族 名称 的 手抄报
proe 5.0 删除 旧 版本	proe 文件 旧 版本 删除 批处理
座机 插 上网 线 只会 嘟 嘟嘟 的 响	电话 刚 插 上线 怎么 不能 打 还 嘟嘟 响
龙之谷 93 版本 平民 职业 排行	93 版本 龙之谷 平民 刷图 职业
部落 冲突 vivo 最新	部落 冲突 vivo 版 , 更新 后 还有 , 好几 次 了
btv 财经频道 - 鉴宝	btv 财经频道 的 理财 栏目 去 的 古玩市场 还有 古玩 早市 , 除了 十里河 , 潘家园 , 大钟寺 , 其他 具体 还有 哪些 ? 各
林业局 有 什么 项目	林业局 有 什么 项目 ?
你 不必 牵强 再说 爱我 下 一句 是 啥	有 一句 歌词 是 “ 你 也 不必 牵强 再说 爱我 ” , 歌名 是什么 ?
t 和 l 哪 一类 车 省油	发动机 的 t 和 l 哪 种 比较 省油 , 不要说 这 两 种 的 性能 怎么样 , 谢谢 各位 了 。

In [11]:
save_q2q_dict(gold_dict, r"E:\active_project\UnzipData\query_rewrite\test\test.txt")

In [47]:
def get_dev_dict(t_dict, samples = 30000):
    keys = list(t_dict.keys())
    sample_index = np.random.choice(len(keys), samples)
    sample_keys = [keys[i] for i in sample_index]
    dev_dict = {}
    for key in sample_keys:
        dev_dict[key] = t_dict[key][0]
    return dev_dict
dev_dict = get_dev_dict(t_dict)
dev_dict = diff_dict(dev_dict, gold_dict)

In [49]:
len(dev_dict)


Out[49]:
28969

In [48]:
save_q2q_dict(dev_dict, r"E:\active_project\UnzipData\query_rewrite\dev\dev.txt")

In [63]:
reverse_td_dict = get_reverse_dict(t_dict)
reverse_gold_dict = get_reverse_dict(gold_dict)
reverse_dev_dict = get_reverse_dict(dev_dict)

train_dict = diff_dict(t_dict, gold_dict)
train_dict = diff_dict(train_dict, dev_dict)

print(No_key_Overlap(train_dict, gold_dict))
print(No_key_Overlap(train_dict, dev_dict))
print(No_key_Overlap(gold_dict, dev_dict))

all_q2q_dict = merge_q2q_dict(reverse_gold_dict, reverse_td_dict)
all_q2q_dict = merge_q2q_dict(all_q2q_dict, t_dict)
all_q2q_dict = merge_q2q_dict(all_q2q_dict, reverse_td_dict)
all_q2q_dict = merge_q2q_dict(all_q2q_dict, reverse_dev_dict)
final_train_dual_dict = diff_dict(all_q2q_dict, gold_dict)
final_train_dual_dict = diff_dict(final_train_dual_dict, dev_dict)
len(all_q2q_dict), len(final_train_dual_dict)

print(No_key_Overlap(final_train_dual_dict, gold_dict))
print(No_key_Overlap(final_train_dual_dict, dev_dict))
print(No_key_Overlap(gold_dict, dev_dict))


True
True
True
True
True
True

In [53]:
save_q2q_dict(train_dict, r"E:\active_project\UnzipData\query_rewrite\train\train.txt")

In [64]:
save_q2q_dict(final_train_dual_dict, r"E:\active_project\UnzipData\query_rewrite\train\train_dual.txt")

In [65]:
len(final_train_dual_dict)


Out[65]:
935922

In [61]:
train_top2_dict = fetch_q2q_dict(t_dict, 1)
len(t_dict), len(train_top2_dict)


Out[61]:
(429711, 429711)

In [62]:
from collections import OrderedDict

def No_key_Overlap(d1, d2):
    q = set(list(d1.keys())).intersection(list(d2.keys()))
    if len(q) != 0:
        print(len(q))
        print(list(q)[0:10])
    return len(q) == 0

def merge_q2q_dict(d1, d2):
    '''merge key, extend value list(unqiue)
    '''
    d = {}
    keys = list(d1.keys()) + list(d2.keys())
    for key in keys:
        if key in d1 and key in d2:
            value = d1[key] + d2[key]
            value = list( set(list(value)) )
            d[key] = value
        elif key in d1:
            d[key] = d1[key]
        else:
            d[key] = d2[key]
    return d
        
def get_q2q_dict(path):
    f = codecs.open(path, "r", "utf-8")
    lines = f.readlines()
    q2q_dict = OrderedDict()
    for i, line in enumerate(lines):
        st = line.strip().split("\t")
        st = [v.strip() for v in st]
        if len(st) < 2:
            continue
        try:
            s, t, = st[0], st[1]
        except Exception:
            print(st)
            print(line)
        if s not in q2q_dict:
            q2q_dict[s] = []
        q2q_dict[s].append(t)
    return q2q_dict

def get_reverse_dict(d):
    rd = {}
    for key in d:
        vlist = d[key]
        if type(vlist) != list:
            vlist = [vlist]
        for v in vlist:
            if v not in rd:
                rd[v] = []
            rd[v].append(key)
    return rd

def fetch_q2q_dict(d, top=1):
    x = {}
    for key in d:
        targets = d[key]
        fetch = targets[0:top]
        x[key] = fetch
    return x

def save_q2q_dict(d, save_path):
    f = codecs.open(save_path, "w", "utf-8")
    for key in d:
        v = d[key]
        if type(v) != list:
            v = [v]
        for c in v:
            s = "\t".join([key, c]) + "\n"
            f.write(s)
    f.close()
    
def diff_dict(d1, d2):
    d1_keys = set(d1.keys())
    d2_keys = set(d2.keys())
    dif_keys = d1_keys - d2_keys
    x = {}
    for key in dif_keys:
        x[key] = d1[key]
    return x

In [ ]:


In [8]:
all_q2q_dict = get_q2q_dict("./wenda_q2q.seg")

In [9]:
truth_q2q_dict = get_q2q_dict(r"E:\active_project\Dataset\q2q_pos.train")

In [14]:


In [ ]:
def make_unique

In [16]:
candi_num = [len(v) for v in q2q_dict.values()]
s_num = pd.Series(candi_num)


---------------------------------------------------------------------------
AttributeError                            Traceback (most recent call last)
<ipython-input-16-c009282116b3> in <module>()
      1 candi_num = [len(v) for v in q2q_dict.values()]
      2 s_num = pd.Series(candi_num)
----> 3 s_num.stat()

C:\Program Files\Anaconda3\lib\site-packages\pandas\core\generic.py in __getattr__(self, name)
   2670             if name in self._info_axis:
   2671                 return self[name]
-> 2672             return object.__getattribute__(self, name)
   2673 
   2674     def __setattr__(self, name, value):

AttributeError: 'Series' object has no attribute 'stat'

In [ ]:
print("x")

In [24]:
import matplotlib.pyplot as plt
import matplotlib
matplotlib.style.use('ggplot')
%matplotlib inline

In [16]:
import collections
from collections import namedtuple
SpecialVocab = collections.namedtuple("SpecialVocab", [])

In [21]:
import pandas as pd

In [44]:
f = codecs.open(r"C:/Users/turingli/Desktop/biz_wordidf.txt", "r", "utf-8")
lines = f.readlines()
d = []
for line in lines:
    t = line.strip().split("\t")
    try:
        t[2] = float(t[2])
        t[1] = int(t[1])
    except Exception:
        print(line)
        continue
    d.append(t)


	580	11.3979983735


In [45]:
df = pd.DataFrame(d, columns=["word", "count", "point"])

In [26]:
from sklearn import preprocessing
min_max_scaler = preprocessing.MinMaxScaler()

In [46]:
df["point"] = pd.to_numeric(df["point"])

In [48]:
sdf = df[ df["point"] == np.nan  ]

In [50]:
len(sdf)


Out[50]:
0

In [52]:
df["point"] = min_max_scaler.fit_transform(df["point"].values)


C:\Program Files\Anaconda3\lib\site-packages\sklearn\preprocessing\data.py:321: DeprecationWarning: Passing 1d arrays as data is deprecated in 0.17 and will raise ValueError in 0.19. Reshape your data either using X.reshape(-1, 1) if your data has a single feature or X.reshape(1, -1) if it contains a single sample.
  warnings.warn(DEPRECATION_MSG_1D, DeprecationWarning)
C:\Program Files\Anaconda3\lib\site-packages\sklearn\preprocessing\data.py:356: DeprecationWarning: Passing 1d arrays as data is deprecated in 0.17 and will raise ValueError in 0.19. Reshape your data either using X.reshape(-1, 1) if your data has a single feature or X.reshape(1, -1) if it contains a single sample.
  warnings.warn(DEPRECATION_MSG_1D, DeprecationWarning)

In [54]:
df.to_csv(r"C:/Users/turingli/Desktop/biz_wordidf_noraml.txt", index=False, sep="\t", encoding="utf-8")