[英]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的扩展,旨在用于文本分类和词义消歧。 它允许不同程度的粒度。
将其应用于您的任务的一种可能方法可能是从您的句子中获取NP块,获取他们的头部词并从中获取WordNet域中的类别。
Tenqyu使用Python和机器学习解决了它。
更详细的流程如下: https : //hackernoon.com/how-to-better-classify-coachella-with-machine-learning-part-1-dc84c53d1a9c
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.