繁体   English   中英

如何将单词组成一个类别。 (NLP)

[英]How to make words into a category. (NLP)

I love to eat chicken.
Today I went running, swimming and played basketball.

我的目标是通过分析这两句话来回归食物体育 你怎么能这样做?

我熟悉NLP和Wordnet。 但是,还有更高级/实用/现代技术吗?

是否有任何可以自动将单词分类为“ 级别 ”的内容?

更重要的是,这个过程的技术术语是什么?

这个问题很难在程序上解决,但最近在该领域取得了很大进展。

大多数自然语言处理都以语法开头(可能是也可能不是上下文。)它是一组构造规则,说明更一般的事物是如何由更具体的事物制成的。

示例上下文无关语法:

Sentence ::= NounPhrase VerbPhrase
NounPhrase ::= ["The"] [Adjective] Noun
Adjective ::= "big" | "small" | "red" | "green"
Noun ::= "cat" | "man" | "house"
VerbPhrase ::= "fell over"

这显然过于简单,但是制定完整语法以定义所有英语的任务是巨大的,并且大多数真实系统仅定义适用于问题域的一些子集。

一旦定义了语法(或者使用只有Google等人知道的复杂算法学习),就会根据语法解析一个称为“范例”的字符串。 用词性标记每个单词。 一个非常复杂的语法不仅会包含你在学校学到的词性,还会包括诸如“网站”,“老人的名字”和“成分”等类别。

这些类别可以由人类费力地构建到语法中,或者使用诸如类比建模或支持向量机之类的东西来推断。 在每一个中,诸如“鸡”,“足球”,“烧烤”和“板球”之类的东西将被定义为非常高维空间中的点,以及数百万个其他点,然后聚类算法将定义组基于这些点相对于彼此的位置。 然后可能会尝试从示例文本中推断出组的名称。

链接文本此Google搜索列出了NLP中使用的几种技术,您可以从中学到很多东西。

编辑只是解决这个问题,人们可能会抓取网页上的“ _ is a _ ”形式的句子来建立项目类别关系的数据库。 然后解析上面的字符串,并查找数据库中已知项的单词

谷歌集合做了其中一些,有一些讨论提到了超集。 但是,我还没有真正看到任何技术细节,只是想法和讨论。

也许这至少可以帮助你的研究......

你问的问题是一个称为主题文本分类的整个研究领域。 Fabrizio Sebastiani在ACM计算调查中对技术进行了很好的概述,即“自动文本分类中的机器学习”。 最简单的技术之一(虽然不一定是最佳表现)是在每个类别中有大量(数百)个句子的例子,然后在那些样本句子上训练朴素贝叶斯分类器。 NLTK在模块nltk.classify.naivebayes包含朴素贝叶斯分类器。

您可以查看FBK的人员查看WordNet Domains资源。 它是WordNet的扩展,旨在用于文本分类和词义消歧。 它允许不同程度的粒度。

http://wndomains.fbk.eu/

将其应用于您的任务的一种可能方法可能是从您的句子中获取NP块,获取他们的头部词并从中获取WordNet域中的类别。

Tenqyu使用Python和机器学习解决了它。

  1. 有一个文本数据集
  2. 应用Tf-idf矢量化。 文档中出现的术语的权重仅仅是成比例的
    到术语频率。 (Luhn Assumption 1957)一个术语的特殊性可以量化为它发生的文档数量的反函数。
  3. 矢量空间模型
  4. 多项式原生贝叶斯分类

更详细的流程如下: https//hackernoon.com/how-to-better-classify-coachella-with-machine-learning-part-1-dc84c53d1a9c

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM