我是 HMM 的新手,仍在学习。我目前正在使用 HMM 来标记词性。为了实现维特比算法,我需要转换概率()和发射概率(b_i(o))。
我正在使用监督学习方法为这些概率生成值,其中我给出了一个句子及其标记。我将排放概率计算为:
其中\Count(i)是标签i在训练集中出现的次数, \Count(i \to o)是观察到的单词o映射到标签i的次数。
但是当使用这个经过训练的进行标记时,在给定句子中可能存在观察到的变量,这些变量在找到的值时从未出现过。在这种情况下,您如何估计该实例的值?
我是 HMM 的新手,仍在学习。我目前正在使用 HMM 来标记词性。为了实现维特比算法,我需要转换概率()和发射概率(b_i(o))。
我正在使用监督学习方法为这些概率生成值,其中我给出了一个句子及其标记。我将排放概率计算为:
其中\Count(i)是标签i在训练集中出现的次数, \Count(i \to o)是观察到的单词o映射到标签i的次数。
但是当使用这个经过训练的进行标记时,在给定句子中可能存在观察到的变量,这些变量在找到的值时从未出现过。在这种情况下,您如何估计该实例的值?
对于这类问题,可以使用拉普拉斯平滑法。一般来说,拉普拉斯平滑可以写成:
这里是可能性。
因此在这种情况下,发射概率值 ( ) 可以重写为:
其中是系统训练后可用的标签数量。
这是一个相对较老的问题,但我会为那些(像我自己)遇到它寻找相关内容的人添加我的 5 美分。
处理零排放概率的另一种方法是“关闭词汇表”。一个想法是在训练集中定义“稀有”词 - 那些出现次数少于预定义次数的词,并在模型训练之前用“词类”替换它们。将模型应用于新的单词序列时,所有未在训练集中看到的单词也会被转换为“单词类别”(实际上将它们视为“稀有”)。它保证模型不会有看不见的单词。
必须手动选择从单词生成“单词类”的规则(这是一个缺点)。例如,在使用这种方法的(可能)第一篇文章中(Bikel, DM, Schwartz, R. & Weischedel, RM Machine Learning (1999) 34: 211.; https://link.springer.com/article/ 10.1023/A:1007558221122 ; http://curtis.ml.cmu.edu/w/courses/index.php/Bikel_et_al_MLJ_1999)类的例子是:
Word Feature | Example Text | Intuition
-----------------------|------------------------|-----------------------------------------
twoDigitNum | 90 | Two-digit year
fourDigitNum | 1990 | Four digit year
containsDigitAndAlpha | A8956-67 | Product code
containsDigitAndDash | 09-96 | Date
containsDigitAndSlash | 11/9/89 | Date
containsDigitAndComma | 23,000.00 | Monetary amount
containsDigitAndPeriod | 1.00 Monetary | amount, percentage
otherNum | 456789 | Other number
allCaps | BBN | Organization
capPeriod | M. | Person name initial
firstWord | first word of sentence | No useful capitalization information
initCap | Sally | Capitalized word
lowerCase | can | Uncapitalized word
other | , | Punctuation marks, all other words
来自训练集的预处理标记句子示例(来自 Michael Collins 的讲座):
“利润/NA 飙升/NA at/NA 波音/SC Co./CC ,/NA 轻松/NA 领先/NA 预测/NA on/NA Wall/SL Street/CL ,/NA as/NA 他们/NA CEO/NA Alan/SP Mulally/CP 宣布/NA 第一/NA 季度/NA 结果/NA ./NA"
被转换(带有一些假设的标签和“稀有词”)为(替换词,如粗体所示)
" firstword /NA soared/NA at/NA initCap /SC Co./CC ,/NA 轻松/NA小写/NA 预测/NA on/NA initCap /SL Street/CL ,/NA as/NA 他们/NA CEO/NA Alan/SP initCap /CP 宣布/NA 第一/NA 季度/NA 结果/NA ./NA"
仍然有可能在训练集中没有看到所有的“标签 -> 词/词类”对,这使得某个词或词类不可能被这些标签标记。但这并不能阻止这些词被其他标签标记——不像在训练集中没有看到的词。