我们如何通过计算词的语境来获得相关词呢?

语境的定义是:在一段文本中,任意一个词的语境由它的前N个词和后N个词组成。

相关词的定义是:如果两个词的语境越相似,那么这两个词就越相似,也就越相关。

算法由两个步骤组成:

1、从大规模语料库中计算每一个词的语境,并使用词向量来表示语境。实现代码

2、把求两个词的相似度的问题转换为求这两个词的语境相似度的问题。通过计算语境的相似度,就可得到词的相似度,越相似的词就越相关。实现代码 关于相似度计算,word分词还提供了很多种算法,参考这里

使用方法如下:

1、使用word分词内置语料库:运行word分词项目根目录下的脚本 demo-word-vector-corpus.bat 或 demo-word-vector-corpus.sh

2、使用自己的文本内容:运行word分词项目根目录下的脚本 demo-word-vector-file.bat 或 demo-word-vector-file.sh

由于语料库很大,所以启动的时间会很长,请耐心等待,下面以例子来说明:

比如我们想分析 兰州 这个词的相关词有哪些,我们运行脚本 demo-word-vector-corpus.sh ,启动成功之后命令行提示:

开始初始化模型
模型初始化完成
可通过输入命令sa=cos来指定相似度算法,可用的算法有:1、sa=cos,余弦相似度2、sa=edi,编辑距离3、sa=euc,欧几里得距离4、sa=sim,简单共有词5、sa=jac,Jaccard相似性系数6、sa=man,曼哈顿距离7、sa=shh,SimHash + 汉明距离
可通过输入命令limit=15来指定显示结果条数
可通过输入命令exit退出程序
输入要查询的词或命令:

我们输入 兰州 后回车,结果显示:

兰州 的相关词(EditDistanceTextSimilarity):
----------------------------------------------------------1、兰州 1.02、北京 0.213、福州 0.24、太原 0.195、成都 0.176、西安 0.177、哈尔滨 0.178、南宁 0.179、贵阳 0.1610、庆阳 0.1511、沈阳 0.1412、合肥 0.1413、大同 0.1414、拉萨 0.1315、西宁 0.13
----------------------------------------------------------

这里显示的结果就是 兰州 这个词的相关词,词后面跟的是相关度分值,兰州 和 兰州 是同一个词,相关度百分之百,自然是1分。

从这个结果我们来分析,这些词凭什么相关呢?线索在哪里?

首先这些词的词性都是名词;

其次这些词都是地名而且是大城市名;

从这里我们也可以看到一个有意思的现象,同一词性比如地名的用法往往保持一致。

相关词是从语境推导得到的,语境中词后面跟的数字是权重,权重是1/N的累加值,下面我们看看这些词的语境:

