2013-02-11 172 views
3

一般人想用的话做法袋获得从文本功能,计数的单词,并计算不同的措施,例如TF-IDF值,如:How to include words as numerical feature in classification特征提取

但是我的问题是不同的,我想从一个单词中提取一个特征向量。例如我想知道土豆和薯条在矢量空间中彼此接近,因为它们都是由土豆制成的。我想知道,牛奶和奶油也是密切,热和温暖,石头和坚硬等。

这个问题叫什么?我可以通过查看大量文档来了解单词的相似性和特征吗?

我不会用英文进行实施,所以我不能使用数据库。

+1

您的标题有误导性。你想从大语料库中提取单词之间的_relations_(或者说,_concepts_),而不是单个单词中的特征。关于这个问题的名称,我称之为_自动创建一个来自非结构化文本的本体。 – jogojapan 2013-02-13 01:15:24

+0

矢量嵌入单词如word2vec,glove或fastText? – user 2016-08-28 13:31:23

回答

3

对文本数据的特征提取(例如tf-idf)基于统计。另一方面,你正在寻找意义(语义)。因此,像tf-idef这样的方法不适合你。

在NLP存在3个基本水平:

  1. 形态学分析
  2. 句法分析
  3. 语义分析

(较大的数字表示更大的问题:))。形态学以多数语言而闻名。句法分析是一个更大的问题(它处理诸如什么是动词,某个句子中的名词等......)。语义分析面临的挑战最多,因为它涉及在机器中很难表示的含义,有许多例外情况并且是特定于语言的。

据我了解你想知道的话之间的一些关系,这可以通过所谓的依赖关系树银行做,(或只是树库):http://en.wikipedia.org/wiki/Treebank。它是一个句子的数据库/图表,一个词可以被看作是一个节点,并且关系可以看作是弧。有很好的树库为捷克语和英语会有也有一些,但对于许多“覆盖少,”语言就可以找到一个问题...

+0

感谢您的信息! – user1506145 2013-02-11 11:58:57

+0

首先您解释语法和语义之间的区别,然后您建议使用树形库(基本上是关于语法)来提取语义关系? – jogojapan 2013-02-13 01:18:45

+0

@jogojapan我其实并不真正想要user1506145。它看起来像是之间的一些东西,所以我给了他一些关于它的内容,现在他应该很容易找到合适的文献,并找出他是否适合树库,或者他需要更多的东西....你看到一些不一致? – xhudik 2013-02-13 08:05:54

1

user1506145,

下面是一个简单的我过去曾经使用过的想法。收集大量的维基百科文章等短文档。在每个文档上做一个字数。第i个文件和第j个字让

I =文件数量,

J =单词的数量,

x_ij =第j个字出现在第i个文档中的次数,和

y_ij = ln(1 + x_ij)。 Y = U * D *转置(V)),U是IxI,D是对角线IxJ,并且V是JXJ。

可以使用(V_1j,V_2j,V_3j,V_4j)作为R^4中第j个单词的特征向量。

+0

这告诉你,牛奶和奶油有关系吗? – jogojapan 2013-02-13 01:20:52

0

我很惊讶以前的答案没有提到单词嵌入。字嵌入算法可以为给定数据集的每个单词生成单词向量。这些算法可以从上下文中提取单词向量。例如,通过查看以下句子的语境,我们可以说“聪明”和“聪明”有某种关系。因为上下文几乎是一样的。

He is a clever guy He is a smart guy

甲共生矩阵可被构建为做到这一点。但是,这太低效了。为此目的而设计的着名技术称为Word2Vec。可以从以下论文中学习。
https://arxiv.org/pdf/1411.2738.pdf
https://arxiv.org/pdf/1402.3722.pdf

我一直在使用它为瑞典。它在检测类似词语和完全无监督方面非常有效。

一个包可以在gensim和tensorflow中找到。