sas文本挖掘案例(如何使用SAS计算WordMover的距离)

原文链接:http://tecdat.cn/?p=6181
Word Mover的距离(WMD)是用于衡量两个文档之间差异的距离度量,它在文本分析中的应用是由华盛顿大学的一个研究小组在2015年引入的。
Word Mover距离的定义
WMD是两个文档之间的距离,作为将所有单词从一个文档移动到另一个文档所需的最小(加权)累积成本。通过解决以下线性程序问题来计算距离。
need-to-insert-img
sas文本挖掘案例(如何使用SAS计算WordMover的距离)
文章图片
T ij表示文档d中的单词i在文档d'中移动到单词j的多少;
C(1; j)的表示从文件d中的单词我到文件d '中的单词J‘行进’的费用; 这里的成本是word2vec嵌入空间中的两个词'欧几里德距离;
如果字我出现?我在文档d次,我们记
need-to-insert-img
sas文本挖掘案例(如何使用SAS计算WordMover的距离)
文章图片
WMD是地球移动器距离度量(EMD)的一个特例,这是一个众所周知的运输问题。
如何用SAS计算地球移动的距离?
SAS / OR是解决运输问题的工具。图1显示了一个带有四个节点和节点之间距离的传输示例,我从这个Earth Mover的距离文档中复制了这些节点。目标是找出从{x1 ,x2}到{y1,y2}的最小流量。现在让我们看看如何使用SAS / OR解决这个运输问题。
节点的权重和节点之间的距离如下。
need-to-insert-img
sas文本挖掘案例(如何使用SAS计算WordMover的距离)
文章图片
图-1运输问题
ARCS; num arcCost{ARCS}; readdatax_setintoxNODES=[_node_]w=_sd_; readdatay_setintoyNODES=[_node_]u=_sd_; readdataarcdataintoARCS=[_tail_ _head_]arcCost=_cost_; varflow{inARCS}>=0; impvar sumY =sum{jinyNODES}u[j]; minobj =(sum{inARCS}arcCost[i,j]* flow[i,j])/sumY; con con_y{jinyNODES}:sum{inARCS}flow[i,j]= u[j]; con con_x{iinxNODES}:sum{<(i),j>inARCS}flow[i,j]<= w[i]; solve with lp / algorithm=ns scale=none logfreq=1; print flow; quit; "}"> datax_set; input_node_ $ _sd_; datalines; x10.74x20.26; datay_set; input_node_ $ _sd_; datalines; y10.23y20.51; dataarcdata; input_tail_ $ _head_ $ _cost_; datalines; x1 y1155.7x1 y2252.3x2 y1292.9x2 y2198.2; proc optmodel; setxNODES; num w{xNODES}; setyNODES; num u{yNODES}; set ARCS; num arcCost{ARCS}; readdatax_setintoxNODES=[_node_]w=_sd_; readdatay_setintoyNODES=[_node_]u=_sd_; readdataarcdataintoARCS=[_tail_ _head_]arcCost=_cost_; varflow{inARCS}>=0; impvar sumY =sum{jinyNODES}u[j]; minobj =(sum{inARCS}arcCost[i,j]* flow[i,j])/sumY; con con_y{jinyNODES}:sum{inARCS}flow[i,j]= u[j]; con con_x{iinxNODES}:sum{<(i),j>inARCS}flow[i,j]<= w[i]; solve with lp / algorithm=ns scale=none logfreq=1; print flow; quit;
need-to-insert-img
SAS / OR的解决方案如表-1所示,EMD是目标值:203.26756757。
need-to-insert-img
sas文本挖掘案例(如何使用SAS计算WordMover的距离)
文章图片
表-1 EMD用SAS / OR计算
我用SAS / OR表2得到的流量数据显示如下,与上述地球移动器距离文档中公布的图表相同。
need-to-insert-img
sas文本挖掘案例(如何使用SAS计算WordMover的距离)
文章图片
表-2 SAS / OR的流量数据
need-to-insert-img
sas文本挖掘案例(如何使用SAS计算WordMover的距离)
文章图片
图-2运输问题流程图
如何用SAS计算Word Mover的距离
【sas文本挖掘案例(如何使用SAS计算WordMover的距离)】本文从Word嵌入到文档距离,通过删除WMD的第二个约束来减少计算,提出了一个名为放松的Word Mover距离(RWMD)的新度量。由于我们需要读取文字嵌入数据,因此我将向您展示如何使用SAS Viya计算两个文档的RWMD。

    推荐阅读