标签: semantics

测量两个短语之间的语义相似性

我想测量两个短语/句子之间的语义相似性.有没有我可以直接可靠使用的框架?

我已经检查了这个问题,但它已经很老了,我找不到真正有用的答案.有一个链接,但我发现这不可靠.

例如:
我有一个短语:感到压抑
我有几个选择:强制内向,粉碎,情感破坏,重塑等等.
我想找到与第一个最相似的术语/短语.
这里的答案是:在情感上被摧毁.

更大的图景是:我想根据句子中的用法来识别来自FrameNet的哪个帧与给定动词匹配.

更新:我发现这个库对于测量两个单词之间的相似性非常有用.此外,ConceptNet相似性机制非常好.

这个库衡量句子之间的语义相似

如果有人有任何见解请分享.

algorithm nlp wordnet semantics

20
推荐指数
1
解决办法
2万
查看次数

OO设计在语义或封装方面的优势是什么?

面向对象设计(OOD)结合了数据及其方法.据我所知,这实现了两件好事:它提供了封装(所以我不关心那里有什么数据,只关心我如何得到我想要的值)和语义(它将数据与名称联系起来,以及它方法始终如一地使用数据.

那么OOD的优势在哪里呢?相反,函数式编程将丰富性归因于动词而不是名词,因此封装和语义都是由方法而不是数据结构提供的.

我使用的是一个处于功能末端的系统,并且不断地用于OO的语义和封装.但我可以看到OO的封装可能成为对象灵活扩展的障碍.所以目前,我可以看到语义更强大.

或封装是所有有价值代码的关键?

编辑:我的意思是OO提供的封装类型.changeColor(door,blue)成为door.changeColor(blue).

language-agnostic oop encapsulation functional-programming semantics

19
推荐指数
3
解决办法
2049
查看次数

动态数据模型

我有一个项目,在运行时需要特定对象的用户定义属性(让我们说这个例子中的人物对象).该项目将有许多不同的用户(1000 +),每个用户为他们自己的'Person'对象集定义他们自己的唯一属性.

(例如 - 用户#1将具有一组已定义的属性,这些属性将应用于此用户拥有的所有人对象.多达1000个用户,这是应用程序将使用的最低用户数.)这些属性将用于查询people对象并返回结果.

我认为这些是我可以使用的可行方法.我将使用C#(以及任何版本的.NET 3.5或4),并且有一个免费的统治:用于数据存储的内容.(我有mysql和mssql可用,虽然可以自由使用任何软件,只要它符合要求)

我的评估中是否遗漏了任何错误或做出了错误的假设?

在这些选择中 - 你会选择什么样的解决方案?

  1. 混合EAV对象模型.(使用常规关系模型定义数据库,并为Person表创建一个'property bag'表).

    缺点:每个/查询有很多连接.表现不佳.可以达到查询中使用的联接/表数量的限制.

    我已经敲了一个快速的样本,它有一个Subsonic 2.x'esqe接口:

    Select().From().Where  ... etc
    
    Run Code Online (Sandbox Code Playgroud)

    这会生成正确的连接,然后过滤+转动c#中返回的数据,以返回使用正确类型的数据集配置的数据表.

    我还没有加载测试这个解决方案.它基于Microsoft白皮书中的EA建议: SQL Server 2008 RTM文档用于性能和可伸缩性的语义数据建模的最佳实践

  2. 允许用户在运行时动态创建/更改对象的表.这个解决方案就是我认为NHibernate在使用动态属性时在后台做的事情,如下所述

    http://bartreyserhove.blogspot.com/2008/02/dynamic-domain-mode-using-nhibernate.html

    缺点:

    随着系统的增长,定义的列数将变得非常大,并且可能会达到最大列数.如果有1000个用户,每个用户的"人"对象有10个不同的属性,那么我们需要一个包含10k列的表.在这种情况下不可扩展.

    我想我可以允许每个用户使用一个人属性表,但是如果有1000个用户可以启动,那么应用程序中有1000个表加上另外10个用户.

    我不确定这是否可扩展 - 但似乎并非如此.如果我不对,请有人纠正我!

  3. 使用NoSQL数据存储区,例如CouchDb/MongoDb

    根据我的阅读,这些尚未在基于字符串的大型应用程序中得到证实,并且处于开发阶段的早期阶段.如果我在这次评估中不正确,有人可以告诉我吗?

    http://www.eflorenzano.com/blog/post/why-couchdb-sucks/

  4. 使用people表中的XML列来存储属性

    缺点 - 没有查询索引,因此需要检索和查询每一列以返回结果集,从而导致查询性能较差.

  5. 将对象图序列化到数据库.

    缺点 - 没有查询索引,因此需要检索和查询每一列以返回结果集,从而导致查询性能较差.

  6. berkelyDB的C#绑定

    从我在这里读到:http://www.dinosaurtech.com/2009/berkeley-db-c-bindings/

    Berkeley Db肯定证明是有用的,但正如Robert指出的那样 - 没有简单的界面.您的整个wOO包装器必须手动编码,并且所有索引都是手工维护的.它比SQL/linq-to-sql困难得多,但这是你为荒谬的速度付出的代价.

    似乎有很大的开销 - 但是如果有人能够提供关于如何在C#中维护索引的教程的链接 - 它可能是一个观众.

  7. SQL/RDF混合.奇怪我以前没想过这个.与选项1类似,但不是"属性包"表,只是XREF到RDF商店?查询将涉及两个步骤 - 查询RDF存储以查找正确属性的人员,返回人员对象,并在SQL查询中使用这些人员对象的ID来返回关系数据.额外的开销,但可能是一个观众.

c# database asp.net modeling semantics

19
推荐指数
1
解决办法
3775
查看次数

HTML5 - 正确使用<article>标签

阅读文章<article>HTML5的标签,我真的觉得我最大的困惑是在本节的第一个问题:

使用<article>为内容提供了更多的语义含义.相比之下<section>,只是一个相关内容块,并且<div>只是一个内容块...要确定这三个元素中的哪一个是合适的,请选择第一个合适的选项:

  1. 内容在Feed阅读器中是否有意义?如果是这样,请使用<article>.
  2. 内容是否相关?如果是这样,请使用<section>.
  3. 最后,如果没有语义关系,请使用<div>.

所以我想我的问题是:饲料阅读器中有哪些类型的内容?

html rss html5 semantics

19
推荐指数
3
解决办法
1793
查看次数

查找特定单词的相关单词(特别是物理对象)

我试图找到与单个单词相关的单词(特别是物理对象).例如:

网球:网球拍,网球,网球鞋

斯诺克:斯诺克球杆,斯诺克球,粉笔

国际象棋:棋盘,棋子

书柜:书

我曾尝试使用WordNet,特别是meronym语义关系; 但是,这种方法并不一致,如下面的结果所示:

网球:发球,凌空,脚故障,定位,回归,优势

斯诺克:什么都没有

国际象棋:象棋移动,棋盘(其自己的缩写关系显示'方形'和'对角线')

书柜:搁置

最终将需要对术语进行加权,但现在这并不是真正的问题.

有人对如何做到这一点有任何建议吗?


只是一个更新:使用Jeff和StompChicken的答案结合起来.

从维基百科中检索到的信息质量非常好,特别是(不出所料)有如此多的相关信息(与某些语料库相比,如"博客"和"ipod"这样的术语不存在).

维基百科的结果范围是最好的部分.该软件能够匹配诸如(为简洁起见而切割的列表)等术语:

  • 高尔夫球:[球,铁,球座,球袋,球杆]
  • 摄影:[相机,电影,照片,艺术,图像]
  • 钓鱼:[鱼,网,钩,陷阱,诱饵,诱饵,杆]

最大的问题是将某些词分类为物质文物; 默认WordNet不是一个可靠的资源,因为它中不存在许多术语(例如'ipod',甚至'trampolining').

nlp wordnet semantics

18
推荐指数
2
解决办法
5128
查看次数

什么应该首先在HTML,锚或标题?

我想知道以下哪两个命令在语义上是正确的HTML:

1. <h1><a>Header</a></h1>
2. <a><h1>Header</h1></a>
Run Code Online (Sandbox Code Playgroud)

html semantics

18
推荐指数
2
解决办法
7966
查看次数

为什么Django使用元组设置而不是列表?

引用这个答案:

除了元组是不可变的之外,还有一个语义上的区别应该指导它们的使用.元组是异构数据结构(即,它们的条目具有不同的含义),而列表是同构序列.元组有结构,列表有顺序.

这对我来说很有意义.但是为什么Django使用元组而不是列表进行设置?例:

INSTALLED_APPS = (
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.sites',
    'django.contrib.messages',
    'django.contrib.staticfiles',
)
Run Code Online (Sandbox Code Playgroud)

这个(以及所有其他设置)在语义上是不是一个完美的案例列表?

python django tuples list semantics

18
推荐指数
2
解决办法
1611
查看次数

new []和new string []有什么区别?

可能重复:
这个新的[]是什么简写?

两者之间有什么区别吗?

var strings = new string[] { "hello", "world" };
Run Code Online (Sandbox Code Playgroud)

var strings2 = new[] { "hello", "world" };
Run Code Online (Sandbox Code Playgroud)

c# arrays semantics

18
推荐指数
3
解决办法
1800
查看次数

p与ol或ul形式造型

通常我使用无序列表标签来设置表单,例如

<fieldset>
    <ul>
        <li>
            <label for="txtName">Name</label>
            <input type="text" id="txtName" />
        </li>
    </ul>
</fieldset>
Run Code Online (Sandbox Code Playgroud)

但是,我经常会看到使用标记的<p>标记,如下所示:

<fieldset>
    <p>
        <label for="txtName">Name</label>
        <input type="text" id="txtName" />
    </p>
</fieldset>
Run Code Online (Sandbox Code Playgroud)

哪个在语义上更正确?除了<p>风格更简洁之外,不同的方法是否有任何利弊?

编辑:在这里清楚地打开一罐蠕虫 - 更多选择,哇!:) W3C在这里有推荐吗?

有趣的W3C建议似乎是最不优雅的解决方案:

<p>
  <input type="radio" name="flavor" id="choc" value="chocolate" />
    <label for="choc">Chocolate</label><br/>
  <input type="radio" name="flavor" id="cream" value="cream"/>
    <label for="cream">Cream Filled</label><br/>
  <input type="radio" name="flavor" id="honey" value="honey"/>
    <label for="honey">Honey Glazed</label><br/>
  <input type="submit" value="Purchase Donuts"/>
</p>
Run Code Online (Sandbox Code Playgroud)

遗憾的是,关于标记表单元素的最佳约定没有更强的指导.

html css forms semantics

17
推荐指数
4
解决办法
5598
查看次数

为什么类的实例可以访问其自己类型的另一个实例的私有字段?

Java中的类实例可以访问其自己类型的不同实例的私有字段,例如在以下列表中:

public class Foo {
  private int secret;
  public void bar(final Foo foo) {
    foo.secret = 100;
  }
}
Run Code Online (Sandbox Code Playgroud)

这种语义(设计语言时)的论据是什么?

java dsl semantics

17
推荐指数
2
解决办法
2229
查看次数