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

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

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/503310.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

java八股 mysql优化

数据库篇-01-MySQL篇-课程介绍_哔哩哔哩_bilibili 1.定位慢查询 2.分析优化慢查询 3.索引概念及结构 3.1 红黑树&#xff08;一种自平衡的二叉排序树&#xff09; 节点可以自动平衡保证log2 n的查找复杂度. 但因为是二叉树&#xff0c;数据多了层数还会多。 所以找一个多叉树 3…

Java开发中快速提升编码能力的方法有哪些?

Java是一种可以撰写跨平台应用软件的面向对象的程序设计语言。Java 技术具有卓越的通用性、高效性、平台移植性和安全性&#xff0c;广泛应用于PC、数据中心、游戏控制台、科学超级计算机、移动电话和互联网&#xff0c;同时拥有全球最大的开发者专业社群。 Java是一种简单的&…

php数组o m n mn,O(m + n)和O(mn)之间的区别?

小编典典我对发现直觉的建议是思想实验&#xff0c;如下所示&#xff1a;首先&#xff0c;认识到m和n是 输入的 两个 不同度量。它们可能是两个输入流的长度&#xff0c;矩阵边的长度&#xff0c;或同一数据结构的两个不同属性的计数&#xff0c;例如同一图形的边和节点计数&am…

Java虚拟机知识汇总,有这些还怕面试被问到?

首先我们来看一下Java运行时的数据区域&#xff0c;Java虚拟机在执行Java程序的过程中&#xff0c;会把它所管理的内存&#xff0c;划分成若干个不同的数据区域&#xff0c;这些区域都有各自的用途&#xff0c;各自的创建和销毁的时间。 有的区域&#xff0c;随着虚拟机进程的…

Java的多线程以及内存模型的知识点梳理,有想到过这些吗?

JMM大致描述&#xff1a; JMM描述了线程如何与内存进行交互。Java虚拟机规范视图定义一种Java内存模型&#xff0c;来屏蔽掉各种操作系统内存访问的差异&#xff0c;以实现Java程序在各种平台下都能达到一致的访问效果。 JMM描述了JVM如何与计算机的内存进行交互 JMM都是围绕…

Java性能优化方面的程序优化知识点归纳,希望对你有所帮助

常用的程序设计优化技巧&#xff1a; 1、字符串优化处理 &#xff08;1&#xff09;String 类的特点&#xff1a;不变性、针对常量池的优化&#xff08; String.intern() 方法的意义&#xff09; &#xff08;2&#xff09;subString 方法的内存泄漏 : &#xff08;3&#…

java工具栏的工具提示,动态菜单项、状态条提示、工具条提示问题

问题的提出&#xff1a;一个应用程序想要动态改变菜单项。使用CCmdUI::SetText("Menu Text")可以改变菜单文本&#xff0c;但是如何动态改变工具条和状态条的文本呢&#xff1f;有几种策略&#xff0c;避免&#xff0c;欺骗&#xff0c;面对......首先&#xff0c;避…

python excel操作库,可能是全网最完整的 Python 操作 Excel库总结!

openpyxlxlrd/xlwtxlwingsxlsxwriter了解各个库的异同&#xff0c;从而在不同场景下可以灵活使用首先让我们来整体把握下不同库的特点“xlrdxlwtxlutils.xlsxlwt.xlsxlrd.xlsxlutilsxlrdxlwt.xlsxlrdxlwtxlutilsxlwingsXlsxWriter.xlsxopenpyxl.xlsxpandas”如果你懒得看详细的…

Java编程中程序员会遇到的一些感性烦恼,你有遇到吗?

如果作为兴趣来学编程&#xff0c;什么人都适合。毕竟&#xff0c;现在小学生都开始学习编程了。如果要作为职业来说&#xff0c;你到底适合不适合确实是个问题。我教过的学员里面从初中生到博士生、甚至50多岁的企业高管都有&#xff0c;怀着不同的目的来学习JAVA。 我记得教过…

php入门和常用类的使用,php入门教程之常用数据类型和基本语法