兰州 : [军区 1.0, 甘肃 0.78205127, 新区 0.7692308, 大学 0.42307693, 甘肃兰州 0.41025642, 货车 0.3846154, 西安 0.32051283, 本报 0.2948718, 新华社 0.2820513, 兰州新区 0.26923078, 召开 0.23076923, 发往 0.21794872, 中国 0.20512821, 兰州 0.20512821, 火车站 0.20512821, 铁路 0.17948718, 参加 0.15384616, 西宁 0.15384616, 方向 0.15384616, 成都 0.14102565, 警察 0.14102565, 建设 0.12820514, 市委 0.12820514, 来到 0.12820514, 一家 0.12820514, 中心 0.115384616, 炼油厂 0.102564104, 进入 0.102564104, 来自 0.102564104, 举行 0.102564104]
北京 : [新华社 1.0, 本报 0.7119143, 举行 0.19384204, 上海 0.17831326, 时间 0.16385542, 铁路局 0.1394913, 西站 0.13226238, 青年报 0.12717536, 晨报 0.11700134, 市委 0.1145917, 地区 0.11218206, 召开 0.10200803, 城市 0.08299866, 目前 0.07951807, 来到 0.06961178, 军区 0.06827309, 国际 0.066398926, 中心 0.063453816, 北京时间 0.06184739, 人民 0.059973225, 工作 0.05863454, 地铁 0.057563588, 北京铁路局 0.056492638, 医院 0.055421688, 飞往 0.05381526, 首都 0.053547524, 中国 0.053547524, 其中 0.05274431, 今天 0.052208837, 卫视 0.05167336]
福州 : [火车站 1.0, 新区 0.46666667, 福州火车站 0.45555556, 晚报 0.2962963, 记者 0.2777778, 打工 0.27407408, 来到 0.24814814, 市民 0.23333333, 本报 0.22222222, 大学 0.21851853, 市区 0.2074074, 市委 0.19259259, 举行 0.19259259, 鼓楼区 0.18518518, 网友 0.18148148, 到达 0.17037037, 开往 0.16296296, 目前 0.14074074, 分行 0.14074074, 一家 0.12962963, 全市 0.12962963, 东街口 0.12222222, 福州晚报 0.12222222, 新华社 0.11851852, 铁路 0.11851852, 召开 0.11481482, 前往 0.11481482, 发展 0.11481482, 推进 0.11111111, 福州 0.11111111]
太原 : [山西 1.0, 山西太原 0.6136364, 本报 0.39772728, 新华社 0.3409091, 火车站 0.26136363, 济南 0.25, 铁路 0.23863636, 北京 0.22727273, 推出 0.1590909, 国际 0.1590909, 返回 0.14772727, 刚玉 0.13636364, 来自 0.13636364, 发布 0.13636364, 打工 0.125, 中心 0.125, 市委 0.11363637, 银行 0.11363637, 铁路局 0.10227273, 西安 0.09090909, 集团 0.09090909, 公安 0.09090909, 开往 0.09090909, 比如 0.07954545, 金融 0.07954545, 火车票 0.07954545, 大同 0.06818182, 山西省 0.06818182, 军分区 0.06818182, 离开 0.06818182]
成都 : [商报 1.0, 成都商报 0.4117647, 军区 0.1875, 铁路局 0.17830883, 北京 0.17463236, 本报 0.17095588, 重庆 0.15441176, 告诉 0.15441176, 交警 0.14338236, 方向 0.1360294, 记者 0.13419117, 平原 0.121323526, 四川 0.1194853, 长沙 0.11764706, 理工大学 0.0992647, 来自 0.09375, 新华社 0.09191176, 开往 0.090073526, 成都铁路局 0.08455882, 铁路 0.080882356, 召开 0.07904412, 市民 0.075367644, 市委 0.073529415, 公司 0.07169118, 广州 0.07169118, 西安 0.0680147, 郫县 0.060661763, 打工 0.060661763, 市区 0.05882353, 晚报 0.05882353]
西安 : [火车站 1.0, 事变 0.75, 交通 0.7058824, 建设 0.5882353, 地铁 0.5882353, >咸阳 0.5588235, 来到 0.5294118, 市民 0.50735295, 大学 0.5, 铁路 0.5, 代表团 0.5, 铁路局 0.49264705, 公司 0.4852941, 武汉 0.4632353, 曲江 0.44117647, 供电 0.42647058, 新华社 0.4117647, 西安火车站 0.4117647, 北京 0.3602941, 交大 0.3602941, 本报 0.34558824, 西安事变 0.3382353, 城市 0.31617647, 城区 0.31617647, 落户 0.30882353, 市委 0.29411766, 国际 0.2867647, 城东 0.2867647, 成都 0.2720588, 举行 0.25]
哈尔滨 : [理工大学 1.0, 火车站 0.41584158, 哈尔滨理工大学 0.36138615, 工业 0.25742576, 方向 0.23762377, 新华社 0.20792079, 开往 0.18811882, 哈尔滨火车站 0.18316832, 位于 0.17821783, 大学 0.17326732, 铁路局 0.15841584, 来自 0.15346535, 最低 0.14356436, 北京 0.12871288, 本报 0.12376238, 黑龙江省 0.12376238, 发布 0.11386139, 中国 0.10891089, 飞往 0.0990099, 黑龙>江 0.08415841, 沈阳 0.07920792, 工程 0.07920792, 附近 0.074257426, 市委 0.06930693, 飞机 0.06930693, 上海 0.06930693, 考生 0.06930693, 进入 0.06930693, 停止 0.06930693, 经济 0.06435644]
南宁 : [广西 1.0, 铁路局 0.8, 广西南宁 0.62222224, 本报 0.54444444, 新华社 0.36666667, 南宁铁路局 0.31111112, 市委 0.26666668, 柳州 0.18888889, 桂林 0.17777778, 铁路 0.15555556, 兴>宁区 0.14444445, 来到 0.11111111, 开往 0.11111111, 前往 0.11111111, 公安 0.11111111, 工作 0.11111111, 运往 0.11111111, 城市 0.08888889, 美丽 0.08888889, 召开 0.08888889, 从事 0.08888889, 官塘 0.08888889, 楼市 0.08888889, 分局 0.07777778, 南宁市委 0.07777778, 动车 0.07777778, 发生 0.07777778, 举行 0.07777778, 西乡 0.06666667, 市长 0.06666667]
贵阳 : [本报 1.0, 重庆 0.73333335, 新华社 0.46666667, 方向 0.43333334, 前往 0.4, 哥俩 0.4, 城区 0.4, 老家 0.33333334, 西安 0.26666668, 成都 0.26666668, 街头 0.26666668, 晚报 0.26666668, 无关 0.26666668, 杭州 0.23333333, 涉及 0.2, 以及 0.2, 市内 0.2, 网友 0.2, 郑州 0.16666667, 南宁 0.16666667, 长沙 0.16666667, 武汉 0.16666667, 摆摊 0.16666667, 市委 0.13333334, 昆明 0.13333334, 安顺 0.13333334, 来到 0.13333334, 争霸 0.13333334, 四强 0.13333334, 铁路 0.13333334]
庆阳 : [甘肃 1.0, 甘肃庆阳 0.8, 甘肃省 0.4, 地区 0.4, 老区 0.3, 森林 0.2, 平凉 0.2, 镇远县 0.1, 革命 0.1, 韩凤廷 0.1, 交通处 0.1, 兰州森林大队 0.1, 大队 0.1, 兰州 0.1, 西峰 0.1, 发>送 0.1, 一辆 0.1, 牌照 0.1, 来自 0.1]
沈阳 : [军区 1.0, 晚报 0.5123967, 方向 0.3181818, 本报 0.27272728, 沈阳晚报 0.23553719, 新华社 0.20661157, 沈阳军区 0.18595041, 军区队 0.15289256, 海狮队 0.14876033, 自动化所 0.14049587, 此次 0.14049587, 经济区 0.1322314, 中国 0.12809917, >大连 0.12809917, 大爷 0.12809917, 市委 0.12396694, 一家 0.11570248, 高速 0.11570248, 国际 0.11157025, 火车票 0.11157025, 法库 0.10743801, 大学 0.10330579, 长春 0.10330579, 直达 0.09917355, 深圳 0.09090909, 上海 0.08677686, 记者 0.08677686, 海狮 0.08264463, 大妈 0.08264463, 两位 0.08264463]
合肥 : [火车站 1.0, 市民 0.8181818, 市区 0.53333336, 楼市 0.4848485, 合肥火车站 0.4121212, 铁路 0.38787878, 安徽 0.36969697, 到达 0.36363637, 市场 0.34545454, 上周 0.3030303, 芜湖 0.2969697, 召开 0.28484848, 记者 0.27272728, 成为 0.27272728, 来到 0.26666668, 安徽合肥 0.24242425, 城市 0.24242425, 经济圈 0.24242425, 公交 0.24242425, 目前 0.23636363, 本报 0.21818182, 今年 0.21818182, 起飞 0.21818182, 汽车 0.21212122, 物质 0.2060606, 合肥楼市 0.2060606, 空港 0.2060606, 工业 0.19393939, 标题 0.18181819, 野生 0.16969697]
大同 : [大学 1.0, 铁路 0.52380955, 山西 0.5, 证券 0.33333334, 大同大学 0.33333334, 山西省 0.23809524, 此次 0.23809524, 山西大同 0.1904762, 世界 0.1904762, 世界大同 0.1904762, 街道 0.16666667, 太原 0.14285715, 市委 0.14285715, 上海 0.14285715, 派出所 0.14285715, 公安处 0.14285715, 日方 0.14285715, 转发 0.14285715, 运城 0.11904762, 军分区 0.0952381, 矿务局 0.0952381, 小学 0.0952381, 参加 0.0952381, 项目 0.0952381, 中学 0.0952381, 水厂 0.0952381, 车辆段 0.0952381, 开往 0.0952381, 大同证券 0.0952381, 战役 0.071428575]
拉萨 : [火车站 1.0, 新华社 0.91935486, 西藏 0.7580645, 市区 0.61290324, 本报 0.58064514, 召开 0.5645161, 海关 0.5483871, 城市 0.48387095, 拉萨火车站 0.4032258, 市委 0.38709676, 成都 0.37096775, 贡嘎 0.3548387, 开幕 0.32258064, 发布 0.30645162, 西藏拉萨 0.2580645, 会议 0.2580645, 机场 0.22580644, 闭幕 0.22580644, 隆重 0.22580644, 林芝 0.20967741, 举行 0.19354838, 开通 0.19354838, 营业部 0.19354838, 市民 0.17741935, 市场 0.17741935, 经济 0.17741935, 中心 0.17741935, 空气 0.17741935, 成为 0.17741935, 人民 0.16129032]
西宁 : [新华社 1.0, 上海 0.8235294, 兰州 0.3529412, 辗转 0.3529412, 本报 0.29411766, 青海 0.29411766, 考察 0.23529412, 当街 0.23529412, 特钢 0.1764706, 方向 0.1764706, 分行 0.1764706, 索贿 0.1764706, 北京 0.14705883, 但是 0.14705883, 拉萨 0.11764706, 我们 0.11764706, 标题 0.11764706, 交警 0.11764706, 代表团 0.11764706, 处理 0.0882353, 银川 0.0882353, 车票 0.0882353, 筹建 0.0882353, 中转 0.0882353, 参加 0.0882353, 一月 0.05882353, 试验局 0.05882353, 二月 0.05882353, 地区 0.05882353, 严肃 0.05882353]

