【发布时间】:2017-09-13 19:09:07
【问题描述】:
我在网上搜索了bi-gram和unigram文本特征的提取,但仍然没有找到有用的信息,谁能告诉我它们之间有什么区别?
例如,如果我有一个文本“我有一只可爱的狗” 如果我使用二元法进行特征提取和一元法提取会发生什么?
【问题讨论】:
标签: machine-learning nlp
我在网上搜索了bi-gram和unigram文本特征的提取,但仍然没有找到有用的信息,谁能告诉我它们之间有什么区别?
例如,如果我有一个文本“我有一只可爱的狗” 如果我使用二元法进行特征提取和一元法提取会发生什么?
【问题讨论】:
标签: machine-learning nlp
我们正在尝试教机器如何进行自然语言处理。我们人类可以很容易地理解语言,但机器不能,所以我们试图教他们特定的语言模式。由于特定的词是有意义的,但是当我们将这些词(即一组词)结合起来时,它会更有助于理解含义。
n-gram 基本上是给定窗口内出现的单词的集合,所以当
n=1 是 Unigram
n=2 是二元组
n=3 是 trigram 以此类推
现在假设机器尝试理解句子“我有一只可爱的狗”的意思,然后它将句子分成特定的块。
它会一个一个地考虑单词,它是一元组,所以每个单词都是一个克。
“我”、“有”、“a”、“可爱”、“狗”
它将一次考虑两个单词,因此它将是 biagram,因此每个相邻的两个单词将是 biagram
“我有”、“有一只”、“一只可爱的”、“可爱的狗”
所以就像这台机器会把句子分成小组来理解它的意思
【讨论】:
示例:考虑句子“我吃了香蕉”。
在 Unigram 中,我们假设每个单词的出现与其前一个单词无关。 因此,每个单词在这里都变成了一个 gram(feature)。
对于 unigram,我们将获得 3 个特征 - 'I'、'ate'、'banana' 并且所有 3 个都是相互独立的。尽管在真实语言中并非如此。
在 Bigram 中,我们假设每个单词的每次出现仅取决于其前一个单词。因此,两个词在这里被算作一克(特征)。
对于二元组,我们将获得 2 个特征——“我吃了”和“吃香蕉”。 这是有道理的,因为模型会知道 'banana' 出现在 'ate' 之后,而不是相反。
同样,我们可以有 trigram.......n-gram。
【讨论】: