我应该每次取两个句子并计算它们是否相似。我的意思是,在语法和语义上都是这样。如何计算两个句子之间的相似度(句法和语义)

INPUT1:奥巴马签署法律。奥巴马签署了一项新法律。

INPUT2: 总线停在这里。 车辆停在这里。

INPUT3:纽约的火灾。 纽约被烧毁。

INPUT4:在纽约的火灾。在纽约大火中死亡50人。

我不想用本体树作为灵魂。我写了一个代码来计算句子之间Levenshtein distance(LD),然后决定是否第二个句子:

可以忽略不计(INPUT1和2),

应更换的第一句话(INPUT 3),或

与第一句(INPUT4)一起存储。

我对代码不满意,因为LD只计算语法级别(还有其他什么方法?)。语义如何融入(比如公交车就像是一辆车?)。

的代码放在这里:

%# As the difference is computed, a decision is made on the new event

%# (string 2) to be ignored, to replace existing event (string 1) or to be

%# stored separately. The higher the LD metric, the higher the difference

%# between two strings. Of course, lower difference indices either identical

%# or similar events. However, the higher difference indicates the new event

%# as a fresh event.

%#.........................................................................

%# Calculating the LD between two strings of events.

%#.........................................................................

L1=length(str1)+1;

L2=length(str2)+1;

L=zeros(L1,L2); %# Initializing the new length.

g=+1; %# just constant

m=+0; %# match is cheaper, we seek to minimize

d=+1; %# not-a-match is more costly.

% do BC's

L(:,1)=([0:L1-1]*g)';

L(1,:)=[0:L2-1]*g;

m4=0; %# loop invariant

%# Calculating required edits.

for idx=2:L1;

for idy=2:L2

if(str1(idx-1)==str2(idy-1))

score=m;

else

score=d;

end

m1=L(idx-1,idy-1) + score;

m2=L(idx-1,idy) + g;

m3=L(idx,idy-1) + g;

L(idx,idy)=min(m1,min(m2,m3)); % only minimum edits allowed.

end

end

%# The LD between two strings.

D=L(L1,L2);

%#....................................................................

%# Making decision on what to do with the new event (string 2).

%#...................................................................

if (D<=4) %# Distance is so less that string 2 seems identical to string 1.

store=str1; %# Hence string 2 is ignored. String 1 remains stored.

elseif (D>=5 && D<=15) %# Distance is larger to be identical but not enough to

%# make string 2 an individual event.

store= str2; %# String 2 is somewhat similar to string 1.

%# So, string 1 is replaced with string 2 and stored.

else

%# For all other distances, string 2 is stored along with string 1.

store={str1; str2};

end

任何帮助表示赞赏。

2010-09-07

Tinglin

+0

“语义上”。没有简单的文本书算法。自然语言(特别是英语)是一个非常复杂而反复无常的野兽。 –

2010-09-07 22:16:49

+0

@Amro:“'#'”使它们变灰,因为这里的注释是SO? –

2010-09-14 08:41:33

+0

@Lazer:是的,它的眼睛更容易..我希望StackOverflow引入了包含代码块的功能,如:'...',以便为该特定语言正确突出显示 –

2010-09-14 15:54:46