最后我们看一下分别使用7种相似度算法算出来的 兰州 的相关词:

----------------------------------------------------------
兰州 的相关词(CosineTextSimilarity):1、兰州 1.02、沈阳 0.53、北京军区 0.474、后勤部 0.465、沈阳军区 0.466、总医院 0.467、新疆军区 0.468、司令员 0.429、甘肃兰州 0.4210、兰州新区 0.4211、某师 0.3912、郑蒲港 0.3813、西咸 0.3814、天水 0.3715、郑东 0.37
耗时:25秒,572毫秒
----------------------------------------------------------
兰州 的相关词(EditDistanceTextSimilarity):1、兰州 1.02、北京 0.213、福州 0.24、太原 0.195、成都 0.176、南宁 0.177、西安 0.178、哈尔滨 0.179、贵阳 0.1610、庆阳 0.1511、合肥 0.1412、大同 0.1413、沈阳 0.1414、珀斯 0.1315、拉萨 0.13
耗时:44秒,253毫秒
----------------------------------------------------------
兰州 的相关词(EuclideanDistanceTextSimilarity):1、兰州 1.02、后勤部 0.373、北京军区 0.374、新疆军区 0.375、沈阳 0.376、沈阳军区 0.377、总医院 0.378、上海浦东新区 0.369、郑蒲港 0.3610、浦东新区 0.3611、甘肃兰州 0.3612、西咸 0.3613、西咸新区 0.3614、正定新区 0.3615、司令员 0.36
耗时:24秒,710毫秒
----------------------------------------------------------
兰州 的相关词(SimpleTextSimilarity):1、兰州 1.02、福州 0.363、西安 0.334、李红旗 0.335、中国金融信息中心 0.336、南特 0.327、卡塔赫纳 0.328、哈尔滨 0.39、武汉 0.310、戴克瑞 0.311、楚雄州 0.2912、朱梦魁 0.2913、岳菲菲 0.2914、长沙 0.2815、吕国庆 0.28
耗时:21秒,918毫秒
----------------------------------------------------------
兰州 的相关词(JaccardTextSimilarity):1、兰州 1.02、福州 0.223、西安 0.24、哈尔滨 0.185、北京 0.186、武汉 0.187、成都 0.188、长沙 0.159、太原 0.1510、贵阳 0.1511、沈阳 0.1512、广州 0.1513、拉萨 0.1514、南昌 0.1515、长春 0.13
耗时:19秒,717毫秒
----------------------------------------------------------
兰州 的相关词(ManhattanDistanceTextSimilarity):1、兰州 1.02、上海浦东新区 0.113、陕西西咸新区 0.114、甘肃兰州 0.115、北京军区 0.116、新疆军区 0.117、西咸 0.118、正定新区 0.119、天府新区 0.1110、沈阳军区 0.1111、国家级新区 0.1112、兰州新区 0.1113、侠客 0.114、威胁论 0.115、一两个月 0.1
耗时:23秒,857毫秒
----------------------------------------------------------
兰州 的相关词(SimHashPlusHammingDistanceTextSimilarity):1、兰州 1.02、鱼水 0.963、冯导 0.954、新闻稿 0.955、科学 0.956、物业公司 0.957、现役军人 0.958、何人 0.959、张轸 0.9410、公告 0.9411、信息发布 0.9412、倡议 0.9413、药液 0.9414、考古发掘 0.9415、公开发布 0.94
耗时:5分钟,57秒,339毫秒
----------------------------------------------------------