php中数据类型有整型、小数型(浮动数)、布尔类型、字符及数组&#xff0c;变量&#xff0c;常量等下面我们一起来看看吧。一 PHP常用数据类型1.基本数据类型1.1整型1.2小数型(浮动数) 包含单精度和双精度1.3布尔类型 (表示真&#xff0c;和 假)1.4字符串2.复合数据类型2.1数组(…

java开发中spring常用的工具类

内置的resouce类型 UrlResourceClassPathResourceFileSystemResourceServletContextResourceInputStreamResourceByteArrayResourceEncodedResource 也就是Resource加上encoding, 可以认为是有编码的资源VfsResource(在jboss里经常用到, 相应还有 工具类 VfsUtils)org.springf…

python波士顿房价是什么数据,Python数据分析 | 波士顿房价回归分析

分析目标&#xff1a;将波士顿房价的数据集进行描述性数据分析、预测性数据分析(主要用了回归分析)&#xff0c;可用于预测房价。数据集介绍&#xff1a;卡内基梅隆大学收集&#xff0c;StatLib库&#xff0c;1978年&#xff0c;涵盖了麻省波士顿的506个不同郊区的房屋数据。一…

Java开发的Spring Boot的核心模块

Spring Boot 的核心模块 下面我们大概来了解一下 Spring Boot 的核心模块。 1、spring-boot 这是 Spring Boot 的主模块&#xff0c;也是支持其他模块的核心模块&#xff0c;主要包含以下几点&#xff1a; 提供了一个启动 Spring 应用的主类&#xff0c;并提供了一个相当方便…

python的open函数百度百科,open函数

open函数可以打开一个文件。超级简单吧&#xff1f;大多数时候&#xff0c;我们看到它这样被使用&#xff1a;f open(photo.jpg, r)jpgdata f.read()f.close()我现在写这篇文章的原因&#xff0c;是大部分时间我看到open被这样使用。有三个错误存在于上面的代码中。你能把它们…

java开发中对于程序员的几点建议,你们有想到吗?

建议一&#xff1a;只有真正喜欢才能写好程序 喜欢写程序&#xff0c;做程序员就是上天堂&#xff1b; 不喜欢写程序&#xff0c;做程序员就是下地狱&#xff1b; 程序员需要整天趴在电脑前&#xff0c;经常没日没夜的&#xff0c;非常辛苦&#xff0c;而且工作来不得半点虚…

物化视图mysql,ClickHouse的物化视图及MySQL表引擎

-- . 在MySQL中创建表定义和加入数据&#xff1a;mysql> selectversion();-----------| version() |-----------| 8.0. |-----------row in set (0.01sec)mysql>show create table t_org\G*************************** . row ***************************Table: t_orgCre…

Java面向对象和面向过程有什么区别?网友:傻傻分不清楚……

面向对象&#xff0c;Obeject Oriented&#xff0c;是一种编程术语。面向对象是当今软件开发方法的主流方法之一&#xff0c;他是把数据以及对数据的操作放在一起&#xff0c;作为一个相互依存的整体&#xff0c;就是我们所说的对象。对同类对象抽象出其共性&#xff0c;就是类…

oracle oic配置,Oracle数据库 client配置

以下是11g client配置1. 从OTN下载几个压缩包下载地址为&#xff1a; http://www.oracle.com/technology/software/tech/oci/instantclient/index.html然后根据你的平台&#xff0c;选择不同的下载&#xff0c;我是安装在rhel5下&#xff0c;所以选择了linux x86 并下载了下面2…

Java 反射机制和动态代理是基于什么原理,了解过吗?

工作多年以及在面试中&#xff0c;我经常能体会到&#xff0c;有些面试者确实是认真努力工作&#xff0c;但坦白说表现出的能力水平却不足以通过面试&#xff0c;通常是两方面原因&#xff1a; 1、“知其然不知其所以然”。 做了多年技术&#xff0c;开发了很多业务应用&#x…

oracle执行sql痕迹,Oracle 查询刚执行的SQL

Oracle 查询刚刚执行的SQLselect "SQL_TEXT","SQL_FULLTEXT","SQL_ID","SHARABLE_MEM","PERSISTENT_MEM","RUNTIME_MEM","SORTS","LOADED_VERSIONS","OPEN_VERSIONS","USERS_…