matlab源代码 语义相似度计算,如何计算两个句子之间的相似度(句法和语义)...相关推荐

  1. python 句子相似度 库_利用python语句的word2vec查找两个句子之间的相似度

    我想用word2vectors计算两个句子之间的相似度,我试图得到一个句子向量的向量,这样我就可以计算出一个句子向量的平均值来找到余弦相似度.我试过这个代码,但它不起作用.它给出的输出是带有一的句子向 ...

  2. python 两个word文档之间的相似度_如何用 word2vec 计算两个句子之间的相似度?

    现在是2018年7月,在这里总结这个问题下已有的答案,并补充一些2017年以来这方面研究的新进展. 从大类上分,计算句子相似度的方法可以分为两类: 1)无监督的方法,即不使用额外的标注数据,常用的方法 ...

  3. jaccard相似度_如何计算两个字符串之间的文本相似度?

    推荐阅读: 面试BAT 却被小小字符串秒杀?这13道题帮你一举击败字符串算法题 字节跳动秋招面经:后端开发工程师,已拿意向书 前言 平时的编码中,我们经常需要判断两个文本的相似性,不管是用来做文本纠错 ...

  4. 如何计算两个文档的相似度(一)

    下面的内容转自我爱自然语言处理博客,感谢博主,学到很多东西. 原文链接:http://www.52nlp.cn/%E5%A6%82%E4%BD%95%E8%AE%A1%E7%AE%97%E4%B8%A ...

  5. 如何计算两个字符串之间的文本相似度?

    如何计算两个字符串之间的文本相似度? 前言 平时的编码中,我们经常需要判断两个文本的相似性,不管是用来做文本纠错或者去重等等,那么我们应该以什么维度来判断相似性呢?这些算法又怎么实现呢?这篇文章对常见 ...

  6. 如何利用计算机计算天数,计算机如何计算两个日期之间的天数

    计算机是如何计算两个日期之间的天数的,这个问题看起来好像很简单,但是仔细一想,好像还没那么简单,月与月之间天数不一样,平年和闰年也会影响天数. 举个例子: 2017年2月1日-2017年6月1日中间有 ...

  7. ITK:计算两个图像之间的均方度量值

    ITK:计算两个图像之间的均方度量值 内容提要 输出结果 C++实现代码 内容提要 计算两个图像之间的均方根度量. 输出结果 来自2张图像的数据通过输出传递: [-10, -10]: 23101.7 ...

  8. 计算时间差 html,javascript如何计算两个日期之间的天数差?

    javascript如何计算两个日期之间的天数差?下面本篇文章就来给大家介绍一下使用javascript计算两个日期之间的天数差,希望对大家有所帮助. 在javascript中计算两个日期之间的天数差 ...

  9. Python 求解向量夹角:如何计算两个向量之间的夹角?

    Python 求解向量夹角:如何计算两个向量之间的夹角? 向量夹角是计算机视觉和人工智能等多个领域中常用的数学概念,它可以用于判断两个向量之间的相似度和相关性.在 Python 程序中,我们可以使用 ...

最新文章

  1. 人工智能在未来将要经历的七个阶段
  2. MathType公式行距设置的方法
  3. 开发日记-20190703 关键词 读书笔记《Linux 系统管理技术手册(第二版)》DAY 9
  4. Codeforces Round #337 (Div. 2) C. Harmony Analysis
  5. CodeLite+TDM-GCC调试C++程序,断点无效问题
  6. 【HTML5CSS3进阶学习01】气泡组件的实现
  7. 每天一个Linux命令(3):ls命令
  8. 【数据治理】数据治理工具-元数据管理
  9. 红帽linux免费下载链接,redhat linux 下载大全 完全整理
  10. 设置nextcloud上传文件的大小
  11. 华为HG8240F光猫破解
  12. TCP/IP协议卷学习---基础部分(十六 BOOTP)
  13. 微电影|小白创作微电影的辛酸
  14. VS Code 呈现缩进参考线以及语法高亮改变
  15. WordPress采集插件:QQWorld收藏家豪华版
  16. SQL如何删除所有字段都相同的重复数据?
  17. 汽车软件测试的挑战-2022
  18. Docker常用的命令记录
  19. Python极简讲义——一本书入门数据分析与机器学习(序言)
  20. CTF pwn/re手在学习过程中的零碎操作积累

热门文章

  1. 牛客16589 机器翻译
  2. 【剑指offer】面试题52:两个链表的第一个公共节点(java)
  3. Leetcode--188. 买卖股票的最佳时机Ⅳ
  4. 央视曝光紫砂锅名单_大家看今天中午《每周质量报告》没,美的牌 紫砂锅含有剧毒。家里有这牌子...
  5. python代数式的表达方式_关于python字典类型最疯狂的表达方式
  6. python google drive api_使用google-drive-api python获取文件的链接
  7. 一篇文章搞懂数据仓库:常用ETL工具、方法
  8. wireshark、tcpdump、dsniff、Ettercap、NetStumbler、netsniff-ng
  9. Replace Type Code with Class(以类取代类型码)
  10. android 文本倒影,android案例---图片处理倒影效果