自然语言处理与机器学习算法实践
1. 词性标注基础与数据准备
在自然语言处理中,为词语标注词性是一项重要任务。例如对于一个短语,我们凭借基本的语法知识能较容易地为其中的词语分别标注为限定词、形容词、形容词和名词。但如何训练算法来完成这项工作呢?这里我们将使用隐马尔可夫模型(Hidden Markov Models)结合维特比算法(Viterbi algorithm)来找出给定词语序列的最佳词性标注序列。
为了进行训练,我们依赖于布朗语料库(Brown Corpus),它是第一个电子语料库,包含超过一百万个标注了词性的词语,涵盖了形容词、名词、动词等常见词性标签。语料库采用特定的标注方式,示例如下:
Most/ql important/jj of/in all/abn ,/, the/at less/ql developed/vbn countries/nns must/md be/be persuaded/vbn to/to take/vb the/at necessary/jj steps/nns to/to allocate/vb and/cc commit/vb their/pp$ own/jj resources/nns ./.
这里“Most”的标签“ql”表示限定词,“important”的“jj”表示形容词等。由于在编写马尔可夫模型时通常需要考虑当前词和前一个词,而句首的词无前一个词,所以引入特殊标签“START”来表示序列的开始,这样就能计算从“START”到限定词等标签的转移概率。
所有示例代码可在 GitHub 上找到,运行示例的相关说明可查看 README 文件,使用 Ruby 运行此示
超级会员免费看
订阅专栏 解锁全文

被折叠的 条评论
为什么被折叠?



