首页 > 解决方案 > 用于理解上下文词的自然语言处理技术

问题描述

取下面的句子:

I'm going to change the light bulb

手段的change意思replace,如某人要更换灯泡。这可以通过使用字典 api 或类似的东西轻松解决。但是,下面的句子

I need to go the bank to change some currency

You need to change your screen brightness

第一句不再是意思replace,它的意思Exchange,第二句,change意思是adjust

如果您试图理解change在这种情况下的含义,有人会使用什么技术来根据句子的上下文提取正确的定义?我想做的是什么?

请记住,输入只会是一个句子。所以像:

Screen brightness is typically too bright on most peoples computers.
People need to change the brightness to have healthier eyes.

不是我要解决的问题,因为可以使用上一句来设置上下文。这也适用于许多不同的词,而不仅仅是 word change

欣赏建议。

编辑:我知道各种嵌入模型可以帮助深入了解这个问题。如果这是您的答案,您如何解释返回的词嵌入?这些数组的长度可以超过 500+,这在解释上是不切实际的。

标签: machine-learningdeep-learningnlpword-embeddinglinguistics

解决方案


您要做的就是所谓的Word Sense Disambiguation。多年来,它一直是研究的主题,虽然可能不是最受欢迎的问题,但它仍然是一个积极研究的主题。即使是现在,仅仅选择一个词的最常见意义是一个强有力的基线。

词嵌入可能很有用,但它们的使用与您在这里尝试做的事情是正交的。

这是pywsd的一些示例代码,它是一个 Python 库,实现了一些经典技术:

>>> from pywsd.lesk import simple_lesk
>>> sent = 'I went to the bank to deposit my money'
>>> ambiguous = 'bank'
>>> answer = simple_lesk(sent, ambiguous, pos='n')
>>> print answer
Synset('depository_financial_institution.n.01')
>>> print answer.definition()
'a financial institution that accepts deposits and channels the money into lending activities'

这些方法大多有点陈旧,我不能说它们的质量,但至少这是一个很好的起点。

词义通常来自WordNet


推荐阅读