美文网首页大数据 爬虫Python AI Sql玩转大数据大数据部落
sas文本挖掘案例:如何使用SAS计算WordMover的距离

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

作者: 拓端tecdat | 来源:发表于2020-04-10 19:25 被阅读0次

    原文链接:http://tecdat.cn/?p=6181

    Word Mover的距离(WMD)是用于衡量两个文档之间差异的距离度量,它在文本分析中的应用是由华盛顿大学的一个研究小组在2015年引入的。

    Word Mover距离的定义

    WMD是两个文档之间的距离,作为将所有单词从一个文档移动到另一个文档所需的最小(加权)累积成本。通过解决以下线性程序问题来计算距离。

    need-to-insert-img

    T ij表示文档d中的单词i在文档d'中移动到单词j的多少;

    C(1; j)的表示从文件d中的单词我到文件d '中的单词J‘行进’的费用; 这里的成本是word2vec嵌入空间中的两个词'欧几里德距离;

    如果字我出现Ç我在文档d次,我们记

    need-to-insert-img

    WMD是地球移动器距离度量(EMD)的一个特例,这是一个众所周知的运输问题。

    如何用SAS计算地球移动的距离?

    SAS / OR是解决运输问题的工具。图1显示了一个带有四个节点和节点之间距离的传输示例,我从这个Earth Mover的距离文档中复制了这些节点。目标是找出从{x1 ,x2}到{y1,y2}的最小流量。现在让我们看看如何使用SAS / OR解决这个运输问题。

    节点的权重和节点之间的距离如下。

    need-to-insert-img

    图-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

    表-1 EMD用SAS / OR计算

    我用SAS / OR表2得到的流量数据显示如下,与上述地球移动器距离文档中公布的图表相同。

    need-to-insert-img

    表-2 SAS / OR的流量数据

    need-to-insert-img

    图-2运输问题流程图

    如何用SAS计算Word Mover的距离

    本文从Word嵌入到文档距离,通过删除WMD的第二个约束来减少计算,提出了一个名为放松的Word Mover距离(RWMD)的新度量。由于我们需要读取文字嵌入数据,因此我将向您展示如何使用SAS Viya计算两个文档的RWMD。

    相关文章

      网友评论

        本文标题:sas文本挖掘案例:如何使用SAS计算WordMover的距离

        本文链接:https://www.haomeiwen.com/subject/ivedmhtx.html