利用word分词通过计算词的语境来获得相关词相关推荐

  1. 利用word分词来计算文本相似度

    word分词提供了多种文本相似度计算方式: 方式一:余弦相似度,通过计算两个向量的夹角余弦值来评估他们的相似度 实现类:org.apdplat.word.analysis.CosineTextSimi ...

  2. java 分词词频_利用word分词来对文本进行词频统计

    标签: 命令行脚本的调用方法如下: 将需要统计词频的文本写入文件:text.txt chmod +x wfs.sh & wfs.sh -textFile=text.txt -statistic ...

  3. Java分布式中文分词组件 - word分词(转自 https //github com/ysc/word)

    首先给大家分享一个巨牛巨牛的人工智能教程,是我无意中发现的.教程不仅零基础,通俗易懂,而且非常风趣幽默,还时不时有内涵段子,像看小说一样,哈哈-我正在学习中,觉得太牛了,所以分享给大家!点这里可以跳转 ...

  4. Java分布式中文分词组件 - word分词(转自:https://github.com/ysc/word)

    ###Java分布式中文分词组件 - word分词 ####word分词是一个Java实现的分布式的中文分词组件,提供了多种基于词典的分词算法,并利用ngram模型来消除歧义.能准确识别英文.数字,以 ...

  5. 百度相关词疯狂采集工具

    来发一款百度相关词的采集工具吧,可以深度采集关键词. 就以截图来说,输入你要采集的词,就会从百度的相关搜索得到关键词,一个词会得到9个相关词,得到的这9个词再去搜索相关搜索词,这样无限制循环,深度采集 ...

  6. one-hot(独热)、bag of word(词袋)、word-Embedding(词嵌入)浅析

    目录 词袋模型 one-hot word-embedding 我们知道,传统的数据挖掘任务面向的是结构化数据.结构化数据很好理解,就是很有结构的数据嘛. 比如下面这张银行客户数据库中的表格: 编号 姓 ...

  7. python根据频率画出词云_利用pandas+python制作100G亚马逊用户评论数据词云

    原标题:利用pandas+python制作100G亚马逊用户评论数据词云 数据挖掘入门与实战 公众号: datadw 我们手里面有一个差不多100G的亚马逊用户在购买商品后留下的评论数据(数据格式为j ...

  8. Java分布式中文分词组件 - word分词

    Java分布式中文分词组件 - word分词 word分词是一个Java实现的分布式的中文分词组件,提供了多种基于词典的分词算法,并利用ngram模型来消除歧义.能准确识别英文.数字,以及日期.时间等 ...

  9. Java web:基于jieba分词器(或ansj分词器)的文章关键词字符云(词云图)

    上来先丢一个展示图,吸引一下注意力(跑. 上图为对某论文用jieba分词后,计算其逆文档频率(TF-IDF)作为权重,并用echarts的字符云扩展包echarts-wordcloud画出来的字符云图 ...

最新文章

  1. 应用退出前不让线程切换_用户级线程和内核级线程,你分清楚了吗?
  2. oracle查询保留2位小数
  3. VOA,with me
  4. Python:数组添加数据和删除数据
  5. 中国深圳,600架无人机的盛典!
  6. noj大作业c语言扫雷,noj大作业.doc
  7. 护航亚运|安恒信息推出“九维五星” ,并强调将全面突出“智能亚运”
  8. 墙面有几种装修方法_墙面怎么装修?这五个方案供你选择
  9. YOLO-V4解读:速度与精度的完美结合
  10. linux 添加声卡驱动,操作手册:Linux系统安装声卡驱动
  11. 什么是TS?如何打开,编辑和转换它?
  12. FMRI及NMR简介
  13. 3d抽奖html,3d抽奖(微信)
  14. C++高斯分布随机数的产生
  15. Win | Scoop 安装使用
  16. 【NA】Householder变换
  17. 08年最后的一个节日
  18. c语言错误1004,excel宏运行时提示错误1004的三种解决方法
  19. Realplay和mplayer的安装!
  20. Intel AC8265网卡测速

热门文章

  1. 类似于快手、美拍、抖音短视频录制SDK接入教程
  2. 贴片式T卡可以解决传统T卡的那些问题?
  3. java线程池详解及五种线程池方法详解
  4. app的维护成本怎么算?
  5. creo扫描选择多条链作为轨迹_Proe/Creo如何使用可变截面扫描创建曲面?
  6. brainproduct recorder 远程采集脑电波实时数据
  7. 如何用C语言实现【猜拳游戏】
  8. Oracle数据库入门到高薪培训教程(从Oracle 11g 到 Oracle 19c)
  9. 直播预告丨Oracle数据库网络及存储技术详解-2022云和恩墨大讲堂
  10. 郑州哪家公司网站建设建设比较好?