我在网上搜索了bi-gram和unigram文本功能的提取,但仍然没有找到有用的信息,有人可以告诉我它们之间有什么区别吗?
例如,如果我有一个文字“我有一只可爱的狗” 如果我使用bi-gram方式进行特征提取和unigram提取会发生什么?
答案 0 :(得分:5)
我们正在尝试教机器如何进行自然语言处理。我们人类可以轻松地理解语言,但机器不能这样,我们试图教他们特定的语言模式。由于具体的词语具有意义,但是当我们将词语(即词汇组合)结合起来比理解其含义更有帮助时。
n-gram基本上是在给定窗口内出现的单词集,所以当
时n = 1是Unigram
n = 2是bigram
n = 3它是三元组,依此类推
现在假设机器试图理解句子“我有一只可爱的狗”的含义,而不是将句子分成特定的块。
它将逐字考虑单词,因此每个单词都是一个单词。
“我”,“有”,“一个”,“可爱”,“狗”
我会一次考虑两个字,所以它将是biagram所以每两个相邻的单词将是biagram
“我有”,“有一个”,“一个可爱的”,“可爱的狗”
因此,这台机器会将句子分成一小组词来理解其含义
答案 1 :(得分:1)
示例:考虑句子“我吃了香蕉”。
在Unigram中,我们假设每个单词的出现都与其前一个单词无关。 因此,每个单词在这里变成一个gram(特征)。
对于unigram,我们将获得3个功能-“ I”,“ ate”,“ banana”,并且所有3个功能彼此独立。尽管在实际语言中并非如此。
在Bigram中,我们假设每个单词的每次出现仅取决于其先前的单词。因此,这里两个单词算作一个克(特征)。
对于bigram,我们将获得2个功能-“我吃了”和“吃了香蕉”。 这是有道理的,因为该模型将知道“香蕉”紧随“吃”之后,而不是相反。
类似地,我们可以有三元组....... n-gram。