我想写一些东西,用一个句子,识别其中包含的每个单词,并定义每个单词的词性。
例如
世界您好,我是一个句子
会返回这个
verb noun, pronoun verb adjective noun
理想情况下,我希望最终将其进一步发展并采用一个句子,并以编程方式让它理解它试图解释的内容并可能对此进行处理。
所以我的问题是,有人听说过这样的事情吗?
我想写一些东西,用一个句子,识别其中包含的每个单词,并定义每个单词的词性。
例如
世界您好,我是一个句子
会返回这个
verb noun, pronoun verb adjective noun
理想情况下,我希望最终将其进一步发展并采用一个句子,并以编程方式让它理解它试图解释的内容并可能对此进行处理。
所以我的问题是,有人听说过这样的事情吗?
Answers:
这称为自然语言处理,这是一个巨大而复杂的领域。您所描述的东西是巨大的成就,甚至像Watson这样的最佳解决方案也远非完美。
像这样的事情使它具有挑战性:“水牛城水牛城水牛城水牛城水牛城水牛城”
美国英语中语法正确的句子,用作如何使用同音异义词和同音异义词创建复杂的语言结构的示例。自1972年以来,它就一直在文学中得到讨论。...在史蒂文·平克(Steven Pinker)1994年的著作《语言的本能》中也有提及,它作为一个句子的一个例子,该句子“看似荒谬”,但在语法上...
当理解到它使用纽约州布法罗市和不太常见的动词“ to buffalo”(意思是“ to bully or intimidate”)以及标点符号和语法扩展到该句子时,该句子的含义就变得更加清楚。内容如下:“布法罗水牛,布法罗水牛,布法罗水牛。” 当使用同义词时,含义变得更加清楚:“野牛野牛是其他野牛野牛的欺负者,他们本身就是野牛野牛的欺负者。”
尽管拆分句子并确定语法正确性以及解决第一个问题比第二个问题要容易,但许多复杂性(例如动词或动名词)(如游泳,编程等)也很复杂,但这仍然是一个挑战-参见Morons'回答。
但是您的第二个问题-人们已经付出了巨大的努力来寻找完美的解决方案,但是对于像英语这样的任何自然语言,实际上都无法实现真正完美的“解释”算法-有多种变体会弄乱您的算法。这个领域是AI,计算机科学和语言学之间的混合体,被称为NLP。考虑一下:“解释”句子时,即使Google Translate也不完美。
但是,这是一个非常有趣的领域。
我认为您应该开始阅读这篇Wikipedia文章:
http://en.wikipedia.org/wiki/Part-of-speech_tagging
(这是一个研究领域,不要指望有任何简单的解决方案。)
这样做的一种便宜方法是建立字典的数据库(我几乎肯定有人这样做了)。
该表中需要两个字段:word
和usage
将该词组独立地转换为字符串数组(每个单词都是一个字符串):
select 'usage' from Dictionary WHERE 'word' = $word;
这是一个沉重的解决方案,但是我过去曾经使用过。